Merge pull request #22368 from AleksandrPanov:move_contrib_aruco_to_main_objdetect
authorAlexander Panov <alexander.panov@xperience.ai>
Fri, 16 Dec 2022 09:28:47 +0000 (12:28 +0300)
committerGitHub <noreply@github.com>
Fri, 16 Dec 2022 09:28:47 +0000 (12:28 +0300)
Megre together with https://github.com/opencv/opencv_contrib/pull/3325

1. Move aruco_detector, aruco_board, aruco_dictionary, aruco_utils to objdetect
1.1 add virtual Board::draw(), virtual ~Board()
1.2 move `testCharucoCornersCollinear` to Board classes (and rename to `checkCharucoCornersCollinear`)
1.3 add wrappers to keep the old api working
3. Reduce inludes
4. Fix java tests (add objdetect import)
5. Refactoring

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake

```
**WIP**
force_builders=linux,win64,docs,Linux x64 Debug,Custom
Xbuild_contrib:Docs=OFF

build_image:Custom=ubuntu:22.04
build_worker:Custom=linux-1
```

27 files changed:
apps/interactive-calibration/frameProcessor.cpp
apps/interactive-calibration/frameProcessor.hpp
apps/interactive-calibration/main.cpp
doc/py_tutorials/py_calib3d/py_pose/py_pose.markdown
modules/objdetect/doc/objdetect.bib [new file with mode: 0644]
modules/objdetect/include/opencv2/objdetect.hpp
modules/objdetect/include/opencv2/objdetect/aruco_board.hpp [new file with mode: 0644]
modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp [new file with mode: 0644]
modules/objdetect/include/opencv2/objdetect/aruco_dictionary.hpp [new file with mode: 0644]
modules/objdetect/misc/java/test/ArucoTest.java [new file with mode: 0644]
modules/objdetect/misc/python/test/test_objdetect_aruco.py [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/apriltag_quad_thresh.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/apriltag_quad_thresh.hpp [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/predefined_dictionaries_apriltag.hpp [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/unionfind.hpp [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/zarray.hpp [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/zmaxheap.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/apriltag/zmaxheap.hpp [new file with mode: 0644]
modules/objdetect/src/aruco/aruco_board.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/aruco_detector.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/aruco_dictionary.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/aruco_utils.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/aruco_utils.hpp [new file with mode: 0644]
modules/objdetect/src/aruco/predefined_dictionaries.hpp [new file with mode: 0644]
modules/objdetect/test/test_arucodetection.cpp [new file with mode: 0644]
modules/objdetect/tutorials/images/singlemarkersaxes.jpg [new file with mode: 0644]
modules/objdetect/tutorials/images/singlemarkersaxes2.jpg [new file with mode: 0644]

index 217f03c8d1a76d312ccbd93ae1a55fb2b94abdc1..18d0d87c940f50fa4c2473226013016c617ec306 100644 (file)
@@ -79,7 +79,7 @@ bool CalibProcessor::detectAndParseChAruco(const cv::Mat &frame)
 
     std::vector<std::vector<cv::Point2f> > corners, rejected;
     std::vector<int> ids;
-    cv::aruco::detectMarkers(frame, mArucoDictionary, corners, ids, cv::aruco::DetectorParameters::create(), rejected);
+    cv::aruco::detectMarkers(frame, cv::makePtr<cv::aruco::Dictionary>(mArucoDictionary), corners, ids, cv::makePtr<cv::aruco::DetectorParameters>(), rejected);
     cv::aruco::refineDetectedMarkers(frame, board, corners, ids, rejected);
     cv::Mat currentCharucoCorners, currentCharucoIds;
     if(ids.size() > 0)
@@ -266,8 +266,8 @@ bool CalibProcessor::checkLastFrame()
         allObjPoints.reserve(mCurrentCharucoIds.total());
         for(size_t i = 0; i < mCurrentCharucoIds.total(); i++) {
             int pointID = mCurrentCharucoIds.at<int>((int)i);
-            CV_Assert(pointID >= 0 && pointID < (int)mCharucoBoard->chessboardCorners.size());
-            allObjPoints.push_back(mCharucoBoard->chessboardCorners[pointID]);
+            CV_Assert(pointID >= 0 && pointID < (int)mCharucoBoard->getChessboardCorners().size());
+            allObjPoints.push_back(mCharucoBoard->getChessboardCorners()[pointID]);
         }
 
         cv::solvePnP(allObjPoints, mCurrentCharucoCorners, tmpCamMatrix, mCalibData->distCoeffs, r, t);
@@ -300,8 +300,7 @@ CalibProcessor::CalibProcessor(cv::Ptr<calibrationData> data, captureParameters
     {
     case chAruco:
 #ifdef HAVE_OPENCV_ARUCO
-        mArucoDictionary = cv::aruco::getPredefinedDictionary(
-                    cv::aruco::PREDEFINED_DICTIONARY_NAME(capParams.charucoDictName));
+        mArucoDictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PredefinedDictionaryType(capParams.charucoDictName));
         mCharucoBoard = cv::aruco::CharucoBoard::create(mBoardSize.width, mBoardSize.height, capParams.charucoSquareLength,
                                                         capParams.charucoMarkerSize, mArucoDictionary);
 #endif
index bae79f930fe669ff6799010f72b0d8ad6080f171..51c2906c8e7d60d740a0d04bced82653d5ef8054 100644 (file)
@@ -40,7 +40,7 @@ protected:
 
     cv::Ptr<cv::SimpleBlobDetector> mBlobDetectorPtr;
 #ifdef HAVE_OPENCV_ARUCO
-    cv::Ptr<cv::aruco::Dictionary> mArucoDictionary;
+    cv::aruco::Dictionary mArucoDictionary;
     cv::Ptr<cv::aruco::CharucoBoard> mCharucoBoard;
 #endif
 
index 3bf4a0776e21a27a794e3e5f305f58400bd29a6c..d83ef95aad1bdcf3b76e1642bf64492ffc1518c6 100644 (file)
@@ -180,8 +180,8 @@ int main(int argc, char** argv)
                 }
                 else {
 #ifdef HAVE_OPENCV_ARUCO
-                    cv::Ptr<cv::aruco::Dictionary> dictionary =
-                            cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(capParams.charucoDictName));
+                    cv::aruco::Dictionary dictionary =
+                            cv::aruco::getPredefinedDictionary(cv::aruco::PredefinedDictionaryType(capParams.charucoDictName));
                     cv::Ptr<cv::aruco::CharucoBoard> charucoboard =
                                 cv::aruco::CharucoBoard::create(capParams.boardSize.width, capParams.boardSize.height,
                                                                 capParams.charucoSquareLength, capParams.charucoMarkerSize, dictionary);
index a1a612d6f690f5825ac40ba704327b3f9fa7729f..15dd8584fa237abcec29aaa27f857ce5e03d343e 100644 (file)
@@ -59,7 +59,7 @@ pixels. Then to calculate the rotation and translation, we use the function,
 **cv.solvePnPRansac()**. Once we those transformation matrices, we use them to project our **axis
 points** to the image plane. In simple words, we find the points on image plane corresponding to
 each of (3,0,0),(0,3,0),(0,0,3) in 3D space. Once we get them, we draw lines from the first corner
-to each of these points using our draw() function. Done !!!
+to each of these points using our generateImage() function. Done !!!
 @code{.py}
 for fname in glob.glob('left*.jpg'):
     img = cv.imread(fname)
@@ -89,9 +89,9 @@ See some results below. Notice that each axis is 3 squares long.:
 
 ### Render a Cube
 
-If you want to draw a cube, modify the draw() function and axis points as follows.
+If you want to draw a cube, modify the generateImage() function and axis points as follows.
 
-Modified draw() function:
+Modified generateImage() function:
 @code{.py}
 def draw(img, corners, imgpts):
     imgpts = np.int32(imgpts).reshape(-1,2)
diff --git a/modules/objdetect/doc/objdetect.bib b/modules/objdetect/doc/objdetect.bib
new file mode 100644 (file)
index 0000000..394eff8
--- /dev/null
@@ -0,0 +1,20 @@
+@article{Aruco2014,
+  author = {S. Garrido-Jurado and R. Mu\~noz-Salinas and F.J. Madrid-Cuevas and M.J. Mar\'in-Jim\'enez}
+  title = {Automatic generation and detection of highly reliable fiducial markers under occlusion},
+  year = {2014},
+  pages = {2280 - 2292},
+  journal = {Pattern Recognition},
+  volume = {47},
+  number = {6},
+  issn = {0031-3203},
+  doi = {http://dx.doi.org/10.1016/j.patcog.2014.01.005},
+  url = {http://www.sciencedirect.com/science/article/pii/S0031320314000235}
+}
+
+@inproceedings{wang2016iros,
+  author = {John Wang and Edwin Olson},
+  title = {{AprilTag} 2: Efficient and robust fiducial detection},
+  booktitle = {Proceedings of the {IEEE/RSJ} International Conference on Intelligent Robots and Systems {(IROS)}},
+  year = {2016},
+  month = {October}
+}
index 4e104df3ca38fe893bb8f478bb1bd07fc2eb4c8b..58f1aee3b7917d7b8a67873d75d506d62f3b422c 100644 (file)
@@ -851,5 +851,6 @@ protected:
 
 #include "opencv2/objdetect/detection_based_tracker.hpp"
 #include "opencv2/objdetect/face.hpp"
+#include "opencv2/objdetect/aruco_detector.hpp"
 
 #endif
diff --git a/modules/objdetect/include/opencv2/objdetect/aruco_board.hpp b/modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
new file mode 100644 (file)
index 0000000..fb90c7b
--- /dev/null
@@ -0,0 +1,234 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+#ifndef OPENCV_OBJDETECT_ARUCO_BOARD_HPP
+#define OPENCV_OBJDETECT_ARUCO_BOARD_HPP
+
+#include <opencv2/core.hpp>
+
+namespace cv {
+namespace aruco {
+//! @addtogroup aruco
+//! @{
+
+class Dictionary;
+
+/** @brief Board of ArUco markers
+ *
+ * A board is a set of markers in the 3D space with a common coordinate system.
+ * The common form of a board of marker is a planar (2D) board, however any 3D layout can be used.
+ * A Board object is composed by:
+ * - The object points of the marker corners, i.e. their coordinates respect to the board system.
+ * - The dictionary which indicates the type of markers of the board
+ * - The identifier of all the markers in the board.
+ */
+class CV_EXPORTS_W Board {
+protected:
+    Board(); // use ::create()
+public:
+    /** @brief Draw a planar board
+     *
+     * @param outSize size of the output image in pixels.
+     * @param img output image with the board. The size of this image will be outSize
+     * and the board will be on the center, keeping the board proportions.
+     * @param marginSize minimum margins (in pixels) of the board in the output image
+     * @param borderBits width of the marker borders.
+     *
+     * This function return the image of the GridBoard, ready to be printed.
+     */
+    CV_WRAP virtual void generateImage(Size outSize, OutputArray img, int marginSize = 0, int borderBits = 1) const;
+
+    /** @brief Provide way to create Board by passing necessary data. Specially needed in Python.
+     *
+     * @param objPoints array of object points of all the marker corners in the board
+     * @param dictionary the dictionary of markers employed for this board
+     * @param ids vector of the identifiers of the markers in the board
+     */
+    CV_WRAP static Ptr<Board> create(InputArrayOfArrays objPoints, const Dictionary &dictionary, InputArray ids);
+
+    /** @brief return the Dictionary of markers employed for this board
+     */
+    CV_WRAP const Dictionary& getDictionary() const;
+
+    /** @brief return array of object points of all the marker corners in the board.
+     *
+     * Each marker include its 4 corners in this order:
+     * -   objPoints[i][0] - left-top point of i-th marker
+     * -   objPoints[i][1] - right-top point of i-th marker
+     * -   objPoints[i][2] - right-bottom point of i-th marker
+     * -   objPoints[i][3] - left-bottom point of i-th marker
+     *
+     * Markers are placed in a certain order - row by row, left to right in every row. For M markers, the size is Mx4.
+     */
+    CV_WRAP const std::vector<std::vector<Point3f> >& getObjPoints() const;
+
+    /** @brief vector of the identifiers of the markers in the board (should be the same size as objPoints)
+     * @return vector of the identifiers of the markers
+     */
+    CV_WRAP const std::vector<int>& getIds() const;
+
+    /** @brief get coordinate of the bottom right corner of the board, is set when calling the function create()
+     */
+    CV_WRAP const Point3f& getRightBottomCorner() const;
+
+    /** @brief Given a board configuration and a set of detected markers, returns the corresponding
+     * image points and object points to call solvePnP
+     *
+     * @param detectedCorners List of detected marker corners of the board.
+     * @param detectedIds List of identifiers for each marker.
+     * @param objPoints Vector of vectors of board marker points in the board coordinate space.
+     * @param imgPoints Vector of vectors of the projections of board marker corner points.
+     */
+    CV_WRAP void matchImagePoints(InputArrayOfArrays detectedCorners, InputArray detectedIds,
+                                  OutputArray objPoints, OutputArray imgPoints) const;
+    virtual ~Board();
+protected:
+    struct BoardImpl;
+    Ptr<BoardImpl> boardImpl;
+};
+
+/** @brief Planar board with grid arrangement of markers
+ *
+ * More common type of board. All markers are placed in the same plane in a grid arrangement.
+ * The board image can be drawn using generateImage() method.
+ */
+class CV_EXPORTS_W GridBoard : public Board {
+protected:
+    GridBoard();
+public:
+    /** @brief Draw a GridBoard
+     *
+     * @param outSize size of the output image in pixels.
+     * @param img output image with the board. The size of this image will be outSize
+     * and the board will be on the center, keeping the board proportions.
+     * @param marginSize minimum margins (in pixels) of the board in the output image
+     * @param borderBits width of the marker borders.
+     *
+     * This function return the image of the GridBoard, ready to be printed.
+     */
+    CV_WRAP void generateImage(Size outSize, OutputArray img, int marginSize = 0, int borderBits = 1) const CV_OVERRIDE;
+
+    /**
+     * @brief Create a GridBoard object
+     *
+     * @param markersX number of markers in X direction
+     * @param markersY number of markers in Y direction
+     * @param markerLength marker side length (normally in meters)
+     * @param markerSeparation separation between two markers (same unit as markerLength)
+     * @param dictionary dictionary of markers indicating the type of markers
+     * @param ids set marker ids in dictionary to use on board.
+     * @return the output GridBoard object
+     *
+     * This functions creates a GridBoard object given the number of markers in each direction and
+     * the marker size and marker separation.
+     */
+    CV_WRAP static Ptr<GridBoard> create(int markersX, int markersY, float markerLength, float markerSeparation,
+                                         const Dictionary &dictionary, InputArray ids);
+
+    /**
+     * @overload
+     * @brief Create a GridBoard object
+     *
+     * @param markersX number of markers in X direction
+     * @param markersY number of markers in Y direction
+     * @param markerLength marker side length (normally in meters)
+     * @param markerSeparation separation between two markers (same unit as markerLength)
+     * @param dictionary dictionary of markers indicating the type of markers
+     * @param firstMarker id of first marker in dictionary to use on board.
+     * @return the output GridBoard object
+     */
+    CV_WRAP static Ptr<GridBoard> create(int markersX, int markersY, float markerLength, float markerSeparation,
+                                         const Dictionary &dictionary, int firstMarker = 0);
+
+    CV_WRAP Size getGridSize() const;
+    CV_WRAP float getMarkerLength() const;
+    CV_WRAP float getMarkerSeparation() const;
+
+protected:
+    struct GridImpl;
+    Ptr<GridImpl> gridImpl;
+    friend class CharucoBoard;
+};
+
+/**
+ * @brief ChArUco board is a planar chessboard where the markers are placed inside the white squares of a chessboard.
+ *
+ * The benefits of ChArUco boards is that they provide both, ArUco markers versatility and chessboard corner precision,
+ * which is important for calibration and pose estimation. The board image can be drawn using generateImage() method.
+ */
+class CV_EXPORTS_W CharucoBoard : public Board {
+protected:
+    CharucoBoard();
+public:
+
+    /** @brief Draw a ChArUco board
+     *
+     * @param outSize size of the output image in pixels.
+     * @param img output image with the board. The size of this image will be outSize
+     * and the board will be on the center, keeping the board proportions.
+     * @param marginSize minimum margins (in pixels) of the board in the output image
+     * @param borderBits width of the marker borders.
+     *
+     * This function return the image of the ChArUco board, ready to be printed.
+     */
+    CV_WRAP void generateImage(Size outSize, OutputArray img, int marginSize = 0, int borderBits = 1) const CV_OVERRIDE;
+
+
+    /** @brief Create a CharucoBoard object
+     *
+     * @param squaresX number of chessboard squares in X direction
+     * @param squaresY number of chessboard squares in Y direction
+     * @param squareLength chessboard square side length (normally in meters)
+     * @param markerLength marker side length (same unit than squareLength)
+     * @param dictionary dictionary of markers indicating the type of markers.
+     * @param ids array of id used markers
+     * The first markers in the dictionary are used to fill the white chessboard squares.
+     * @return the output CharucoBoard object
+     *
+     * This functions creates a CharucoBoard object given the number of squares in each direction
+     * and the size of the markers and chessboard squares.
+     */
+    CV_WRAP static Ptr<CharucoBoard> create(int squaresX, int squaresY, float squareLength, float markerLength,
+                                            const Dictionary &dictionary, InputArray ids = noArray());
+
+    CV_WRAP Size getChessboardSize() const;
+    CV_WRAP float getSquareLength() const;
+    CV_WRAP float getMarkerLength() const;
+
+    /** @brief get CharucoBoard::chessboardCorners
+     */
+    CV_WRAP std::vector<Point3f> getChessboardCorners() const;
+
+    /** @brief get CharucoBoard::nearestMarkerIdx
+     */
+    CV_PROP std::vector<std::vector<int> > getNearestMarkerIdx() const;
+
+    /** @brief get CharucoBoard::nearestMarkerCorners
+     */
+    CV_PROP std::vector<std::vector<int> > getNearestMarkerCorners() const;
+
+    /** @brief check whether the ChArUco markers are collinear
+     *
+     * @param charucoIds list of identifiers for each corner in charucoCorners per frame.
+     * @return bool value, 1 (true) if detected corners form a line, 0 (false) if they do not.
+     * solvePnP, calibration functions will fail if the corners are collinear (true).
+     *
+     * The number of ids in charucoIDs should be <= the number of chessboard corners in the board.
+     * This functions checks whether the charuco corners are on a straight line (returns true, if so), or not (false).
+     * Axis parallel, as well as diagonal and other straight lines detected.  Degenerate cases:
+     * for number of charucoIDs <= 2,the function returns true.
+     */
+    CV_WRAP bool checkCharucoCornersCollinear(InputArray charucoIds) const;
+
+protected:
+    struct CharucoImpl;
+    friend struct CharucoImpl;
+    Ptr<CharucoImpl> charucoImpl;
+};
+
+//! @}
+
+}
+}
+
+#endif
diff --git a/modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp b/modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp
new file mode 100644 (file)
index 0000000..69c7def
--- /dev/null
@@ -0,0 +1,396 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+#ifndef OPENCV_OBJDETECT_ARUCO_DETECTOR_HPP
+#define OPENCV_OBJDETECT_ARUCO_DETECTOR_HPP
+
+#include <opencv2/objdetect/aruco_dictionary.hpp>
+#include <opencv2/objdetect/aruco_board.hpp>
+
+namespace cv {
+namespace aruco {
+
+/** @defgroup aruco ArUco Marker Detection
+ * Square fiducial markers (also known as Augmented Reality Markers) are useful for easy,
+ * fast and robust camera pose estimation.
+ *
+ * The main functionality of ArucoDetector class is detection of markers in an image. There are even more
+ * functionalities implemented in the aruco contrib module (files aruco.hpp, charuco.hpp, aruco_calib.hpp):
+ * - Pose estimation from a single marker or from a board/set of markers
+ * - Detection of ChArUco board for high subpixel accuracy
+ * - Camera calibration from both, ArUco boards and ChArUco boards.
+ * - Detection of ChArUco diamond markers
+ * The functionalities from the aruco contrib module is planned to be transferred to the main repository.
+ *
+ * The implementation is based on the ArUco Library by R. Muñoz-Salinas and S. Garrido-Jurado @cite Aruco2014.
+ *
+ * Markers can also be detected based on the AprilTag 2 @cite wang2016iros fiducial detection method.
+ *
+ * @sa @cite Aruco2014
+ * This code has been originally developed by Sergio Garrido-Jurado as a project
+ * for Google Summer of Code 2015 (GSoC 15).
+ */
+
+//! @addtogroup aruco
+//! @{
+
+enum CornerRefineMethod{
+    CORNER_REFINE_NONE,     ///< Tag and corners detection based on the ArUco approach
+    CORNER_REFINE_SUBPIX,   ///< ArUco approach and refine the corners locations using corner subpixel accuracy
+    CORNER_REFINE_CONTOUR,  ///< ArUco approach and refine the corners locations using the contour-points line fitting
+    CORNER_REFINE_APRILTAG, ///< Tag and corners detection based on the AprilTag 2 approach @cite wang2016iros
+};
+
+/** @brief struct DetectorParameters is used by ArucoDetector
+ */
+struct CV_EXPORTS_W_SIMPLE DetectorParameters {
+    CV_WRAP DetectorParameters() {
+        adaptiveThreshWinSizeMin = 3;
+        adaptiveThreshWinSizeMax = 23;
+        adaptiveThreshWinSizeStep = 10;
+        adaptiveThreshConstant = 7;
+        minMarkerPerimeterRate = 0.03;
+        maxMarkerPerimeterRate = 4.;
+        polygonalApproxAccuracyRate = 0.03;
+        minCornerDistanceRate = 0.05;
+        minDistanceToBorder = 3;
+        minMarkerDistanceRate = 0.05;
+        cornerRefinementMethod = CORNER_REFINE_NONE;
+        cornerRefinementWinSize = 5;
+        cornerRefinementMaxIterations = 30;
+        cornerRefinementMinAccuracy = 0.1;
+        markerBorderBits = 1;
+        perspectiveRemovePixelPerCell = 4;
+        perspectiveRemoveIgnoredMarginPerCell = 0.13;
+        maxErroneousBitsInBorderRate = 0.35;
+        minOtsuStdDev = 5.0;
+        errorCorrectionRate = 0.6;
+        aprilTagQuadDecimate = 0.0;
+        aprilTagQuadSigma = 0.0;
+        aprilTagMinClusterPixels = 5;
+        aprilTagMaxNmaxima = 10;
+        aprilTagCriticalRad = (float)(10* CV_PI /180);
+        aprilTagMaxLineFitMse = 10.0;
+        aprilTagMinWhiteBlackDiff = 5;
+        aprilTagDeglitch = 0;
+        detectInvertedMarker = false;
+        useAruco3Detection = false;
+        minSideLengthCanonicalImg = 32;
+        minMarkerLengthRatioOriginalImg = 0.0;
+    };
+
+    /** @brief Read a new set of DetectorParameters from FileNode (use FileStorage.root()).
+     */
+    CV_WRAP bool readDetectorParameters(const FileNode& fn);
+
+    /** @brief Write a set of DetectorParameters to FileStorage
+     */
+    bool writeDetectorParameters(FileStorage& fs);
+
+    /** @brief simplified API for language bindings
+    */
+    CV_WRAP bool writeDetectorParameters(const Ptr<FileStorage>& fs, const String& name = String());
+
+    /// minimum window size for adaptive thresholding before finding contours (default 3).
+    CV_PROP_RW int adaptiveThreshWinSizeMin;
+
+    /// maximum window size for adaptive thresholding before finding contours (default 23).
+    CV_PROP_RW int adaptiveThreshWinSizeMax;
+
+    /// increments from adaptiveThreshWinSizeMin to adaptiveThreshWinSizeMax during the thresholding (default 10).
+    CV_PROP_RW int adaptiveThreshWinSizeStep;
+
+    /// constant for adaptive thresholding before finding contours (default 7)
+    CV_PROP_RW double adaptiveThreshConstant;
+
+    /** @brief determine minimum perimeter for marker contour to be detected.
+     *
+     * This is defined as a rate respect to the maximum dimension of the input image (default 0.03).
+     */
+    CV_PROP_RW double minMarkerPerimeterRate;
+
+    /** @brief determine maximum perimeter for marker contour to be detected.
+     *
+     * This is defined as a rate respect to the maximum dimension of the input image (default 4.0).
+     */
+    CV_PROP_RW double maxMarkerPerimeterRate;
+
+    /// minimum accuracy during the polygonal approximation process to determine which contours are squares. (default 0.03)
+    CV_PROP_RW double polygonalApproxAccuracyRate;
+
+    /// minimum distance between corners for detected markers relative to its perimeter (default 0.05)
+    CV_PROP_RW double minCornerDistanceRate;
+
+    /// minimum distance of any corner to the image border for detected markers (in pixels) (default 3)
+    CV_PROP_RW int minDistanceToBorder;
+
+    /** @brief minimum mean distance beetween two marker corners to be considered imilar, so that the smaller one is removed.
+     *
+     * The rate is relative to the smaller perimeter of the two markers (default 0.05).
+     */
+    CV_PROP_RW double minMarkerDistanceRate;
+
+    /** @brief default value CORNER_REFINE_NONE */
+    CV_PROP_RW CornerRefineMethod cornerRefinementMethod;
+
+    /// window size for the corner refinement process (in pixels) (default 5).
+    CV_PROP_RW int cornerRefinementWinSize;
+
+    /// maximum number of iterations for stop criteria of the corner refinement process (default 30).
+    CV_PROP_RW int cornerRefinementMaxIterations;
+
+    /// minimum error for the stop cristeria of the corner refinement process (default: 0.1)
+    CV_PROP_RW double cornerRefinementMinAccuracy;
+
+    /// number of bits of the marker border, i.e. marker border width (default 1).
+    CV_PROP_RW int markerBorderBits;
+
+    /// number of bits (per dimension) for each cell of the marker when removing the perspective (default 4).
+    CV_PROP_RW int perspectiveRemovePixelPerCell;
+
+    /** @brief width of the margin of pixels on each cell not considered for the determination of the cell bit.
+     *
+     * Represents the rate respect to the total size of the cell, i.e. perspectiveRemovePixelPerCell (default 0.13)
+     */
+    CV_PROP_RW double perspectiveRemoveIgnoredMarginPerCell;
+
+    /** @brief  maximum number of accepted erroneous bits in the border (i.e. number of allowed white bits in the border).
+     *
+     * Represented as a rate respect to the total number of bits per marker (default 0.35).
+     */
+    CV_PROP_RW double maxErroneousBitsInBorderRate;
+
+    /** @brief minimun standard deviation in pixels values during the decodification step to apply Otsu
+     * thresholding (otherwise, all the bits are set to 0 or 1 depending on mean higher than 128 or not) (default 5.0)
+     */
+    CV_PROP_RW double minOtsuStdDev;
+
+    /// error correction rate respect to the maximun error correction capability for each dictionary (default 0.6).
+    CV_PROP_RW double errorCorrectionRate;
+
+    /** @brief April :: User-configurable parameters.
+     *
+     * Detection of quads can be done on a lower-resolution image, improving speed at a cost of
+     * pose accuracy and a slight decrease in detection rate. Decoding the binary payload is still
+     */
+    CV_PROP_RW float aprilTagQuadDecimate;
+
+    /// what Gaussian blur should be applied to the segmented image (used for quad detection?)
+    CV_PROP_RW float aprilTagQuadSigma;
+
+    // April :: Internal variables
+    /// reject quads containing too few pixels (default 5).
+    CV_PROP_RW int aprilTagMinClusterPixels;
+
+    /// how many corner candidates to consider when segmenting a group of pixels into a quad (default 10).
+    CV_PROP_RW int aprilTagMaxNmaxima;
+
+    /** @brief reject quads where pairs of edges have angles that are close to straight or close to 180 degrees.
+     *
+     * Zero means that no quads are rejected. (In radians) (default 10*PI/180)
+     */
+    CV_PROP_RW float aprilTagCriticalRad;
+
+    /// when fitting lines to the contours, what is the maximum mean squared error
+    CV_PROP_RW float aprilTagMaxLineFitMse;
+
+    /** @brief add an extra check that the white model must be (overall) brighter than the black model.
+     *
+     * When we build our model of black & white pixels, we add an extra check that the white model must be (overall)
+     * brighter than the black model. How much brighter? (in pixel values, [0,255]), (default 5)
+     */
+    CV_PROP_RW int aprilTagMinWhiteBlackDiff;
+
+    /// should the thresholded image be deglitched? Only useful for very noisy images (default 0).
+    CV_PROP_RW int aprilTagDeglitch;
+
+    /** @brief to check if there is a white marker.
+     *
+     * In order to generate a "white" marker just invert a normal marker by using a tilde, ~markerImage. (default false)
+     */
+    CV_PROP_RW bool detectInvertedMarker;
+
+    /** @brief enable the new and faster Aruco detection strategy.
+     *
+     * Proposed in the paper:
+     * Romero-Ramirez et al: Speeded up detection of squared fiducial markers (2018)
+     * https://www.researchgate.net/publication/325787310_Speeded_Up_Detection_of_Squared_Fiducial_Markers
+     */
+    CV_PROP_RW bool useAruco3Detection;
+
+    /// minimum side length of a marker in the canonical image. Latter is the binarized image in which contours are searched.
+    CV_PROP_RW int minSideLengthCanonicalImg;
+
+    /// range [0,1], eq (2) from paper. The parameter tau_i has a direct influence on the processing speed.
+    CV_PROP_RW float minMarkerLengthRatioOriginalImg;
+};
+
+/** @brief struct RefineParameters is used by ArucoDetector
+ */
+struct CV_EXPORTS_W_SIMPLE RefineParameters {
+    CV_WRAP RefineParameters(float minRepDistance = 10.f, float errorCorrectionRate = 3.f, bool checkAllOrders = true);
+
+
+    /** @brief Read a new set of RefineParameters from FileNode (use FileStorage.root()).
+     */
+    CV_WRAP bool readRefineParameters(const FileNode& fn);
+
+    /** @brief Write a set of RefineParameters to FileStorage
+     */
+    bool writeRefineParameters(FileStorage& fs);
+
+    /** @brief simplified API for language bindings
+    */
+    CV_WRAP bool writeRefineParameters(const Ptr<FileStorage>& fs, const String& name = String());
+
+    /** @brief minRepDistance minimum distance between the corners of the rejected candidate and the reprojected marker
+    in order to consider it as a correspondence.
+     */
+    CV_PROP_RW float minRepDistance;
+
+    /** @brief minRepDistance rate of allowed erroneous bits respect to the error correction capability of the used dictionary.
+     *
+     * -1 ignores the error correction step.
+     */
+    CV_PROP_RW float errorCorrectionRate;
+
+    /** @brief checkAllOrders consider the four posible corner orders in the rejectedCorners array.
+     *
+     * If it set to false, only the provided corner order is considered (default true).
+     */
+    CV_PROP_RW bool checkAllOrders;
+};
+
+/** @brief The main functionality of ArucoDetector class is detection of markers in an image with detectMarkers() method.
+ *
+ * After detecting some markers in the image, you can try to find undetected markers from this dictionary with
+ * refineDetectedMarkers() method.
+ *
+ * @see DetectorParameters, RefineParameters
+ */
+class CV_EXPORTS_W ArucoDetector : public Algorithm
+{
+public:
+    /** @brief Basic ArucoDetector constructor
+     *
+     * @param dictionary indicates the type of markers that will be searched
+     * @param detectorParams marker detection parameters
+     * @param refineParams marker refine detection parameters
+     */
+    CV_WRAP ArucoDetector(const Dictionary &dictionary = getPredefinedDictionary(cv::aruco::DICT_4X4_50),
+                          const DetectorParameters &detectorParams = DetectorParameters(),
+                          const RefineParameters& refineParams = RefineParameters());
+
+    /** @brief Basic marker detection
+     *
+     * @param image input image
+     * @param corners vector of detected marker corners. For each marker, its four corners
+     * are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers,
+     * the dimensions of this array is Nx4. The order of the corners is clockwise.
+     * @param ids vector of identifiers of the detected markers. The identifier is of type int
+     * (e.g. std::vector<int>). For N detected markers, the size of ids is also N.
+     * The identifiers have the same order than the markers in the imgPoints array.
+     * @param rejectedImgPoints contains the imgPoints of those squares whose inner code has not a
+     * correct codification. Useful for debugging purposes.
+     *
+     * Performs marker detection in the input image. Only markers included in the specific dictionary
+     * are searched. For each detected marker, it returns the 2D position of its corner in the image
+     * and its corresponding identifier.
+     * Note that this function does not perform pose estimation.
+     * @note The function does not correct lens distortion or takes it into account. It's recommended to undistort
+     * input image with corresponging camera model, if camera parameters are known
+     * @sa undistort, estimatePoseSingleMarkers,  estimatePoseBoard
+     */
+    CV_WRAP void detectMarkers(InputArray image, OutputArrayOfArrays corners, OutputArray ids,
+                               OutputArrayOfArrays rejectedImgPoints = noArray());
+
+    /** @brief Refind not detected markers based on the already detected and the board layout
+     *
+     * @param image input image
+     * @param board layout of markers in the board.
+     * @param detectedCorners vector of already detected marker corners.
+     * @param detectedIds vector of already detected marker identifiers.
+     * @param rejectedCorners vector of rejected candidates during the marker detection process.
+     * @param cameraMatrix optional input 3x3 floating-point camera matrix
+     * \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$
+     * @param distCoeffs optional vector of distortion coefficients
+     * \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements
+     * @param recoveredIdxs Optional array to returns the indexes of the recovered candidates in the
+     * original rejectedCorners array.
+     *
+     * This function tries to find markers that were not detected in the basic detecMarkers function.
+     * First, based on the current detected marker and the board layout, the function interpolates
+     * the position of the missing markers. Then it tries to find correspondence between the reprojected
+     * markers and the rejected candidates based on the minRepDistance and errorCorrectionRate parameters.
+     * If camera parameters and distortion coefficients are provided, missing markers are reprojected
+     * using projectPoint function. If not, missing marker projections are interpolated using global
+     * homography, and all the marker corners in the board must have the same Z coordinate.
+     */
+    CV_WRAP void refineDetectedMarkers(InputArray image, const Ptr<Board> &board,
+                                       InputOutputArrayOfArrays detectedCorners,
+                                       InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners,
+                                       InputArray cameraMatrix = noArray(), InputArray distCoeffs = noArray(),
+                                       OutputArray recoveredIdxs = noArray());
+
+    CV_WRAP const Dictionary& getDictionary() const;
+    CV_WRAP void setDictionary(const Dictionary& dictionary);
+
+    CV_WRAP const DetectorParameters& getDetectorParameters() const;
+    CV_WRAP void setDetectorParameters(const DetectorParameters& detectorParameters);
+
+    CV_WRAP const RefineParameters& getRefineParameters() const;
+    CV_WRAP void setRefineParameters(const RefineParameters& refineParameters);
+
+    /** @brief Stores algorithm parameters in a file storage
+    */
+    virtual void write(FileStorage& fs) const override;
+
+    /** @brief simplified API for language bindings
+    */
+    CV_WRAP inline void write(const Ptr<FileStorage>& fs, const String& name = String()) { Algorithm::write(fs, name); }
+
+    /** @brief Reads algorithm parameters from a file storage
+    */
+    CV_WRAP virtual void read(const FileNode& fn) override;
+protected:
+    struct ArucoDetectorImpl;
+    Ptr<ArucoDetectorImpl> arucoDetectorImpl;
+};
+
+/** @brief Draw detected markers in image
+ *
+ * @param image input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+ * @param corners positions of marker corners on input image.
+ * (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the dimensions of
+ * this array should be Nx4. The order of the corners should be clockwise.
+ * @param ids vector of identifiers for markers in markersCorners .
+ * Optional, if not provided, ids are not painted.
+ * @param borderColor color of marker borders. Rest of colors (text color and first corner color)
+ * are calculated based on this one to improve visualization.
+ *
+ * Given an array of detected marker corners and its corresponding ids, this functions draws
+ * the markers in the image. The marker borders are painted and the markers identifiers if provided.
+ * Useful for debugging purposes.
+ */
+CV_EXPORTS_W void drawDetectedMarkers(InputOutputArray image, InputArrayOfArrays corners,
+                                      InputArray ids = noArray(), Scalar borderColor = Scalar(0, 255, 0));
+
+/** @brief Generate a canonical marker image
+ *
+ * @param dictionary dictionary of markers indicating the type of markers
+ * @param id identifier of the marker that will be returned. It has to be a valid id in the specified dictionary.
+ * @param sidePixels size of the image in pixels
+ * @param img output image with the marker
+ * @param borderBits width of the marker border.
+ *
+ * This function returns a marker image in its canonical form (i.e. ready to be printed)
+ */
+CV_EXPORTS_W void generateImageMarker(const Dictionary &dictionary, int id, int sidePixels, OutputArray img,
+                                      int borderBits = 1);
+
+//! @}
+
+}
+}
+
+#endif
diff --git a/modules/objdetect/include/opencv2/objdetect/aruco_dictionary.hpp b/modules/objdetect/include/opencv2/objdetect/aruco_dictionary.hpp
new file mode 100644 (file)
index 0000000..e306c65
--- /dev/null
@@ -0,0 +1,151 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+#ifndef OPENCV_OBJDETECT_DICTIONARY_HPP
+#define OPENCV_OBJDETECT_DICTIONARY_HPP
+
+#include <opencv2/core.hpp>
+
+namespace cv {
+namespace aruco {
+
+//! @addtogroup aruco
+//! @{
+
+
+/** @brief Dictionary/Set of markers, it contains the inner codification
+ *
+ * BytesList contains the marker codewords where:
+ * - bytesList.rows is the dictionary size
+ * - each marker is encoded using `nbytes = ceil(markerSize*markerSize/8.)`
+ * - each row contains all 4 rotations of the marker, so its length is `4*nbytes`
+ *
+ * `bytesList.ptr(i)[k*nbytes + j]` is then the j-th byte of i-th marker, in its k-th rotation.
+ */
+class CV_EXPORTS_W_SIMPLE Dictionary {
+
+    public:
+    CV_PROP_RW Mat bytesList;         // marker code information
+    CV_PROP_RW int markerSize;        // number of bits per dimension
+    CV_PROP_RW int maxCorrectionBits; // maximum number of bits that can be corrected
+
+
+    CV_WRAP Dictionary();
+
+    CV_WRAP Dictionary(const Mat &bytesList, int _markerSize, int maxcorr = 0);
+
+
+
+    /** @brief Read a new dictionary from FileNode.
+     *
+     * Dictionary format:\n
+     * nmarkers: 35\n
+     * markersize: 6\n
+     * maxCorrectionBits: 5\n
+     * marker_0: "101011111011111001001001101100000000"\n
+     * ...\n
+     * marker_34: "011111010000111011111110110101100101"
+     */
+    CV_WRAP bool readDictionary(const cv::FileNode& fn);
+
+    /** @brief Write a dictionary to FileStorage, format is the same as in readDictionary().
+     */
+     void writeDictionary(FileStorage& fs);
+
+    /** @brief simplified API for language bindings
+    */
+    CV_WRAP void writeDictionary(Ptr<FileStorage>& fs, const String& name = String());
+
+    /** @brief Given a matrix of bits. Returns whether if marker is identified or not.
+     *
+     * It returns by reference the correct id (if any) and the correct rotation
+     */
+    CV_WRAP bool identify(const Mat &onlyBits, CV_OUT int &idx, CV_OUT int &rotation, double maxCorrectionRate) const;
+
+    /** @brief Returns the distance of the input bits to the specific id.
+     *
+     * If allRotations is true, the four posible bits rotation are considered
+     */
+    CV_WRAP int getDistanceToId(InputArray bits, int id, bool allRotations = true) const;
+
+
+    /** @brief Generate a canonical marker image
+     */
+    CV_WRAP void generateImageMarker(int id, int sidePixels, OutputArray _img, int borderBits = 1) const;
+
+
+    /** @brief Transform matrix of bits to list of bytes in the 4 rotations
+      */
+    CV_WRAP static Mat getByteListFromBits(const Mat &bits);
+
+
+    /** @brief Transform list of bytes to matrix of bits
+      */
+    CV_WRAP static Mat getBitsFromByteList(const Mat &byteList, int markerSize);
+};
+
+
+
+
+/** @brief Predefined markers dictionaries/sets
+ *
+ * Each dictionary indicates the number of bits and the number of markers contained
+ * - DICT_ARUCO_ORIGINAL: standard ArUco Library Markers. 1024 markers, 5x5 bits, 0 minimum
+                          distance
+ */
+enum PredefinedDictionaryType {
+    DICT_4X4_50 = 0,        ///< 4x4 bits, minimum hamming distance between any two codes = 4, 50 codes
+    DICT_4X4_100,           ///< 4x4 bits, minimum hamming distance between any two codes = 3, 100 codes
+    DICT_4X4_250,           ///< 4x4 bits, minimum hamming distance between any two codes = 3, 250 codes
+    DICT_4X4_1000,          ///< 4x4 bits, minimum hamming distance between any two codes = 2, 1000 codes
+    DICT_5X5_50,            ///< 5x5 bits, minimum hamming distance between any two codes = 8, 50 codes
+    DICT_5X5_100,           ///< 5x5 bits, minimum hamming distance between any two codes = 7, 100 codes
+    DICT_5X5_250,           ///< 5x5 bits, minimum hamming distance between any two codes = 6, 250 codes
+    DICT_5X5_1000,          ///< 5x5 bits, minimum hamming distance between any two codes = 5, 1000 codes
+    DICT_6X6_50,            ///< 6x6 bits, minimum hamming distance between any two codes = 13, 50 codes
+    DICT_6X6_100,           ///< 6x6 bits, minimum hamming distance between any two codes = 12, 100 codes
+    DICT_6X6_250,           ///< 6x6 bits, minimum hamming distance between any two codes = 11, 250 codes
+    DICT_6X6_1000,          ///< 6x6 bits, minimum hamming distance between any two codes = 9, 1000 codes
+    DICT_7X7_50,            ///< 7x7 bits, minimum hamming distance between any two codes = 19, 50 codes
+    DICT_7X7_100,           ///< 7x7 bits, minimum hamming distance between any two codes = 18, 100 codes
+    DICT_7X7_250,           ///< 7x7 bits, minimum hamming distance between any two codes = 17, 250 codes
+    DICT_7X7_1000,          ///< 7x7 bits, minimum hamming distance between any two codes = 14, 1000 codes
+    DICT_ARUCO_ORIGINAL,    ///< 6x6 bits, minimum hamming distance between any two codes = 3, 1024 codes
+    DICT_APRILTAG_16h5,     ///< 4x4 bits, minimum hamming distance between any two codes = 5, 30 codes
+    DICT_APRILTAG_25h9,     ///< 5x5 bits, minimum hamming distance between any two codes = 9, 35 codes
+    DICT_APRILTAG_36h10,    ///< 6x6 bits, minimum hamming distance between any two codes = 10, 2320 codes
+    DICT_APRILTAG_36h11     ///< 6x6 bits, minimum hamming distance between any two codes = 11, 587 codes
+};
+
+
+/** @brief Returns one of the predefined dictionaries defined in PredefinedDictionaryType
+  */
+CV_EXPORTS Dictionary getPredefinedDictionary(PredefinedDictionaryType name);
+
+
+/** @brief Returns one of the predefined dictionaries referenced by DICT_*.
+  */
+CV_EXPORTS_W Dictionary getPredefinedDictionary(int dict);
+
+/** @brief Extend base dictionary by new nMarkers
+  *
+  * @param nMarkers number of markers in the dictionary
+  * @param markerSize number of bits per dimension of each markers
+  * @param baseDictionary Include the markers in this dictionary at the beginning (optional)
+  * @param randomSeed a user supplied seed for theRNG()
+  *
+  * This function creates a new dictionary composed by nMarkers markers and each markers composed
+  * by markerSize x markerSize bits. If baseDictionary is provided, its markers are directly
+  * included and the rest are generated based on them. If the size of baseDictionary is higher
+  * than nMarkers, only the first nMarkers in baseDictionary are taken and no new marker is added.
+  */
+CV_EXPORTS_W Dictionary extendDictionary(int nMarkers, int markerSize, const Dictionary &baseDictionary = Dictionary(),
+                                         int randomSeed=0);
+
+
+
+//! @}
+}
+}
+
+#endif
diff --git a/modules/objdetect/misc/java/test/ArucoTest.java b/modules/objdetect/misc/java/test/ArucoTest.java
new file mode 100644 (file)
index 0000000..685f784
--- /dev/null
@@ -0,0 +1,83 @@
+package org.opencv.test.aruco;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opencv.test.OpenCVTestCase;
+import org.opencv.core.Scalar;
+import org.opencv.core.Mat;
+import org.opencv.core.Size;
+import org.opencv.core.CvType;
+import org.opencv.objdetect.*;
+
+
+public class ArucoTest extends OpenCVTestCase {
+
+    public void testGenerateBoards() {
+        Dictionary dictionary = Objdetect.getPredefinedDictionary(Objdetect.DICT_4X4_50);
+
+        Mat point1 = new Mat(4, 3, CvType.CV_32FC1);
+        int row = 0, col = 0;
+        double squareLength = 40.;
+        point1.put(row, col, 0, 0, 0,
+                   0, squareLength, 0,
+                   squareLength, squareLength, 0,
+                   0, squareLength, 0);
+        List<Mat>objPoints = new ArrayList<Mat>();
+        objPoints.add(point1);
+
+        Mat ids = new Mat(1, 1, CvType.CV_32SC1);
+        ids.put(row, col, 0);
+
+        Board board = Board.create(objPoints, dictionary, ids);
+
+        Mat image = new Mat();
+        board.generateImage(new Size(80, 80), image, 2);
+
+        assertTrue(image.total() > 0);
+    }
+
+    public void testArucoIssue3133() {
+        byte[][] marker = {{0,1,1},{1,1,1},{0,1,1}};
+        Dictionary dictionary = Objdetect.extendDictionary(1, 3);
+        dictionary.set_maxCorrectionBits(0);
+        Mat markerBits = new Mat(3, 3, CvType.CV_8UC1);
+        for (int i = 0; i < 3; i++) {
+            for (int j = 0; j < 3; j++) {
+                markerBits.put(i, j, marker[i][j]);
+            }
+        }
+
+        Mat markerCompressed = Dictionary.getByteListFromBits(markerBits);
+        assertMatNotEqual(markerCompressed, dictionary.get_bytesList());
+
+        dictionary.set_bytesList(markerCompressed);
+        assertMatEqual(markerCompressed, dictionary.get_bytesList());
+    }
+
+    public void testArucoDetector() {
+        Dictionary dictionary = Objdetect.getPredefinedDictionary(0);
+        DetectorParameters detectorParameters = new DetectorParameters();
+        ArucoDetector detector = new ArucoDetector(dictionary, detectorParameters);
+
+        Mat markerImage = new Mat();
+        int id = 1, offset = 5, size = 40;
+        Objdetect.generateImageMarker(dictionary, id, size, markerImage, detectorParameters.get_markerBorderBits());
+
+        Mat image = new Mat(markerImage.rows() + 2*offset, markerImage.cols() + 2*offset,
+                            CvType.CV_8UC1, new Scalar(255));
+        Mat m = image.submat(offset, size+offset, offset, size+offset);
+        markerImage.copyTo(m);
+
+        List<Mat> corners = new ArrayList();
+        Mat ids = new Mat();
+        detector.detectMarkers(image, corners, ids);
+
+        assertEquals(1, corners.size());
+        Mat res = corners.get(0);
+        assertArrayEquals(new double[]{offset, offset}, res.get(0, 0), 0.0);
+        assertArrayEquals(new double[]{size + offset - 1, offset}, res.get(0, 1), 0.0);
+        assertArrayEquals(new double[]{size + offset - 1, size + offset - 1}, res.get(0, 2), 0.0);
+        assertArrayEquals(new double[]{offset, size + offset - 1}, res.get(0, 3), 0.0);
+    }
+}
diff --git a/modules/objdetect/misc/python/test/test_objdetect_aruco.py b/modules/objdetect/misc/python/test/test_objdetect_aruco.py
new file mode 100644 (file)
index 0000000..318159b
--- /dev/null
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+
+# Python 2/3 compatibility
+from __future__ import print_function
+
+import os, numpy as np
+
+import cv2 as cv
+
+from tests_common import NewOpenCVTests
+
+class aruco_objdetect_test(NewOpenCVTests):
+
+    def test_idsAccessibility(self):
+
+        ids = np.arange(17)
+        rev_ids = ids[::-1]
+
+        aruco_dict  = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_5X5_250)
+        board = cv.aruco.CharucoBoard_create(7, 5, 1, 0.5, aruco_dict)
+
+        np.testing.assert_array_equal(board.getIds().squeeze(), ids)
+
+        board = cv.aruco.CharucoBoard_create(7, 5, 1, 0.5, aruco_dict, rev_ids)
+        np.testing.assert_array_equal(board.getIds().squeeze(), rev_ids)
+
+        board = cv.aruco.CharucoBoard_create(7, 5, 1, 0.5, aruco_dict, ids)
+        np.testing.assert_array_equal(board.getIds().squeeze(), ids)
+
+    def test_identify(self):
+        aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_50)
+        expected_idx = 9
+        expected_rotation = 2
+        bit_marker = np.array([[0, 1, 1, 0], [1, 0, 1, 0], [1, 1, 1, 1], [0, 0, 1, 1]], dtype=np.uint8)
+
+        check, idx, rotation = aruco_dict.identify(bit_marker, 0)
+
+        self.assertTrue(check, True)
+        self.assertEqual(idx, expected_idx)
+        self.assertEqual(rotation, expected_rotation)
+
+    def test_getDistanceToId(self):
+        aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_50)
+        idx = 7
+        rotation = 3
+        bit_marker = np.array([[0, 1, 0, 1], [0, 1, 1, 1], [1, 1, 0, 0], [0, 1, 0, 0]], dtype=np.uint8)
+        dist = aruco_dict.getDistanceToId(bit_marker, idx)
+
+        self.assertEqual(dist, 0)
+
+    def test_aruco_detector(self):
+        aruco_params = cv.aruco.DetectorParameters()
+        aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_250)
+        aruco_detector = cv.aruco.ArucoDetector(aruco_dict, aruco_params)
+        id = 2
+        marker_size = 100
+        offset = 10
+        img_marker = cv.aruco.generateImageMarker(aruco_dict, id, marker_size, aruco_params.markerBorderBits)
+        img_marker = np.pad(img_marker, pad_width=offset, mode='constant', constant_values=255)
+        gold_corners = np.array([[offset, offset],[marker_size+offset-1.0,offset],
+                                 [marker_size+offset-1.0,marker_size+offset-1.0],
+                                 [offset, marker_size+offset-1.0]], dtype=np.float32)
+        corners, ids, rejected = aruco_detector.detectMarkers(img_marker)
+
+        self.assertEqual(1, len(ids))
+        self.assertEqual(id, ids[0])
+        for i in range(0, len(corners)):
+            np.testing.assert_array_equal(gold_corners, corners[i].reshape(4, 2))
+
+    def test_aruco_detector_refine(self):
+        aruco_params = cv.aruco.DetectorParameters()
+        aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_250)
+        aruco_detector = cv.aruco.ArucoDetector(aruco_dict, aruco_params)
+        board_size = (3, 4)
+        board = cv.aruco.GridBoard_create(board_size[0], board_size[1], 5.0, 1.0, aruco_dict)
+        board_image = board.generateImage((board_size[0]*50, board_size[1]*50), marginSize=10)
+
+        corners, ids, rejected = aruco_detector.detectMarkers(board_image)
+        self.assertEqual(board_size[0]*board_size[1], len(ids))
+
+        part_corners, part_ids, part_rejected = corners[:-1], ids[:-1], list(rejected)
+        part_rejected.append(corners[-1])
+
+        refine_corners, refine_ids, refine_rejected, recovered_ids = aruco_detector.refineDetectedMarkers(board_image, board, part_corners, part_ids, part_rejected)
+
+        self.assertEqual(board_size[0] * board_size[1], len(refine_ids))
+        self.assertEqual(1, len(recovered_ids))
+
+        self.assertEqual(ids[-1], refine_ids[-1])
+        self.assertEqual((1, 4, 2), refine_corners[0].shape)
+        np.testing.assert_array_equal(corners, refine_corners)
+
+if __name__ == '__main__':
+    NewOpenCVTests.bootstrap()
diff --git a/modules/objdetect/src/aruco/apriltag/apriltag_quad_thresh.cpp b/modules/objdetect/src/aruco/apriltag/apriltag_quad_thresh.cpp
new file mode 100644 (file)
index 0000000..38d1b2f
--- /dev/null
@@ -0,0 +1,1666 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+//
+// Copyright (C) 2013-2016, The Regents of The University of Michigan.
+//
+// This software was developed in the APRIL Robotics Lab under the
+// direction of Edwin Olson, ebolson@umich.edu. This software may be
+// available under alternative licensing terms; contact the address above.
+//
+// The views and conclusions contained in the software and documentation are those
+// of the authors and should not be interpreted as representing official policies,
+// either expressed or implied, of the Regents of The University of Michigan.
+
+// limitation: image size must be <32768 in width and height. This is
+// because we use a fixed-point 16 bit integer representation with one
+// fractional bit.
+
+#include "../../precomp.hpp"
+#include "apriltag_quad_thresh.hpp"
+
+//#define APRIL_DEBUG
+#ifdef APRIL_DEBUG
+    #include "opencv2/imgcodecs.hpp"
+    #include <opencv2/imgproc.hpp>
+#endif
+
+namespace cv {
+namespace aruco {
+
+static void ptsort_(struct pt *pts, int sz); // forward delaration
+
+static inline
+void ptsort(struct pt *pts, int sz)
+{
+#define MAYBE_SWAP(arr,apos,bpos)                                   \
+        if (arr[apos].theta > arr[bpos].theta) {                        \
+            tmp = arr[apos]; arr[apos] = arr[bpos]; arr[bpos] = tmp;    \
+        };
+
+    if (sz <= 1)
+        return;
+
+    if (sz == 2) {
+        struct pt tmp;
+        MAYBE_SWAP(pts, 0, 1);
+        return;
+    }
+
+    // NB: Using less-branch-intensive sorting networks here on the
+    // hunch that it's better for performance.
+    if (sz == 3) { // 3 element bubble sort is optimal
+        struct pt tmp;
+        MAYBE_SWAP(pts, 0, 1);
+        MAYBE_SWAP(pts, 1, 2);
+        MAYBE_SWAP(pts, 0, 1);
+        return;
+    }
+
+    if (sz == 4) { // 4 element optimal sorting network.
+        struct pt tmp;
+        MAYBE_SWAP(pts, 0, 1); // sort each half, like a merge sort
+        MAYBE_SWAP(pts, 2, 3);
+        MAYBE_SWAP(pts, 0, 2); // minimum value is now at 0.
+        MAYBE_SWAP(pts, 1, 3); // maximum value is now at end.
+        MAYBE_SWAP(pts, 1, 2); // that only leaves the middle two.
+        return;
+    }
+
+    if (sz == 5) {
+        // this 9-step swap is optimal for a sorting network, but two
+        // steps slower than a generic sort.
+        struct pt tmp;
+        MAYBE_SWAP(pts, 0, 1); // sort each half (3+2), like a merge sort
+        MAYBE_SWAP(pts, 3, 4);
+        MAYBE_SWAP(pts, 1, 2);
+        MAYBE_SWAP(pts, 0, 1);
+        MAYBE_SWAP(pts, 0, 3); // minimum element now at 0
+        MAYBE_SWAP(pts, 2, 4); // maximum element now at end
+        MAYBE_SWAP(pts, 1, 2); // now resort the three elements 1-3.
+        MAYBE_SWAP(pts, 2, 3);
+        MAYBE_SWAP(pts, 1, 2);
+        return;
+    }
+
+#undef MAYBE_SWAP
+
+    ptsort_(pts, sz);
+}
+
+void ptsort_(struct pt *pts, int sz)
+{
+    // a merge sort with temp storage.
+
+    // Use stack storage if it's not too big.
+    cv::AutoBuffer<struct pt, 1024> _tmp_stack(sz);
+    memcpy(_tmp_stack.data(), pts, sizeof(struct pt) * sz);
+
+    int asz = sz/2;
+    int bsz = sz - asz;
+
+    struct pt *as = &_tmp_stack[0];
+    struct pt *bs = &_tmp_stack[asz];
+
+    ptsort(as, asz);
+    ptsort(bs, bsz);
+
+#define MERGE(apos,bpos)                        \
+    if (as[apos].theta < bs[bpos].theta)        \
+        pts[outpos++] = as[apos++];             \
+    else                                        \
+        pts[outpos++] = bs[bpos++];
+
+    int apos = 0, bpos = 0, outpos = 0;
+    while (apos + 8 < asz && bpos + 8 < bsz) {
+        MERGE(apos,bpos); MERGE(apos,bpos); MERGE(apos,bpos); MERGE(apos,bpos);
+        MERGE(apos,bpos); MERGE(apos,bpos); MERGE(apos,bpos); MERGE(apos,bpos);
+    }
+
+    while (apos < asz && bpos < bsz) {
+        MERGE(apos,bpos);
+    }
+
+    if (apos < asz)
+        memcpy(&pts[outpos], &as[apos], (asz-apos)*sizeof(struct pt));
+    if (bpos < bsz)
+        memcpy(&pts[outpos], &bs[bpos], (bsz-bpos)*sizeof(struct pt));
+
+#undef MERGE
+}
+
+/**
+ * lfps contains *cumulative* moments for N points, with
+ * index j reflecting points [0,j] (inclusive).
+ * fit a line to the points [i0, i1] (inclusive). i0, i1 are both (0, sz)
+ * if i1 < i0, we treat this as a wrap around.
+ */
+void fit_line(struct line_fit_pt *lfps, int sz, int i0, int i1, double *lineparm, double *err, double *mse){
+    CV_Assert(i0 != i1);
+    CV_Assert(i0 >= 0 && i1 >= 0 && i0 < sz && i1 < sz);
+
+    double Mx, My, Mxx, Myy, Mxy, W;
+    int N; // how many points are included in the set?
+
+    if (i0 < i1) {
+        N = i1 - i0 + 1;
+
+        Mx  = lfps[i1].Mx;
+        My  = lfps[i1].My;
+        Mxx = lfps[i1].Mxx;
+        Mxy = lfps[i1].Mxy;
+        Myy = lfps[i1].Myy;
+        W   = lfps[i1].W;
+
+        if (i0 > 0) {
+            Mx  -= lfps[i0-1].Mx;
+            My  -= lfps[i0-1].My;
+            Mxx -= lfps[i0-1].Mxx;
+            Mxy -= lfps[i0-1].Mxy;
+            Myy -= lfps[i0-1].Myy;
+            W   -= lfps[i0-1].W;
+        }
+
+    } else {
+        // i0 > i1, e.g. [15, 2]. Wrap around.
+        CV_Assert(i0 > 0);
+
+        Mx  = lfps[sz-1].Mx   - lfps[i0-1].Mx;
+        My  = lfps[sz-1].My   - lfps[i0-1].My;
+        Mxx = lfps[sz-1].Mxx  - lfps[i0-1].Mxx;
+        Mxy = lfps[sz-1].Mxy  - lfps[i0-1].Mxy;
+        Myy = lfps[sz-1].Myy  - lfps[i0-1].Myy;
+        W   = lfps[sz-1].W    - lfps[i0-1].W;
+
+        Mx  += lfps[i1].Mx;
+        My  += lfps[i1].My;
+        Mxx += lfps[i1].Mxx;
+        Mxy += lfps[i1].Mxy;
+        Myy += lfps[i1].Myy;
+        W   += lfps[i1].W;
+
+        N = sz - i0 + i1 + 1;
+    }
+
+    CV_Assert(N >= 2);
+
+    double Ex = Mx / W;
+    double Ey = My / W;
+    double Cxx = Mxx / W - Ex*Ex;
+    double Cxy = Mxy / W - Ex*Ey;
+    double Cyy = Myy / W - Ey*Ey;
+
+    double nx, ny;
+
+    if (1) {
+        // on iOS about 5% of total CPU spent in these trig functions.
+        // 85 ms per frame on 5S, example.pnm
+        //
+        // XXX this was using the double-precision atan2. Was there a case where
+        // we needed that precision? Seems doubtful.
+        float normal_theta = float(.5f * (CV_PI / 180)) * cv::fastAtan2((float)(-2*Cxy), (float)(Cyy - Cxx));
+        nx = cosf(normal_theta);
+        ny = sinf(normal_theta);
+    } else {
+        // 73.5 ms per frame on 5S, example.pnm
+        double ty = -2*Cxy;
+        double tx = (Cyy - Cxx);
+        double mag = ty*ty + tx*tx;
+
+        if (mag == 0) {
+            nx = 1;
+            ny = 0;
+        } else {
+            float norm = sqrtf((float)(ty*ty + tx*tx));
+            tx /= norm;
+
+            // ty is now sin(2theta)
+            // tx is now cos(2theta). We want sin(theta) and cos(theta)
+
+            // due to precision err, tx could still have slightly too large magnitude.
+            if (tx > 1) {
+                ny = 0;
+                nx = 1;
+            } else if (tx < -1) {
+                ny = 1;
+                nx = 0;
+            } else {
+                // half angle formula
+                ny = sqrtf((1.0f - (float)tx)*0.5f);
+                nx = sqrtf((1.0f + (float)tx)*0.5f);
+
+                // pick a consistent branch cut
+                if (ty < 0)
+                    ny = - ny;
+            }
+        }
+    }
+
+    if (lineparm) {
+        lineparm[0] = Ex;
+        lineparm[1] = Ey;
+        lineparm[2] = nx;
+        lineparm[3] = ny;
+    }
+
+    // sum of squared errors =
+    //
+    // SUM_i ((p_x - ux)*nx + (p_y - uy)*ny)^2
+    // SUM_i  nx*nx*(p_x - ux)^2 + 2nx*ny(p_x -ux)(p_y-uy) + ny*ny*(p_y-uy)*(p_y-uy)
+    //  nx*nx*SUM_i((p_x -ux)^2) + 2nx*ny*SUM_i((p_x-ux)(p_y-uy)) + ny*ny*SUM_i((p_y-uy)^2)
+    //
+    //  nx*nx*N*Cxx + 2nx*ny*N*Cxy + ny*ny*N*Cyy
+
+    // sum of squared errors
+    if (err)
+        *err = nx*nx*N*Cxx + 2*nx*ny*N*Cxy + ny*ny*N*Cyy;
+
+    // mean squared error
+    if (mse)
+        *mse = nx*nx*Cxx + 2*nx*ny*Cxy + ny*ny*Cyy;
+}
+
+int err_compare_descending(const void *_a, const void *_b){
+    const double *a =  (const double*)_a;
+    const double *b =  (const double*)_b;
+
+    return ((*a) < (*b)) ? 1 : -1;
+}
+
+/**
+  1. Identify A) white points near a black point and B) black points near a white point.
+
+  2. Find the connected components within each of the classes above,
+  yielding clusters of "white-near-black" and
+  "black-near-white". (These two classes are kept separate). Each
+  segment has a unique id.
+
+  3. For every pair of "white-near-black" and "black-near-white"
+  clusters, find the set of points that are in one and adjacent to the
+  other. In other words, a "boundary" layer between the two
+  clusters. (This is actually performed by iterating over the pixels,
+  rather than pairs of clusters.) Critically, this helps keep nearby
+  edges from becoming connected.
+ **/
+int quad_segment_maxima(const DetectorParameters &td, int sz, struct line_fit_pt *lfps, int indices[4]){
+
+    // ksz: when fitting points, how many points on either side do we consider?
+    // (actual "kernel" width is 2ksz).
+    //
+    // This value should be about: 0.5 * (points along shortest edge).
+    //
+    // If all edges were equally-sized, that would give a value of
+    // sz/8. We make it somewhat smaller to account for tags at high
+    // aspects.
+
+    // XXX Tunable. Maybe make a multiple of JPEG block size to increase robustness
+    // to JPEG compression artifacts?
+    //int ksz = imin(20, sz / 12);
+    int ksz = 20 < (sz/12)? 20: (sz/12);
+
+    // can't fit a quad if there are too few points.
+    if (ksz < 2)
+        return 0;
+
+    //    printf("sz %5d, ksz %3d\n", sz, ksz);
+
+    std::vector<double> errs(sz);
+
+    for (int i = 0; i < sz; i++) {
+        fit_line(lfps, sz, (i + sz - ksz) % sz, (i + ksz) % sz, NULL, &errs[i], NULL);
+    }
+
+    // apply a low-pass filter to errs
+    if (1) {
+        std::vector<double> y(sz);
+
+        // how much filter to apply?
+
+        // XXX Tunable
+        double sigma = 1; // was 3
+
+        // cutoff = exp(-j*j/(2*sigma*sigma));
+        // log(cutoff) = -j*j / (2*sigma*sigma)
+        // log(cutoff)*2*sigma*sigma = -j*j;
+
+        // how big a filter should we use? We make our kernel big
+        // enough such that we represent any values larger than
+        // 'cutoff'.
+
+        // XXX Tunable (though not super useful to change)
+        double cutoff = 0.05;
+        int fsz = cvFloor(sqrt(-log(cutoff)*2*sigma*sigma)) + 1;
+        fsz = 2*fsz + 1;
+
+        // For default values of cutoff = 0.05, sigma = 3,
+        // we have fsz = 17.
+        std::vector<float> f(fsz);
+
+        for (int i = 0; i < fsz; i++) {
+            int j = i - fsz / 2;
+            f[i] = (float)exp(-j*j/(2*sigma*sigma));
+        }
+
+        for (int iy = 0; iy < sz; iy++) {
+            double acc = 0;
+
+            for (int i = 0; i < fsz; i++) {
+                acc += errs[(iy + i - fsz / 2 + sz) % sz] * f[i];
+            }
+            y[iy] = acc;
+        }
+        copy(y.begin(), y.end(), errs.begin());
+    }
+
+    std::vector<int> maxima(sz);
+    std::vector<double> maxima_errs(sz);
+    int nmaxima = 0;
+
+    for (int i = 0; i < sz; i++) {
+        if (errs[i] > errs[(i+1)%sz] && errs[i] > errs[(i+sz-1)%sz]) {
+            maxima[nmaxima] = i;
+            maxima_errs[nmaxima] = errs[i];
+            nmaxima++;
+        }
+    }
+    // if we didn't get at least 4 maxima, we can't fit a quad.
+    if (nmaxima < 4)
+        return 0;
+
+    // select only the best maxima if we have too many
+    int max_nmaxima = td.aprilTagMaxNmaxima;
+
+    if (nmaxima > max_nmaxima) {
+        std::vector<double> maxima_errs_copy(maxima_errs.begin(), maxima_errs.begin()+nmaxima);
+
+        // throw out all but the best handful of maxima. Sorts descending.
+        qsort(maxima_errs_copy.data(), nmaxima, sizeof(double), err_compare_descending);
+
+        double maxima_thresh = maxima_errs_copy[max_nmaxima];
+        int out = 0;
+        for (int in = 0; in < nmaxima; in++) {
+            if (maxima_errs[in] <= maxima_thresh)
+                continue;
+            maxima[out++] = maxima[in];
+        }
+        nmaxima = out;
+    }
+
+    int best_indices[4];
+    double best_error = HUGE_VALF;
+
+    double err01, err12, err23, err30;
+    double mse01, mse12, mse23, mse30;
+    double params01[4], params12[4], params23[4], params30[4];
+
+    // disallow quads where the angle is less than a critical value.
+    double max_dot = cos(td.aprilTagCriticalRad); //25*M_PI/180);
+
+    for (int m0 = 0; m0 < nmaxima - 3; m0++) {
+        int i0 = maxima[m0];
+
+        for (int m1 = m0+1; m1 < nmaxima - 2; m1++) {
+            int i1 = maxima[m1];
+
+            fit_line(lfps, sz, i0, i1, params01, &err01, &mse01);
+
+            if (mse01 > td.aprilTagMaxLineFitMse)
+                continue;
+
+            for (int m2 = m1+1; m2 < nmaxima - 1; m2++) {
+                int i2 = maxima[m2];
+
+                fit_line(lfps, sz, i1, i2, params12, &err12, &mse12);
+                if (mse12 > td.aprilTagMaxLineFitMse)
+                    continue;
+
+                double dot = params01[2]*params12[2] + params01[3]*params12[3];
+                if (fabs(dot) > max_dot)
+                    continue;
+
+                for (int m3 = m2+1; m3 < nmaxima; m3++) {
+                    int i3 = maxima[m3];
+
+                    fit_line(lfps, sz, i2, i3, params23, &err23, &mse23);
+                    if (mse23 > td.aprilTagMaxLineFitMse)
+                        continue;
+
+                    fit_line(lfps, sz, i3, i0, params30, &err30, &mse30);
+                    if (mse30 > td.aprilTagMaxLineFitMse)
+                        continue;
+
+                    double err = err01 + err12 + err23 + err30;
+                    if (err < best_error) {
+                        best_error = err;
+                        best_indices[0] = i0;
+                        best_indices[1] = i1;
+                        best_indices[2] = i2;
+                        best_indices[3] = i3;
+                    }
+                }
+            }
+        }
+    }
+
+    if (best_error == HUGE_VALF)
+        return 0;
+
+    for (int i = 0; i < 4; i++)
+        indices[i] = best_indices[i];
+
+    if (best_error / sz < td.aprilTagMaxLineFitMse)
+        return 1;
+    return 0;
+}
+
+/**
+ * returns 0 if the cluster looks bad.
+ */
+int quad_segment_agg(int sz, struct line_fit_pt *lfps, int indices[4]){
+    //int sz = zarray_size(cluster);
+
+    zmaxheap_t *heap = zmaxheap_create(sizeof(struct remove_vertex*));
+
+    // We will initially allocate sz rvs. We then have two types of
+    // iterations: some iterations that are no-ops in terms of
+    // allocations, and those that remove a vertex and allocate two
+    // more children.  This will happen at most (sz-4) times.  Thus we
+    // need: sz + 2*(sz-4) entries.
+
+    int rvalloc_pos = 0;
+    int rvalloc_size = 3*sz;
+    cv::AutoBuffer<struct remove_vertex, 0> rvalloc_(std::max(1, rvalloc_size));
+    memset(rvalloc_.data(), 0, sizeof(rvalloc_[0]) * rvalloc_.size()); // TODO Add AutoBuffer zero fill
+    struct remove_vertex *rvalloc = rvalloc_.data();
+    cv::AutoBuffer<struct segment, 0> segs_(std::max(1, sz)); // TODO Add AutoBuffer zero fill
+    memset(segs_.data(), 0, sizeof(segs_[0]) * segs_.size());
+    struct segment *segs = segs_.data();
+
+    // populate with initial entries
+    for (int i = 0; i < sz; i++) {
+        struct remove_vertex *rv = &rvalloc[rvalloc_pos++];
+        rv->i = i;
+        if (i == 0) {
+            rv->left = sz-1;
+            rv->right = 1;
+        } else {
+            rv->left  = i-1;
+            rv->right = (i+1) % sz;
+        }
+
+        fit_line(lfps, sz, rv->left, rv->right, NULL, NULL, &rv->err);
+
+        //TODO is finite CV_Assert():
+        CV_DbgAssert (!cvIsNaN(-rv->err) && "zmaxheap_add: Trying to add non-finite number to heap.  NaN's prohibited, could allow INF with testing");
+        zmaxheap_add(heap, &rv, (float)-rv->err);
+
+        segs[i].left = rv->left;
+        segs[i].right = rv->right;
+        segs[i].is_vertex = 1;
+    }
+
+    int nvertices = sz;
+
+    while (nvertices > 4) {
+        CV_Assert(rvalloc_pos < rvalloc_size);
+
+        struct remove_vertex *rv;
+        float err;
+
+        int res = zmaxheap_remove_max(heap, &rv, &err);
+        if (!res)
+            return 0;
+        CV_Assert(res);
+
+        // is this remove_vertex valid? (Or has one of the left/right
+        // vertices changes since we last looked?)
+        if (!segs[rv->i].is_vertex ||
+                !segs[rv->left].is_vertex ||
+                !segs[rv->right].is_vertex) {
+            continue;
+        }
+
+        // we now merge.
+        CV_Assert(segs[rv->i].is_vertex);
+
+        segs[rv->i].is_vertex = 0;
+        segs[rv->left].right = rv->right;
+        segs[rv->right].left = rv->left;
+
+        // create the join to the left
+        if (1) {
+            struct remove_vertex *child = &rvalloc[rvalloc_pos++];
+            child->i = rv->left;
+            child->left = segs[rv->left].left;
+            child->right = rv->right;
+
+            fit_line(lfps, sz, child->left, child->right, NULL, NULL, &child->err);
+
+            //TODO is finite CV_Assert():
+            CV_DbgAssert (!cvIsNaN(-child->err) && "zmaxheap_add: Trying to add non-finite number to heap.  NaN's prohibited, could allow INF with testing");
+            zmaxheap_add(heap, &child, (float)-child->err);
+        }
+
+        // create the join to the right
+        if (1) {
+            struct remove_vertex *child = &rvalloc[rvalloc_pos++];
+            child->i = rv->right;
+            child->left = rv->left;
+            child->right = segs[rv->right].right;
+
+            fit_line(lfps, sz, child->left, child->right, NULL, NULL, &child->err);
+
+            //TODO is finite CV_Assert():
+            CV_DbgAssert (!cvIsNaN(-child->err) && "zmaxheap_add: Trying to add non-finite number to heap.  NaN's prohibited, could allow INF with testing");
+            zmaxheap_add(heap, &child, (float)-child->err);
+        }
+
+        // we now have one less vertex
+        nvertices--;
+    }
+
+    zmaxheap_destroy(heap);
+
+    int idx = 0;
+    for (int i = 0; i < sz; i++) {
+        if (segs[i].is_vertex) {
+            indices[idx++] = i;
+        }
+    }
+
+    return 1;
+}
+
+#define DO_UNIONFIND(dx, dy) if (im.data[y*s + dy*s + x + dx] == v) unionfind_connect(uf, y*w + x, y*w + dy*w + x + dx);
+static void do_unionfind_line(unionfind_t *uf, Mat &im, int w, int s, int y){
+    CV_Assert(y+1 < im.rows);
+    CV_Assert(!im.empty());
+
+    for (int x = 1; x < w - 1; x++) {
+        uint8_t v = im.data[y*s + x];
+
+        if (v == 127)
+            continue;
+
+        // (dx,dy) pairs for 8 connectivity:
+        //          (REFERENCE) (1, 0)
+        // (-1, 1)    (0, 1)    (1, 1)
+        //
+        DO_UNIONFIND(1, 0);
+        DO_UNIONFIND(0, 1);
+        if (v == 255) {
+            DO_UNIONFIND(-1, 1);
+            DO_UNIONFIND(1, 1);
+        }
+    }
+}
+#undef DO_UNIONFIND
+
+/**
+ *  return 1 if the quad looks okay, 0 if it should be discarded
+ *  quad
+ **/
+int fit_quad(const DetectorParameters &_params, const Mat im, zarray_t *cluster, struct sQuad *quad){
+    CV_Assert(cluster != NULL);
+
+    int res = 0;
+
+    int sz = _zarray_size(cluster);
+    if (sz < 4) // can't fit a quad to less than 4 points
+        return 0;
+
+    /////////////////////////////////////////////////////////////
+    // Step 1. Sort points so they wrap around the center of the
+    // quad. We will constrain our quad fit to simply partition this
+    // ordered set into 4 groups.
+
+    // compute a bounding box so that we can order the points
+    // according to their angle WRT the center.
+    int32_t xmax = 0, xmin = INT32_MAX, ymax = 0, ymin = INT32_MAX;
+
+    for (int pidx = 0; pidx < sz; pidx++) {
+        struct pt *p;
+        _zarray_get_volatile(cluster, pidx, &p);
+
+        //(a > b) ? a : b;
+        //xmax = imax(xmax, p->x);
+        //xmin = imin(xmin, p->x);
+        //ymax = imax(ymax, p->y);
+        //ymin = imin(ymin, p->y);
+
+        xmax = xmax > p->x? xmax : p->x;
+        xmin = xmin < p->x? xmin : p->x;
+
+        ymax = ymax > p->y? ymax : p->y;
+        ymin = ymin < p->y? ymin : p->y;
+    }
+
+    // add some noise to (cx,cy) so that pixels get a more diverse set
+    // of theta estimates. This will help us remove more points.
+    // (Only helps a small amount. The actual noise values here don't
+    // matter much at all, but we want them [-1, 1]. (XXX with
+    // fixed-point, should range be bigger?)
+    double cx = (xmin + xmax) * 0.5 + 0.05118;
+    double cy = (ymin + ymax) * 0.5 + -0.028581;
+
+    double dot = 0;
+
+    for (int pidx = 0; pidx < sz; pidx++) {
+        struct pt *p;
+        _zarray_get_volatile(cluster, pidx, &p);
+
+        double dx = p->x - cx;
+        double dy = p->y - cy;
+
+        p->theta = cv::fastAtan2((float)dy, (float)dx) * (float)(CV_PI/180);
+
+        dot += dx*p->gx + dy*p->gy;
+    }
+
+    // Ensure that the black border is inside the white border.
+    if (dot < 0)
+        return 0;
+
+    // we now sort the points according to theta. This is a preparatory
+    // step for segmenting them into four lines.
+    if (1) {
+        //        zarray_sort(cluster, pt_compare_theta);
+        ptsort((struct pt*) cluster->data, sz);
+
+        // remove duplicate points. (A byproduct of our segmentation system.)
+        if (1) {
+            int outpos = 1;
+
+            struct pt *last;
+            _zarray_get_volatile(cluster, 0, &last);
+
+            for (int i = 1; i < sz; i++) {
+
+                struct pt *p;
+                _zarray_get_volatile(cluster, i, &p);
+
+                if (p->x != last->x || p->y != last->y) {
+
+                    if (i != outpos)  {
+                        struct pt *out;
+                        _zarray_get_volatile(cluster, outpos, &out);
+                        memcpy(out, p, sizeof(struct pt));
+                    }
+
+                    outpos++;
+                }
+
+                last = p;
+            }
+
+            cluster->size = outpos;
+            sz = outpos;
+        }
+
+    } else {
+        // This is a counting sort in which we retain at most one
+        // point for every bucket; the bucket index is computed from
+        // theta. Since a good quad completes a complete revolution,
+        // there's reason to think that we should get a good
+        // distribution of thetas.  We might "lose" a few points due
+        // to collisions, but this shouldn't affect quality very much.
+
+        // XXX tunable. Increase to reduce the likelihood of "losing"
+        // points due to collisions.
+        int nbuckets = 4*sz;
+
+#define ASSOC 2
+        std::vector<std::vector<struct pt> > v(nbuckets, std::vector<struct pt>(ASSOC));
+
+        // put each point into a bucket.
+        for (int i = 0; i < sz; i++) {
+            struct pt *p;
+            _zarray_get_volatile(cluster, i, &p);
+
+            CV_Assert(p->theta >= -CV_PI && p->theta <= CV_PI);
+
+            int bucket = cvFloor((nbuckets - 1) * (p->theta + CV_PI) / (2*CV_PI));
+            CV_Assert(bucket >= 0 && bucket < nbuckets);
+
+            for (int j = 0; j < ASSOC; j++) {
+                if (v[bucket][j].theta == 0) {
+                    v[bucket][j] = *p;
+                    break;
+                }
+            }
+        }
+
+        // collect the points from the buckets and put them back into the array.
+        int outsz = 0;
+        for (int i = 0; i < nbuckets; i++) {
+            for (int j = 0; j < ASSOC; j++) {
+                if (v[i][j].theta != 0) {
+                    _zarray_set(cluster, outsz, &v[i][j], NULL);
+                    outsz++;
+                }
+            }
+        }
+
+        _zarray_truncate(cluster, outsz);
+        sz = outsz;
+    }
+
+    if (sz < 4)
+        return 0;
+
+    /////////////////////////////////////////////////////////////
+    // Step 2. Precompute statistics that allow line fit queries to be
+    // efficiently computed for any contiguous range of indices.
+
+    cv::AutoBuffer<struct line_fit_pt, 64> lfps_(sz);
+    memset(lfps_.data(), 0, sizeof(lfps_[0]) * lfps_.size()); // TODO Add AutoBuffer zero fill
+    struct line_fit_pt *lfps = lfps_.data();
+
+    for (int i = 0; i < sz; i++) {
+        struct pt *p;
+        _zarray_get_volatile(cluster, i, &p);
+
+        if (i > 0) {
+            memcpy(&lfps[i], &lfps[i-1], sizeof(struct line_fit_pt));
+        }
+
+        if (0) {
+            // we now undo our fixed-point arithmetic.
+            double delta = 0.5;
+            double x = p->x * .5 + delta;
+            double y = p->y * .5 + delta;
+            double W;
+
+            for (int dy = -1; dy <= 1; dy++) {
+                int iy = cvFloor(y + dy);
+
+                if (iy < 0 || iy + 1 >= im.rows)
+                    continue;
+
+                for (int dx = -1; dx <= 1; dx++) {
+                    int ix = cvFloor(x + dx);
+
+                    if (ix < 0 || ix + 1 >= im.cols)
+                        continue;
+
+                    int grad_x = im.data[iy * im.cols + ix + 1] -
+                            im.data[iy * im.cols + ix - 1];
+
+                    int grad_y = im.data[(iy+1) * im.cols + ix] -
+                            im.data[(iy-1) * im.cols + ix];
+
+                    W = sqrtf(float(grad_x*grad_x + grad_y*grad_y)) + 1;
+
+                    //                    double fx = x + dx, fy = y + dy;
+                    double fx = ix + .5, fy = iy + .5;
+                    lfps[i].Mx  += W * fx;
+                    lfps[i].My  += W * fy;
+                    lfps[i].Mxx += W * fx * fx;
+                    lfps[i].Mxy += W * fx * fy;
+                    lfps[i].Myy += W * fy * fy;
+                    lfps[i].W   += W;
+                }
+            }
+        } else {
+            // we now undo our fixed-point arithmetic.
+            double delta = 0.5; // adjust for pixel center bias
+            double x = p->x * .5 + delta;
+            double y = p->y * .5 + delta;
+            int ix = cvFloor(x), iy = cvFloor(y);
+            double W = 1;
+
+            if (ix > 0 && ix+1 < im.cols && iy > 0 && iy+1 < im.rows) {
+                int grad_x = im.data[iy * im.cols + ix + 1] -
+                        im.data[iy * im.cols + ix - 1];
+
+                int grad_y = im.data[(iy+1) * im.cols + ix] -
+                        im.data[(iy-1) * im.cols + ix];
+
+                // XXX Tunable. How to shape the gradient magnitude?
+                W = sqrt(grad_x*grad_x + grad_y*grad_y) + 1;
+            }
+
+            double fx = x, fy = y;
+            lfps[i].Mx  += W * fx;
+            lfps[i].My  += W * fy;
+            lfps[i].Mxx += W * fx * fx;
+            lfps[i].Mxy += W * fx * fy;
+            lfps[i].Myy += W * fy * fy;
+            lfps[i].W   += W;
+        }
+    }
+
+    int indices[4];
+    if (1) {
+        if (!quad_segment_maxima(_params, _zarray_size(cluster), lfps, indices))
+            goto finish;
+    } else {
+        if (!quad_segment_agg(sz, lfps, indices))
+            goto finish;
+    }
+
+    //    printf("%d %d %d %d\n", indices[0], indices[1], indices[2], indices[3]);
+
+    if (0) {
+        // no refitting here; just use those points as the vertices.
+        // Note, this is useful for debugging, but pretty bad in
+        // practice since this code path also omits several
+        // plausibility checks that save us tons of time in quad
+        // decoding.
+        for (int i = 0; i < 4; i++) {
+            struct pt *p;
+            _zarray_get_volatile(cluster, indices[i], &p);
+
+            quad->p[i][0] = (float)(.5*p->x); // undo fixed-point arith.
+            quad->p[i][1] = (float)(.5*p->y);
+        }
+
+        res = 1;
+
+    } else {
+        double lines[4][4];
+
+        for (int i = 0; i < 4; i++) {
+            int i0 = indices[i];
+            int i1 = indices[(i+1)&3];
+
+            if (0) {
+                // if there are enough points, skip the points near the corners
+                // (because those tend not to be very good.)
+                if (i1-i0 > 8) {
+                    int t = (i1-i0)/6;
+                    if (t < 0)
+                        t = -t;
+
+                    i0 = (i0 + t) % sz;
+                    i1 = (i1 + sz - t) % sz;
+                }
+            }
+
+            double err;
+            fit_line(lfps, sz, i0, i1, lines[i], NULL, &err);
+
+            if (err > _params.aprilTagMaxLineFitMse) {
+                res = 0;
+                goto finish;
+            }
+        }
+
+        for (int i = 0; i < 4; i++) {
+            // solve for the intersection of lines (i) and (i+1)&3.
+            // p0 + lambda0*u0 = p1 + lambda1*u1, where u0 and u1
+            // are the line directions.
+            //
+            // lambda0*u0 - lambda1*u1 = (p1 - p0)
+            //
+            // rearrange (solve for lambdas)
+            //
+            // [u0_x   -u1_x ] [lambda0] = [ p1_x - p0_x ]
+            // [u0_y   -u1_y ] [lambda1]   [ p1_y - p0_y ]
+            //
+            // remember that lines[i][0,1] = p, lines[i][2,3] = NORMAL vector.
+            // We want the unit vector, so we need the perpendiculars. Thus, below
+            // we have swapped the x and y components and flipped the y components.
+
+            const int i1 = (i + 1) & 3;
+            double A00 =  lines[i][3],  A01 = -lines[i1][3];
+            double A10 =  -lines[i][2],  A11 = lines[i1][2];
+            double B0 = -lines[i][0] + lines[i1][0];
+            double B1 = -lines[i][1] + lines[i1][1];
+
+            double det = A00 * A11 - A10 * A01;
+            if (fabs(det) < 0.001) {
+                res = 0;
+                goto finish;
+            }
+
+            // inverse.
+            double det_inv = 1.0 / det;
+            double W00 = A11 * det_inv, W01 = -A01 * det_inv;
+
+            // solve
+            double L0 = W00*B0 + W01*B1;
+
+            // compute intersection
+            quad->p[i][0] = (float)(lines[i][0] + L0*A00);
+            quad->p[i][1] = (float)(lines[i][1] + L0*A10);
+
+#if !defined(NDEBUG)
+            {
+                // we should get the same intersection starting
+                // from point p1 and moving L1*u1.
+                double W10 = -A10 * det_inv, W11 = A00 * det_inv;
+                double L1 = W10*B0 + W11*B1;
+
+                double x = lines[i1][0] - L1*A01;
+                double y = lines[i1][1] - L1*A11;
+
+                CV_Assert(fabs(x - quad->p[i][0]) < 0.001);
+                CV_Assert(fabs(y - quad->p[i][1]) < 0.001);
+            }
+#endif // NDEBUG
+
+            res = 1;
+        }
+    }
+
+    // reject quads that are too small
+    if (1) {
+        double area = 0;
+
+        // get area of triangle formed by points 0, 1, 2, 0
+        double length[3], p;
+        for (int i = 0; i < 3; i++) {
+            int idxa = i; // 0, 1, 2,
+            int idxb = (i+1) % 3; // 1, 2, 0
+            //length[i] = sqrt(
+            //                 sq(quad->p[idxb][0] - quad->p[idxa][0])
+            //               + sq(quad->p[idxb][1] - quad->p[idxa][1]));
+            double sq1 = quad->p[idxb][0] - quad->p[idxa][0];
+            sq1 = sq1 * sq1;
+            double sq2 = quad->p[idxb][1] - quad->p[idxa][1];
+            sq2 = sq2 * sq2;
+            length[i] = sqrt(sq1 + sq2);
+        }
+        p = (length[0] + length[1] + length[2]) / 2;
+
+        area += sqrt(p*(p-length[0])*(p-length[1])*(p-length[2]));
+
+        // get area of triangle formed by points 2, 3, 0, 2
+        for (int i = 0; i < 3; i++) {
+            int idxs[] = { 2, 3, 0, 2 };
+            int idxa = idxs[i];
+            int idxb = idxs[i+1];
+            //length[i] = sqrt(
+            //                  sq(quad->p[idxb][0] - quad->p[idxa][0])
+            //                + sq(quad->p[idxb][1] - quad->p[idxa][1]));
+            double sq1 = quad->p[idxb][0] - quad->p[idxa][0];
+            sq1 = sq1 * sq1;
+            double sq2 = quad->p[idxb][1] - quad->p[idxa][1];
+            sq2 = sq2 * sq2;
+            length[i] = sqrt(sq1 + sq2);
+        }
+        p = (length[0] + length[1] + length[2]) / 2;
+
+        area += sqrt(p*(p-length[0])*(p-length[1])*(p-length[2]));
+
+        // we don't actually know the family yet (quad detection is generic.)
+        // This threshold is based on a 6x6 tag (which is actually 8x8)
+        //        int d = fam->d + fam->black_border*2;
+        int d = 8;
+        if (area < d*d) {
+            res = 0;
+            goto finish;
+        }
+    }
+
+    // reject quads whose cumulative angle change isn't equal to 2PI
+    if(1){
+        double total = 0;
+
+        for (int i = 0; i < 4; i++) {
+            int i0 = i, i1 = (i+1)&3, i2 = (i+2)&3;
+
+            double theta0 = atan2f(quad->p[i0][1] - quad->p[i1][1],
+                    quad->p[i0][0] - quad->p[i1][0]);
+            double theta1 = atan2f(quad->p[i2][1] - quad->p[i1][1],
+                    quad->p[i2][0] - quad->p[i1][0]);
+
+            double dtheta = theta0 - theta1;
+            if (dtheta < 0)
+                dtheta += 2*CV_PI;
+
+            if (dtheta < _params.aprilTagCriticalRad || dtheta > (CV_PI - _params.aprilTagCriticalRad))
+                res = 0;
+
+            total += dtheta;
+        }
+
+        // looking for 2PI
+        if (total < 6.2 || total > 6.4) {
+            res = 0;
+            goto finish;
+        }
+    }
+
+    finish:
+
+    return res;
+}
+
+
+static void do_quad(int nCidx0, int nCidx1, zarray_t &nClusters, int nW, int nH, zarray_t *nquads, const DetectorParameters &td, const Mat im){
+
+    CV_Assert(nquads != NULL);
+
+    //struct quad_task *task = (struct quad_task*) p;
+
+    //zarray_t *clusters = nClusters;
+    zarray_t *quads = nquads;
+    int w = nW, h = nH;
+
+    for (int cidx = nCidx0; cidx < nCidx1; cidx++) {
+
+        zarray_t *cluster;
+        _zarray_get(&nClusters, cidx, &cluster);
+
+        if (_zarray_size(cluster) < td.aprilTagMinClusterPixels)
+            continue;
+
+        // a cluster should contain only boundary points around the
+        // tag. it cannot be bigger than the whole screen. (Reject
+        // large connected blobs that will be prohibitively slow to
+        // fit quads to.) A typical point along an edge is added three
+        // times (because it has 3 neighbors). The maximum perimeter
+        // is 2w+2h.
+        if (_zarray_size(cluster) > 3*(2*w+2*h)) {
+            continue;
+        }
+
+        struct sQuad quad;
+        memset(&quad, 0, sizeof(struct sQuad));
+
+        if (fit_quad(td, im, cluster, &quad)) {
+            //pthread_mutex_lock(&td.mutex);
+            _zarray_add(quads, &quad);
+            //pthread_mutex_unlock(&td.mutex);
+        }
+    }
+}
+
+void threshold(const Mat mIm, const DetectorParameters &parameters, Mat& mThresh){
+    int w = mIm.cols, h = mIm.rows;
+    int s = (unsigned) mIm.step;
+    CV_Assert(w < 32768);
+    CV_Assert(h < 32768);
+
+    CV_Assert(mThresh.step == (unsigned)s);
+
+    // The idea is to find the maximum and minimum values in a
+    // window around each pixel. If it's a contrast-free region
+    // (max-min is small), don't try to binarize. Otherwise,
+    // threshold according to (max+min)/2.
+    //
+    // Mark low-contrast regions with value 127 so that we can skip
+    // future work on these areas too.
+
+    // however, computing max/min around every pixel is needlessly
+    // expensive. We compute max/min for tiles. To avoid artifacts
+    // that arise when high-contrast features appear near a tile
+    // edge (and thus moving from one tile to another results in a
+    // large change in max/min value), the max/min values used for
+    // any pixel are computed from all 3x3 surrounding tiles. Thus,
+    // the max/min sampling area for nearby pixels overlap by at least
+    // one tile.
+    //
+    // The important thing is that the windows be large enough to
+    // capture edge transitions; the tag does not need to fit into
+    // a tile.
+
+    // XXX Tunable. Generally, small tile sizes--- so long as they're
+    // large enough to span a single tag edge--- seem to be a winner.
+    const int tilesz = 4;
+
+    // the last (possibly partial) tiles along each row and column will
+    // just use the min/max value from the last full tile.
+    int tw = w / tilesz;
+    int th = h / tilesz;
+
+    uint8_t *im_max = (uint8_t*)calloc(tw*th, sizeof(uint8_t));
+    uint8_t *im_min = (uint8_t*)calloc(tw*th, sizeof(uint8_t));
+
+
+    // first, collect min/max statistics for each tile
+    for (int ty = 0; ty < th; ty++) {
+        for (int tx = 0; tx < tw; tx++) {
+            uint8_t max = 0, min = 255;
+
+            for (int dy = 0; dy < tilesz; dy++) {
+
+                for (int dx = 0; dx < tilesz; dx++) {
+
+                    uint8_t v = mIm.data[(ty*tilesz+dy)*s + tx*tilesz + dx];
+                    if (v < min)
+                        min = v;
+                    if (v > max)
+                        max = v;
+                }
+            }
+            im_max[ty*tw+tx] = max;
+            im_min[ty*tw+tx] = min;
+        }
+    }
+
+    // second, apply 3x3 max/min convolution to "blur" these values
+    // over larger areas. This reduces artifacts due to abrupt changes
+    // in the threshold value.
+    uint8_t *im_max_tmp = (uint8_t*)calloc(tw*th, sizeof(uint8_t));
+    uint8_t *im_min_tmp = (uint8_t*)calloc(tw*th, sizeof(uint8_t));
+
+    for (int ty = 0; ty < th; ty++) {
+        for (int tx = 0; tx < tw; tx++) {
+            uint8_t max = 0, min = 255;
+
+            for (int dy = -1; dy <= 1; dy++) {
+                if (ty+dy < 0 || ty+dy >= th)
+                    continue;
+                for (int dx = -1; dx <= 1; dx++) {
+                    if (tx+dx < 0 || tx+dx >= tw)
+                        continue;
+
+                    uint8_t m = im_max[(ty+dy)*tw+tx+dx];
+                    if (m > max)
+                        max = m;
+                    m = im_min[(ty+dy)*tw+tx+dx];
+                    if (m < min)
+                        min = m;
+                }
+            }
+
+            im_max_tmp[ty*tw + tx] = max;
+            im_min_tmp[ty*tw + tx] = min;
+        }
+    }
+    free(im_max);
+    free(im_min);
+    im_max = im_max_tmp;
+    im_min = im_min_tmp;
+
+    for (int ty = 0; ty < th; ty++) {
+        for (int tx = 0; tx < tw; tx++) {
+
+            int min_ = im_min[ty*tw + tx];
+            int max_ = im_max[ty*tw + tx];
+
+            // low contrast region? (no edges)
+            if (max_ - min_ < parameters.aprilTagMinWhiteBlackDiff) {
+                for (int dy = 0; dy < tilesz; dy++) {
+                    int y = ty*tilesz + dy;
+
+                    for (int dx = 0; dx < tilesz; dx++) {
+                        int x = tx*tilesz + dx;
+
+                        //threshim->buf[y*s+x] = 127;
+                        mThresh.data[y*s+x] = 127;
+                    }
+                }
+                continue;
+            }
+
+            // otherwise, actually threshold this tile.
+
+            // argument for biasing towards dark; specular highlights
+            // can be substantially brighter than white tag parts
+            uint8_t thresh = saturate_cast<uint8_t>((max_ + min_) / 2);
+
+            for (int dy = 0; dy < tilesz; dy++) {
+                int y = ty*tilesz + dy;
+
+                for (int dx = 0; dx < tilesz; dx++) {
+                    int x = tx*tilesz + dx;
+
+                    uint8_t v = mIm.data[y*s+x];
+                    mThresh.data[y*s+x] = (v > thresh) ? 255 : 0;
+                }
+            }
+        }
+    }
+
+    // we skipped over the non-full-sized tiles above. Fix those now.
+    for (int y = 0; y < h; y++) {
+
+        // what is the first x coordinate we need to process in this row?
+
+        int x0;
+
+        if (y >= th*tilesz) {
+            x0 = 0; // we're at the bottom; do the whole row.
+        } else {
+            x0 = tw*tilesz; // we only need to do the right most part.
+        }
+
+        // compute tile coordinates and clamp.
+        int ty = y / tilesz;
+        if (ty >= th)
+            ty = th - 1;
+
+        for (int x = x0; x < w; x++) {
+            int tx = x / tilesz;
+            if (tx >= tw)
+                tx = tw - 1;
+
+            int max = im_max[ty*tw + tx];
+            int min = im_min[ty*tw + tx];
+            int thresh = min + (max - min) / 2;
+
+            uint8_t v = mIm.data[y*s+x];
+            if (v > thresh){
+                mThresh.data[y*s+x] = 255;
+            }
+            else{
+                mThresh.data[y*s+x] = 0;
+            }
+        }
+    }
+    free(im_min);
+    free(im_max);
+
+    // this is a dilate/erode deglitching scheme that does not improve
+    // anything as far as I can tell.
+    if (parameters.aprilTagDeglitch) {
+        Mat tmp(h,w, mIm.type());
+        for (int y = 1; y + 1 < h; y++) {
+            for (int x = 1; x + 1 < w; x++) {
+                uint8_t max = 0;
+                for (int dy = -1; dy <= 1; dy++) {
+                    for (int dx = -1; dx <= 1; dx++) {
+                        uint8_t v = mThresh.data[(y+dy)*s + x + dx];
+                        if (v > max)
+                            max = v;
+                    }
+                }
+                tmp.data[y*s+x] = max;
+            }
+        }
+
+        for (int y = 1; y + 1 < h; y++) {
+            for (int x = 1; x + 1 < w; x++) {
+                uint8_t min = 255;
+                for (int dy = -1; dy <= 1; dy++) {
+                    for (int dx = -1; dx <= 1; dx++) {
+                        uint8_t v = tmp.data[(y+dy)*s + x + dx];
+                        if (v < min)
+                            min = v;
+                    }
+                }
+                mThresh.data[y*s+x] = min;
+            }
+        }
+    }
+
+}
+
+#ifdef APRIL_DEBUG
+static void _darken(const Mat &im){
+    for (int y = 0; y < im.rows; y++) {
+        for (int x = 0; x < im.cols; x++) {
+            im.data[im.cols*y+x] /= 2;
+        }
+    }
+}
+#endif
+
+zarray_t *apriltag_quad_thresh(const DetectorParameters &parameters, const Mat & mImg, std::vector<std::vector<Point> > &contours){
+
+    ////////////////////////////////////////////////////////
+    // step 1. threshold the image, creating the edge image.
+
+    int w = mImg.cols, h = mImg.rows;
+
+    Mat thold(h, w, mImg.type());
+    threshold(mImg, parameters, thold);
+
+    int ts = thold.cols;
+
+#ifdef APRIL_DEBUG
+    imwrite("2.2 debug_threshold.pnm", thold);
+#endif
+
+    ////////////////////////////////////////////////////////
+    // step 2. find connected components.
+
+    unionfind_t *uf = unionfind_create(w * h);
+
+    // TODO PARALLELIZE
+    for (int y = 0; y < h - 1; y++) {
+        do_unionfind_line(uf, thold, w, ts, y);
+    }
+
+    // XXX sizing??
+    int nclustermap = 2*w*h - 1;
+
+    struct uint64_zarray_entry **clustermap = (struct uint64_zarray_entry**)calloc(nclustermap, sizeof(struct uint64_zarray_entry*));
+
+    for (int y = 1; y < h-1; y++) {
+        for (int x = 1; x < w-1; x++) {
+
+            uint8_t v0 = thold.data[y*ts + x];
+            if (v0 == 127)
+                continue;
+
+            // XXX don't query this until we know we need it?
+            uint64_t rep0 = unionfind_get_representative(uf, y*w + x);
+
+            // whenever we find two adjacent pixels such that one is
+            // white and the other black, we add the point half-way
+            // between them to a cluster associated with the unique
+            // ids of the white and black regions.
+            //
+            // We additionally compute the gradient direction (i.e., which
+            // direction was the white pixel?) Note: if (v1-v0) == 255, then
+            // (dx,dy) points towards the white pixel. if (v1-v0) == -255, then
+            // (dx,dy) points towards the black pixel. p.gx and p.gy will thus
+            // be -255, 0, or 255.
+            //
+            // Note that any given pixel might be added to multiple
+            // different clusters. But in the common case, a given
+            // pixel will be added multiple times to the same cluster,
+            // which increases the size of the cluster and thus the
+            // computational costs.
+            //
+            // A possible optimization would be to combine entries
+            // within the same cluster.
+
+#define DO_CONN(dx, dy)                                                 \
+        if (1) {                                                    \
+            uint8_t v1 = thold.data[y*ts + dy*ts + x + dx];         \
+            \
+            if (v0 + v1 == 255) {                                   \
+                uint64_t rep1 = unionfind_get_representative(uf, y*w + dy*w + x + dx); \
+                uint64_t clusterid;                                 \
+                if (rep0 < rep1)                                    \
+                clusterid = (rep1 << 32) + rep0;                \
+                else                                                \
+                clusterid = (rep0 << 32) + rep1;                \
+                \
+                /* XXX lousy hash function */                       \
+        uint32_t clustermap_bucket = u64hash_2(clusterid) % nclustermap; \
+        struct uint64_zarray_entry *entry = clustermap[clustermap_bucket]; \
+        while (entry && entry->id != clusterid)     {       \
+            entry = entry->next;                            \
+        }                                                   \
+        \
+        if (!entry) {                                       \
+            entry = (struct uint64_zarray_entry*)calloc(1, sizeof(struct uint64_zarray_entry)); \
+            entry->id = clusterid;                          \
+            entry->cluster = _zarray_create(sizeof(struct pt)); \
+            entry->next = clustermap[clustermap_bucket];    \
+            clustermap[clustermap_bucket] = entry;          \
+        }                                                   \
+        \
+        struct pt p;                                        \
+        p.x = saturate_cast<uint16_t>(2*x + dx);            \
+        p.y = saturate_cast<uint16_t>(2*y + dy);            \
+        p.gx = saturate_cast<uint16_t>(dx*((int) v1-v0));   \
+        p.gy = saturate_cast<uint16_t>(dy*((int) v1-v0));   \
+        _zarray_add(entry->cluster, &p);                    \
+        }                                                   \
+    }
+
+    // do 4 connectivity. NB: Arguments must be [-1, 1] or we'll overflow .gx, .gy
+    DO_CONN(1, 0);
+    DO_CONN(0, 1);
+
+    // do 8 connectivity
+    DO_CONN(-1, 1);
+    DO_CONN(1, 1);
+}
+}
+#undef DO_CONN
+
+#ifdef APRIL_DEBUG
+Mat out = Mat::zeros(h, w, CV_8UC3);
+
+uint32_t *colors = (uint32_t*) calloc(w*h, sizeof(*colors));
+
+for (int y = 0; y < h; y++) {
+    for (int x = 0; x < w; x++) {
+        uint32_t v = unionfind_get_representative(uf, y*w+x);
+
+        if (unionfind_get_set_size(uf, v) < parameters->aprilTagMinClusterPixels)
+            continue;
+
+        uint32_t color = colors[v];
+        uint8_t r = color >> 16,
+                g = color >> 8,
+                b = color;
+
+        if (color == 0) {
+            const int bias = 50;
+            r = bias + (random() % (200-bias));
+            g = bias + (random() % (200-bias));
+            b = bias + (random() % (200-bias));
+            colors[v] = (r << 16) | (g << 8) | b;
+        }
+        out.at<Vec3b>(y, x)[0]=b;
+        out.at<Vec3b>(y, x)[1]=g;
+        out.at<Vec3b>(y, x)[2]=r;
+    }
+}
+free(colors);
+imwrite("2.3 debug_segmentation.pnm", out);
+out = Mat::zeros(h, w, CV_8UC3);
+#endif
+
+    ////////////////////////////////////////////////////////
+    // step 3. process each connected component.
+    zarray_t *clusters = _zarray_create(sizeof(zarray_t*)); //, uint64_zarray_hash_size(clustermap));
+    CV_Assert(clusters != NULL);
+
+    for (int i = 0; i < nclustermap; i++) {
+        for (struct uint64_zarray_entry *entry = clustermap[i]; entry; entry = entry->next) {
+            // XXX reject clusters here?
+            _zarray_add(clusters, &entry->cluster);
+        }
+    }
+
+#ifdef APRIL_DEBUG
+for (int i = 0; i < _zarray_size(clusters); i++) {
+    zarray_t *cluster;
+    _zarray_get(clusters, i, &cluster);
+
+    uint32_t r, g, b;
+
+    const int bias = 50;
+    r = bias + (random() % (200-bias));
+    g = bias + (random() % (200-bias));
+    b = bias + (random() % (200-bias));
+
+    for (int j = 0; j < _zarray_size(cluster); j++) {
+        struct pt *p;
+        _zarray_get_volatile(cluster, j, &p);
+
+        int x = p->x / 2;
+        int y = p->y / 2;
+        out.at<Vec3b>(y, x)[0]=b;
+        out.at<Vec3b>(y, x)[1]=g;
+        out.at<Vec3b>(y, x)[2]=r;
+    }
+}
+
+imwrite("2.4 debug_clusters.pnm", out);
+out = Mat::zeros(h, w, CV_8UC3);
+#endif
+
+    for (int i = 0; i < _zarray_size(clusters); i++) {
+        zarray_t *cluster;
+        _zarray_get(clusters, i, &cluster);
+
+        std::vector<Point> cnt;
+        for (int j = 0; j < _zarray_size(cluster); j++) {
+            struct pt *p;
+            _zarray_get_volatile(cluster, j, &p);
+
+            Point pnt(p->x, p->y);
+            cnt.push_back(pnt);
+        }
+        contours.push_back(cnt);
+    }
+
+    for (int i = 0; i < nclustermap; i++) {
+        struct uint64_zarray_entry *entry = clustermap[i];
+        while (entry) {
+            struct uint64_zarray_entry *tmp = entry->next;
+            free(entry);
+            entry = tmp;
+        }
+    }
+    free(clustermap);
+
+    zarray_t *quads = _zarray_create(sizeof(struct sQuad));
+
+    //int chunksize = 1 + sz / (APRILTAG_TASKS_PER_THREAD_TARGET * numberOfThreads);
+    int chunksize = std::max(1, h / (10 * getNumThreads()));
+    int sz = _zarray_size(clusters);
+
+    // TODO PARALLELIZE
+    for (int i = 0; i < sz; i += chunksize) {
+        int min = sz < (i+chunksize)? sz: (i+chunksize);
+        do_quad(i, min, *clusters, w, h, quads, parameters, mImg);
+    }
+
+#ifdef APRIL_DEBUG
+mImg.copyTo(out);
+_darken(out);
+_darken(out);
+srandom(0);
+
+for (int i = 0; i < _zarray_size(quads); i++) {
+    struct sQuad *quad;
+    _zarray_get_volatile(quads, i, &quad);
+
+    float rgb[3];
+    int bias = 100;
+
+    for (int i = 0; i < 3; i++)
+        rgb[i] = bias + (random() % (255-bias));
+
+    line(out, Point(quad->p[0][0], quad->p[0][1]), Point(quad->p[1][0], quad->p[1][1]), rgb[i]);
+    line(out, Point(quad->p[1][0], quad->p[1][1]), Point(quad->p[2][0], quad->p[2][1]), rgb[i]);
+    line(out, Point(quad->p[2][0], quad->p[2][1]), Point(quad->p[3][0], quad->p[3][1]), rgb[i]);
+    line(out, Point(quad->p[3][0], quad->p[3][1]), Point(quad->p[0][0], quad->p[0][1]), rgb[i]);
+}
+imwrite("2.5 debug_lines.pnm", out);
+#endif
+
+    unionfind_destroy(uf);
+
+    for (int i = 0; i < _zarray_size(clusters); i++) {
+        zarray_t *cluster;
+        _zarray_get(clusters, i, &cluster);
+        _zarray_destroy(cluster);
+    }
+    _zarray_destroy(clusters);
+    return quads;
+}
+
+void _apriltag(Mat im_orig, const DetectorParameters & _params, std::vector<std::vector<Point2f> > &candidates,
+               std::vector<std::vector<Point> > &contours){
+
+    ///////////////////////////////////////////////////////////
+    /// Step 1. Detect quads according to requested image decimation
+    /// and blurring parameters.
+    Mat quad_im;
+
+    if (_params.aprilTagQuadDecimate > 1){
+        resize(im_orig, quad_im, Size(), 1/_params.aprilTagQuadDecimate, 1/_params.aprilTagQuadDecimate, INTER_AREA);
+    }
+    else {
+        im_orig.copyTo(quad_im);
+    }
+
+    // Apply a Blur
+    if (_params.aprilTagQuadSigma != 0) {
+        // compute a reasonable kernel width by figuring that the
+        // kernel should go out 2 std devs.
+        //
+        // max sigma          ksz
+        // 0.499              1  (disabled)
+        // 0.999              3
+        // 1.499              5
+        // 1.999              7
+
+        float sigma = fabsf((float) _params.aprilTagQuadSigma);
+
+        int ksz = cvFloor(4 * sigma); // 2 std devs in each direction
+        ksz |= 1; // make odd number
+
+        if (ksz > 1) {
+            if (_params.aprilTagQuadSigma > 0)
+                GaussianBlur(quad_im, quad_im, Size(ksz, ksz), sigma, sigma, BORDER_REPLICATE);
+            else {
+                Mat orig;
+                quad_im.copyTo(orig);
+                GaussianBlur(quad_im, quad_im, Size(ksz, ksz), sigma, sigma, BORDER_REPLICATE);
+
+                // SHARPEN the image by subtracting the low frequency components.
+                for (int y = 0; y < orig.rows; y++) {
+                    for (int x = 0; x < orig.cols; x++) {
+                        int vorig = orig.data[y*orig.step + x];
+                        int vblur = quad_im.data[y*quad_im.step + x];
+
+                        int v = 2*vorig - vblur;
+                        if (v < 0)
+                            v = 0;
+                        if (v > 255)
+                            v = 255;
+
+                        quad_im.data[y*quad_im.step + x] = (uint8_t) v;
+                    }
+                }
+            }
+        }
+    }
+
+#ifdef APRIL_DEBUG
+    imwrite("1.1 debug_preprocess.pnm", quad_im);
+#endif
+
+    ///////////////////////////////////////////////////////////
+    /// Step 2. do the Threshold :: get the set of candidate quads
+    zarray_t *quads = apriltag_quad_thresh(_params, quad_im, contours);
+
+    CV_Assert(quads != NULL);
+
+    // adjust centers of pixels so that they correspond to the
+    // original full-resolution image.
+    if (_params.aprilTagQuadDecimate > 1) {
+        for (int i = 0; i < _zarray_size(quads); i++) {
+            struct sQuad *q;
+            _zarray_get_volatile(quads, i, &q);
+            for (int j = 0; j < 4; j++) {
+                q->p[j][0] *= _params.aprilTagQuadDecimate;
+                q->p[j][1] *= _params.aprilTagQuadDecimate;
+            }
+        }
+    }
+
+#ifdef APRIL_DEBUG
+    Mat im_quads = im_orig.clone();
+    im_quads = im_quads*0.5;
+    srandom(0);
+
+    for (int i = 0; i < _zarray_size(quads); i++) {
+        struct sQuad *quad;
+        _zarray_get_volatile(quads, i, &quad);
+
+        const int bias = 100;
+        int color = bias + (random() % (255-bias));
+
+        line(im_quads, Point(quad->p[0][0], quad->p[0][1]), Point(quad->p[1][0], quad->p[1][1]), color, 1);
+        line(im_quads, Point(quad->p[1][0], quad->p[1][1]), Point(quad->p[2][0], quad->p[2][1]), color, 1);
+        line(im_quads, Point(quad->p[2][0], quad->p[2][1]), Point(quad->p[3][0], quad->p[3][1]), color, 1);
+        line(im_quads, Point(quad->p[3][0], quad->p[3][1]), Point(quad->p[0][0], quad->p[0][1]), color, 1);
+    }
+    imwrite("1.2 debug_quads_raw.pnm", im_quads);
+#endif
+
+    ////////////////////////////////////////////////////////////////
+    /// Step 3. Save the output :: candidate corners
+    for (int i = 0; i < _zarray_size(quads); i++) {
+        struct sQuad *quad;
+        _zarray_get_volatile(quads, i, &quad);
+
+        std::vector<Point2f> corners;
+        corners.push_back(Point2f(quad->p[3][0], quad->p[3][1]));   //pA
+        corners.push_back(Point2f(quad->p[0][0], quad->p[0][1]));   //pB
+        corners.push_back(Point2f(quad->p[1][0], quad->p[1][1]));   //pC
+        corners.push_back(Point2f(quad->p[2][0], quad->p[2][1]));   //pD
+
+        candidates.push_back(corners);
+    }
+
+    _zarray_destroy(quads);
+}
+
+}}
diff --git a/modules/objdetect/src/aruco/apriltag/apriltag_quad_thresh.hpp b/modules/objdetect/src/aruco/apriltag/apriltag_quad_thresh.hpp
new file mode 100644 (file)
index 0000000..bc1334a
--- /dev/null
@@ -0,0 +1,117 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+//
+// Copyright (C) 2013-2016, The Regents of The University of Michigan.
+//
+// This software was developed in the APRIL Robotics Lab under the
+// direction of Edwin Olson, ebolson@umich.edu. This software may be
+// available under alternative licensing terms; contact the address above.
+//
+// The views and conclusions contained in the software and documentation are those
+// of the authors and should not be interpreted as representing official policies,
+// either expressed or implied, of the Regents of The University of Michigan.
+
+// limitation: image size must be <32768 in width and height. This is
+// because we use a fixed-point 16 bit integer representation with one
+// fractional bit.
+
+#ifndef _OPENCV_APRIL_QUAD_THRESH_HPP_
+#define _OPENCV_APRIL_QUAD_THRESH_HPP_
+
+#include "unionfind.hpp"
+#include "zmaxheap.hpp"
+#include "zarray.hpp"
+
+namespace cv {
+namespace aruco {
+
+static inline uint32_t u64hash_2(uint64_t x) {
+    return uint32_t((2654435761UL * x) >> 32);
+}
+
+struct uint64_zarray_entry{
+    uint64_t id;
+    zarray_t *cluster;
+
+    struct uint64_zarray_entry *next;
+};
+
+struct pt{
+    // Note: these represent 2*actual value.
+    uint16_t x, y;
+    float theta;
+    int16_t gx, gy;
+};
+
+struct remove_vertex{
+    int i;           // which vertex to remove?
+    int left, right; // left vertex, right vertex
+
+    double err;
+};
+
+struct segment{
+    int is_vertex;
+
+    // always greater than zero, but right can be > size, which denotes
+    // a wrap around back to the beginning of the points. and left < right.
+    int left, right;
+};
+
+struct line_fit_pt{
+    double Mx, My;
+    double Mxx, Myy, Mxy;
+    double W; // total weight
+};
+
+/**
+ * lfps contains *cumulative* moments for N points, with
+ * index j reflecting points [0,j] (inclusive).
+ * fit a line to the points [i0, i1] (inclusive). i0, i1 are both (0, sz)
+ * if i1 < i0, we treat this as a wrap around.
+ */
+void fit_line(struct line_fit_pt *lfps, int sz, int i0, int i1, double *lineparm, double *err, double *mse);
+
+int err_compare_descending(const void *_a, const void *_b);
+
+/**
+  1. Identify A) white points near a black point and B) black points near a white point.
+
+  2. Find the connected components within each of the classes above,
+  yielding clusters of "white-near-black" and
+  "black-near-white". (These two classes are kept separate). Each
+  segment has a unique id.
+
+  3. For every pair of "white-near-black" and "black-near-white"
+  clusters, find the set of points that are in one and adjacent to the
+  other. In other words, a "boundary" layer between the two
+  clusters. (This is actually performed by iterating over the pixels,
+  rather than pairs of clusters.) Critically, this helps keep nearby
+  edges from becoming connected.
+ **/
+int quad_segment_maxima(const DetectorParameters &td, int sz, struct line_fit_pt *lfps, int indices[4]);
+
+/**
+ * returns 0 if the cluster looks bad.
+ */
+int quad_segment_agg(int sz, struct line_fit_pt *lfps, int indices[4]);
+
+/**
+ *  return 1 if the quad looks okay, 0 if it should be discarded
+ *  quad
+ **/
+int fit_quad(const DetectorParameters &_params, const Mat im, zarray_t *cluster, struct sQuad *quad);
+
+
+void threshold(const Mat mIm, const DetectorParameters &parameters, Mat& mThresh);
+
+
+zarray_t *apriltag_quad_thresh(const DetectorParameters &parameters, const Mat & mImg,
+                               std::vector<std::vector<Point> > &contours);
+
+void _apriltag(Mat im_orig, const DetectorParameters &_params, std::vector<std::vector<Point2f> > &candidates,
+               std::vector<std::vector<Point> > &contours);
+
+}}
+#endif
diff --git a/modules/objdetect/src/aruco/apriltag/predefined_dictionaries_apriltag.hpp b/modules/objdetect/src/aruco/apriltag/predefined_dictionaries_apriltag.hpp
new file mode 100644 (file)
index 0000000..cad9802
--- /dev/null
@@ -0,0 +1,14900 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+namespace {
+
+/**
+  * Dictionaries are stored as a list of bytes in its four rotations.
+  * On each rotation, the marker is divided in bytes assuming a row-major order.
+  * This format allows a faster marker identification.
+  * For a dictionary composed by M markers of NxN bits, the structure dimensions should be:
+  * const char name[nMarkers][4rotations][nBytes], or more specifically:
+  * const char name[M][4][ceil(NxN/8)]
+  * The element [i][j][k] represents the k-th byte of the i-th marker in the dictionary
+  * in its j-th rotation.
+  * Each rotation implies a 90 degree rotation of the marker in anticlockwise direction.
+  */
+static unsigned char DICT_APRILTAG_16h5_BYTES[][4][2] =
+{
+    { {216, 196},
+      {128, 190},
+      {35, 27},
+      {125, 1}
+    },
+    { {165, 116},
+      {106, 120},
+      {46, 165},
+      {30, 86}
+    },
+    { {86, 44},
+      {134, 209},
+      {52, 106},
+      {139, 97}
+    },
+    { {157, 162},
+      {195, 78},
+      {69, 185},
+      {114, 195}
+    },
+    { {101, 158},
+      {105, 211},
+      {121, 166},
+      {203, 150}
+    },
+    { {214, 254},
+      {167, 251},
+      {127, 107},
+      {223, 229}
+    },
+    { {26, 205},
+      {148, 55},
+      {179, 88},
+      {236, 41}
+    },
+    { {162, 231},
+      {31, 58},
+      {231, 69},
+      {92, 248}
+    },
+    { {154, 127},
+      {183, 61},
+      {254, 89},
+      {188, 237}
+    },
+    { {182, 168},
+      {142, 75},
+      {21, 109},
+      {210, 113}
+    },
+    { {208, 28},
+      {160, 153},
+      {56, 11},
+      {153, 5}
+    },
+    { {213, 15},
+      {209, 217},
+      {240, 171},
+      {155, 139}
+    },
+    { {33, 176},
+      {106, 2},
+      {13, 132},
+      {64, 86}
+    },
+    { {108, 226},
+      {11, 230},
+      {71, 54},
+      {103, 208}
+    },
+    { {78, 49},
+      {54, 196},
+      {140, 114},
+      {35, 108}
+    },
+    { {8, 245},
+      {50, 54},
+      {175, 16},
+      {108, 76}
+    },
+    { {60, 144},
+      {168, 70},
+      {9, 60},
+      {98, 21}
+    },
+    { {45, 201},
+      {88, 103},
+      {147, 180},
+      {230, 26}
+    },
+    { {192, 165},
+      {18, 154},
+      {165, 3},
+      {89, 72}
+    },
+    { {241, 98},
+      {203, 168},
+      {70, 143},
+      {21, 211}
+    },
+    { {236, 135},
+      {25, 222},
+      {225, 55},
+      {123, 152}
+    },
+    { {169, 234},
+      {75, 47},
+      {87, 149},
+      {244, 210}
+    },
+    { {66, 251},
+      {55, 163},
+      {223, 66},
+      {197, 236}
+    },
+    { {184, 56},
+      {170, 13},
+      {28, 29},
+      {176, 85}
+    },
+    { {59, 151},
+      {253, 22},
+      {233, 220},
+      {104, 191}
+    },
+    { {181, 206},
+      {201, 123},
+      {115, 173},
+      {222, 147}
+    },
+    { {250, 181},
+      {190, 158},
+      {173, 95},
+      {121, 125}
+    },
+    { {12, 171},
+      {19, 71},
+      {213, 48},
+      {226, 200}
+    },
+    { {83, 224},
+      {198, 162},
+      {7, 202},
+      {69, 99}
+    },
+    { {116, 245},
+      {186, 242},
+      {175, 46},
+      {79, 93}
+    }
+};
+
+
+
+static unsigned char DICT_APRILTAG_25h9_BYTES[][4][4] =
+{
+    { {143, 211, 170, 1},
+      {234, 146, 237, 1},
+      {170, 229, 248, 1},
+      {219, 164, 171, 1}
+    },
+    { {109, 139, 39, 1},
+      {170, 251, 21, 0},
+      {242, 104, 219, 0},
+      {84, 111, 170, 1}
+    },
+    { {22, 208, 222, 1},
+      {94, 6, 244, 1},
+      {189, 133, 180, 0},
+      {151, 176, 61, 0}
+    },
+    { {179, 147, 87, 1},
+      {62, 118, 217, 0},
+      {245, 100, 230, 1},
+      {77, 183, 62, 0}
+    },
+    { {115, 40, 116, 1},
+      {28, 189, 146, 0},
+      {151, 10, 103, 0},
+      {36, 222, 156, 0}
+    },
+    { {221, 18, 172, 0},
+      {164, 145, 124, 1},
+      {26, 164, 93, 1},
+      {159, 68, 146, 1}
+    },
+    { {103, 234, 238, 0},
+      {98, 191, 182, 1},
+      {59, 171, 243, 0},
+      {182, 254, 163, 0}
+    },
+    { {213, 186, 96, 1},
+      {46, 157, 78, 0},
+      {131, 46, 213, 1},
+      {57, 92, 186, 0}
+    },
+    { {231, 69, 93, 1},
+      {89, 117, 157, 1},
+      {221, 81, 115, 1},
+      {220, 215, 77, 0}
+    },
+    { {17, 101, 123, 0},
+      {85, 214, 3, 1},
+      {111, 83, 68, 0},
+      {224, 53, 213, 0}
+    },
+    { {228, 155, 129, 0},
+      {34, 105, 109, 0},
+      {64, 236, 147, 1},
+      {91, 75, 34, 0}
+    },
+    { {130, 77, 138, 0},
+      {65, 10, 169, 1},
+      {40, 217, 32, 1},
+      {202, 168, 65, 0}
+    },
+    { {117, 19, 219, 0},
+      {52, 119, 101, 1},
+      {109, 228, 87, 0},
+      {211, 119, 22, 0}
+    },
+    { {152, 112, 167, 1},
+      {204, 194, 122, 0},
+      {242, 135, 12, 1},
+      {47, 33, 153, 1}
+    },
+    { {75, 152, 26, 1},
+      {154, 27, 192, 1},
+      {172, 12, 233, 0},
+      {129, 236, 44, 1}
+    },
+    { {65, 65, 182, 1},
+      {88, 147, 49, 0},
+      {182, 193, 65, 0},
+      {70, 100, 141, 0}
+    },
+    { {172, 7, 198, 1},
+      {169, 38, 61, 0},
+      {177, 240, 26, 1},
+      {94, 50, 74, 1}
+    },
+    { {129, 217, 185, 0},
+      {82, 216, 105, 1},
+      {78, 205, 192, 1},
+      {203, 13, 165, 0}
+    },
+    { {35, 119, 206, 1},
+      {105, 54, 243, 1},
+      {185, 247, 98, 0},
+      {231, 182, 75, 0}
+    },
+    { {144, 92, 117, 0},
+      {85, 204, 88, 0},
+      {87, 29, 4, 1},
+      {13, 25, 213, 0}
+    },
+    { {138, 62, 250, 0},
+      {177, 142, 234, 1},
+      {47, 190, 40, 1},
+      {171, 184, 198, 1}
+    },
+    { {63, 236, 133, 1},
+      {207, 120, 182, 0},
+      {208, 155, 254, 0},
+      {54, 143, 121, 1}
+    },
+    { {70, 169, 59, 0},
+      {18, 203, 135, 1},
+      {110, 74, 177, 0},
+      {240, 233, 164, 0}
+    },
+    { {162, 116, 1, 1},
+      {73, 96, 202, 0},
+      {192, 23, 34, 1},
+      {41, 131, 73, 0}
+    },
+    { {52, 42, 195, 1},
+      {44, 110, 38, 0},
+      {225, 170, 22, 0},
+      {50, 59, 26, 0}
+    },
+    { {37, 240, 225, 0},
+      {66, 244, 102, 0},
+      {67, 135, 210, 0},
+      {51, 23, 161, 0}
+    },
+    { {144, 226, 137, 0},
+      {102, 64, 42, 1},
+      {72, 163, 132, 1},
+      {170, 1, 51, 0}
+    },
+    { {15, 33, 102, 1},
+      {136, 150, 151, 0},
+      {179, 66, 120, 0},
+      {116, 180, 136, 1}
+    },
+    { {165, 79, 19, 0},
+      {113, 122, 13, 0},
+      {100, 121, 82, 1},
+      {88, 47, 71, 0}
+    },
+    { {221, 124, 193, 0},
+      {197, 93, 110, 0},
+      {65, 159, 93, 1},
+      {59, 93, 81, 1}
+    },
+    { {254, 142, 154, 0},
+      {183, 43, 172, 1},
+      {44, 184, 191, 1},
+      {154, 234, 118, 1}
+    },
+    { {10, 11, 60, 1},
+      {184, 136, 145, 1},
+      {158, 104, 40, 0},
+      {196, 136, 142, 1}
+    },
+    { {139, 80, 95, 0},
+      {208, 86, 216, 1},
+      {125, 5, 104, 1},
+      {141, 181, 5, 1}
+    },
+    { {13, 198, 237, 1},
+      {235, 212, 52, 1},
+      {219, 177, 216, 0},
+      {150, 21, 235, 1}
+    },
+    { {115, 137, 157, 0},
+      {22, 121, 177, 1},
+      {92, 200, 231, 0},
+      {198, 207, 52, 0}
+    }
+};
+
+
+
+static unsigned char DICT_APRILTAG_36h10_BYTES[][4][5] =
+{
+    { {225, 101, 73, 83, 8},
+      {49, 6, 165, 238, 1},
+      {28, 169, 42, 104, 7},
+      {135, 122, 86, 8, 12}
+    },
+    { {50, 53, 132, 160, 4},
+      {65, 139, 98, 33, 2},
+      {32, 82, 26, 196, 12},
+      {72, 68, 109, 24, 2}
+    },
+    { {107, 237, 252, 94, 4},
+      {43, 167, 244, 249, 13},
+      {39, 163, 251, 125, 6},
+      {185, 242, 254, 93, 4}
+    },
+    { {217, 189, 115, 45, 4},
+      {123, 106, 82, 246, 12},
+      {43, 76, 235, 217, 11},
+      {54, 244, 165, 109, 14}
+    },
+    { {87, 115, 222, 38, 12},
+      {233, 207, 79, 209, 1},
+      {54, 71, 188, 238, 10},
+      {136, 191, 47, 57, 7}
+    },
+    { {245, 43, 80, 249, 12},
+      {161, 42, 235, 222, 10},
+      {57, 240, 173, 74, 15},
+      {87, 189, 117, 72, 5}
+    },
+    { {46, 91, 153, 155, 12},
+      {210, 166, 237, 21, 11},
+      {61, 153, 157, 167, 4},
+      {218, 139, 118, 84, 11}
+    },
+    { {127, 167, 237, 114, 2},
+      {179, 155, 190, 233, 5},
+      {68, 235, 126, 95, 14},
+      {169, 119, 221, 156, 13}
+    },
+    { {72, 191, 207, 28, 10},
+      {123, 243, 157, 160, 8},
+      {83, 143, 63, 209, 2},
+      {16, 91, 156, 253, 14}
+    },
+    { {235, 64, 193, 206, 10},
+      {58, 180, 33, 203, 3},
+      {87, 56, 48, 45, 7},
+      {205, 56, 66, 213, 12}
+    },
+    { {215, 152, 253, 186, 6},
+      {240, 185, 214, 211, 15},
+      {101, 219, 241, 158, 11},
+      {252, 182, 185, 208, 15}
+    },
+    { {92, 212, 54, 176, 14},
+      {194, 93, 211, 176, 6},
+      {112, 214, 194, 179, 10},
+      {96, 220, 187, 164, 3}
+    },
+    { {114, 66, 21, 239, 14},
+      {24, 61, 107, 157, 3},
+      {127, 122, 132, 36, 14},
+      {203, 157, 107, 193, 8}
+    },
+    { {200, 18, 236, 76, 1},
+      {110, 161, 12, 138, 4},
+      {131, 35, 116, 129, 3},
+      {37, 19, 8, 87, 6}
+    },
+    { {27, 178, 99, 54, 1},
+      {127, 72, 154, 65, 5},
+      {134, 204, 100, 221, 8},
+      {168, 37, 145, 47, 14}
+    },
+    { {185, 202, 170, 229, 1},
+      {14, 204, 62, 78, 14},
+      {138, 117, 85, 57, 13},
+      {119, 39, 195, 55, 0}
+    },
+    { {55, 38, 64, 234, 9},
+      {165, 40, 43, 105, 3},
+      {149, 112, 38, 78, 12},
+      {201, 109, 65, 74, 5}
+    },
+    { {141, 86, 137, 137, 9},
+      {214, 164, 13, 102, 2},
+      {153, 25, 22, 171, 1},
+      {70, 107, 2, 86, 11}
+    },
+    { {220, 110, 245, 96, 5},
+      {183, 141, 74, 186, 12},
+      {160, 106, 247, 99, 11},
+      {53, 213, 43, 30, 13}
+    },
+    { {81, 225, 58, 109, 5},
+      {13, 110, 86, 220, 4},
+      {171, 101, 200, 120, 10},
+      {35, 182, 167, 107, 0}
+    },
+    { {40, 201, 94, 212, 13},
+      {46, 71, 245, 24, 10},
+      {178, 183, 169, 49, 4},
+      {81, 138, 254, 39, 4}
+    },
+    { {155, 25, 144, 102, 13},
+      {78, 138, 67, 91, 9},
+      {182, 96, 153, 141, 9},
+      {157, 172, 37, 23, 2}
+    },
+    { {198, 37, 228, 219, 13},
+      {165, 163, 193, 175, 7},
+      {189, 178, 122, 70, 3},
+      {239, 88, 60, 90, 5}
+    },
+    { {238, 221, 198, 163, 3},
+      {230, 215, 50, 167, 11},
+      {204, 86, 59, 183, 7},
+      {222, 84, 206, 182, 7}
+    },
+    { {168, 123, 189, 36, 7},
+      {95, 151, 110, 18, 12},
+      {226, 75, 221, 225, 5},
+      {52, 135, 110, 159, 10}
+    },
+    { {38, 247, 86, 43, 7},
+      {229, 119, 122, 53, 1},
+      {237, 70, 174, 246, 4},
+      {138, 197, 238, 234, 7}
+    },
+    { {119, 95, 17, 146, 15},
+      {212, 30, 233, 241, 11},
+      {244, 152, 143, 174, 14},
+      {216, 249, 119, 130, 11}
+    },
+    { {227, 232, 42, 118, 0},
+      {9, 68, 182, 203, 13},
+      {6, 229, 65, 124, 7},
+      {189, 54, 210, 41, 0}
+    },
+    { {219, 116, 9, 26, 8},
+      {83, 44, 133, 227, 1},
+      {21, 137, 2, 237, 11},
+      {140, 122, 19, 76, 10}
+    },
+    { {166, 92, 117, 179, 8},
+      {240, 5, 163, 55, 15},
+      {28, 218, 227, 166, 5},
+      {254, 204, 90, 0, 15}
+    },
+    { {247, 162, 51, 66, 4},
+      {145, 72, 120, 219, 5},
+      {36, 44, 196, 94, 15},
+      {173, 177, 225, 40, 9}
+    },
+    { {45, 210, 218, 190, 4},
+      {234, 228, 254, 80, 3},
+      {39, 213, 180, 187, 4},
+      {192, 167, 242, 117, 7}
+    },
+    { {158, 138, 87, 237, 4},
+      {186, 105, 90, 31, 10},
+      {43, 126, 165, 23, 9},
+      {95, 133, 169, 101, 13}
+    },
+    { {192, 186, 16, 180, 12},
+      {73, 0, 219, 146, 10},
+      {50, 208, 133, 208, 3},
+      {84, 157, 176, 9, 2}
+    },
+    { {19, 70, 233, 230, 12},
+      {56, 140, 79, 105, 7},
+      {54, 121, 118, 44, 8},
+      {233, 111, 35, 17, 12}
+    },
+    { {177, 22, 100, 69, 12},
+      {104, 9, 105, 110, 4},
+      {58, 34, 102, 136, 13},
+      {39, 105, 105, 1, 6}
+    },
+    { {74, 118, 173, 59, 12},
+      {83, 165, 207, 165, 5},
+      {61, 203, 86, 229, 2},
+      {170, 95, 58, 92, 10}
+    },
+    { {133, 254, 70, 49, 2},
+      {225, 85, 154, 102, 8},
+      {72, 198, 39, 250, 1},
+      {22, 101, 154, 168, 7}
+    },
+    { {173, 105, 121, 110, 10},
+      {187, 54, 39, 90, 13},
+      {87, 105, 233, 107, 5},
+      {181, 174, 70, 205, 13}
+    },
+    { {32, 21, 210, 100, 6},
+      {104, 210, 98, 56, 0},
+      {98, 100, 186, 128, 4},
+      {1, 196, 100, 177, 6}
+    },
+    { {147, 181, 91, 6, 6},
+      {121, 90, 84, 115, 1},
+      {102, 13, 170, 220, 9},
+      {140, 226, 165, 169, 14}
+    },
+    { {202, 157, 31, 171, 6},
+      {82, 115, 86, 183, 11},
+      {109, 95, 139, 149, 3},
+      {222, 214, 172, 228, 10}
+    },
+    { {187, 35, 104, 210, 14},
+      {35, 26, 237, 75, 7},
+      {116, 177, 108, 77, 13},
+      {237, 43, 117, 140, 4}
+    },
+    { {52, 107, 195, 95, 14},
+      {185, 254, 233, 12, 9},
+      {127, 172, 61, 98, 12},
+      {147, 9, 119, 249, 13}
+    },
+    { {160, 207, 113, 248, 9},
+      {52, 38, 187, 58, 14},
+      {145, 248, 239, 48, 5},
+      {117, 205, 214, 66, 12}
+    },
+    { {83, 31, 184, 90, 9},
+      {68, 170, 141, 249, 13},
+      {149, 161, 223, 140, 10},
+      {185, 251, 21, 82, 2}
+    },
+    { {241, 127, 53, 41, 9},
+      {85, 47, 43, 246, 12},
+      {153, 74, 207, 232, 15},
+      {54, 253, 79, 74, 10}
+    },
+    { {152, 80, 211, 144, 5},
+      {118, 204, 192, 18, 2},
+      {160, 156, 176, 161, 9},
+      {68, 128, 51, 54, 14}
+    },
+    { {123, 240, 90, 34, 5},
+      {103, 76, 118, 209, 1},
+      {164, 69, 160, 253, 14},
+      {136, 182, 227, 46, 6}
+    },
+    { {197, 168, 151, 126, 5},
+      {157, 225, 210, 218, 9},
+      {167, 238, 145, 90, 3},
+      {149, 180, 184, 123, 9}
+    },
+    { {22, 216, 30, 157, 5},
+      {204, 109, 212, 21, 10},
+      {171, 151, 129, 182, 8},
+      {90, 130, 187, 99, 3}
+    },
+    { {180, 132, 224, 47, 5},
+      {172, 168, 114, 38, 5},
+      {175, 64, 114, 18, 13},
+      {166, 68, 225, 83, 5}
+    },
+    { {237, 52, 164, 150, 13},
+      {207, 129, 225, 226, 7},
+      {182, 146, 82, 203, 7},
+      {228, 120, 120, 31, 3}
+    },
+    { {9, 146, 15, 177, 3},
+      {86, 81, 158, 68, 2},
+      {200, 223, 4, 153, 0},
+      {66, 39, 152, 166, 10}
+    },
+    { {251, 90, 185, 188, 11},
+      {94, 188, 175, 211, 14},
+      {211, 217, 213, 173, 15},
+      {124, 191, 83, 215, 10}
+    },
+    { {37, 6, 52, 30, 11},
+      {140, 49, 169, 112, 5},
+      {215, 130, 198, 10, 4},
+      {160, 233, 88, 195, 1}
+    },
+    { {224, 145, 168, 72, 15},
+      {68, 178, 117, 138, 4},
+      {241, 33, 88, 144, 7},
+      {37, 26, 228, 210, 2}
+    },
+    { {194, 115, 147, 11, 8},
+      {81, 230, 9, 151, 1},
+      {29, 12, 156, 228, 3},
+      {142, 153, 6, 120, 10}
+    },
+    { {16, 43, 26, 208, 4},
+      {1, 74, 204, 24, 10},
+      {32, 181, 141, 64, 8},
+      {81, 131, 53, 40, 0}
+    },
+    { {56, 215, 41, 175, 4},
+      {90, 46, 126, 36, 7},
+      {47, 89, 78, 177, 12},
+      {226, 71, 231, 69, 10}
+    },
+    { {214, 63, 130, 165, 12},
+      {201, 202, 75, 167, 10},
+      {58, 84, 31, 198, 11},
+      {94, 93, 37, 57, 3}
+    },
+    { {93, 176, 247, 42, 2},
+      {243, 249, 18, 208, 5},
+      {69, 78, 240, 219, 10},
+      {160, 180, 137, 252, 15}
+    },
+    { {115, 36, 212, 252, 10},
+      {41, 185, 163, 249, 2},
+      {83, 242, 178, 76, 14},
+      {73, 252, 89, 217, 4}
+    },
+    { {71, 220, 230, 148, 6},
+      {232, 213, 208, 225, 14},
+      {98, 150, 115, 190, 2},
+      {120, 112, 186, 177, 7}
+    },
+    { {221, 26, 76, 114, 14},
+      {226, 25, 207, 202, 9},
+      {116, 227, 37, 139, 11},
+      {149, 63, 57, 132, 7}
+    },
+    { {154, 222, 49, 181, 1},
+      {94, 12, 154, 55, 14},
+      {138, 216, 199, 181, 9},
+      {126, 197, 147, 7, 10}
+    },
+    { {76, 25, 234, 75, 9},
+      {230, 226, 5, 140, 13},
+      {157, 37, 121, 131, 2},
+      {179, 26, 4, 118, 7}
+    },
+    { {129, 149, 32, 65, 5},
+      {68, 2, 80, 110, 4},
+      {168, 32, 74, 152, 1},
+      {39, 96, 164, 2, 2}
+    },
+    { {208, 173, 68, 239, 5},
+      {45, 43, 82, 174, 11},
+      {175, 114, 43, 80, 11},
+      {215, 84, 173, 75, 4}
+    },
+    { {169, 3, 2, 54, 13},
+      {14, 66, 235, 66, 1},
+      {182, 196, 12, 9, 5},
+      {132, 45, 116, 39, 0}
+    },
+    { {90, 99, 243, 101, 13},
+      {63, 206, 75, 157, 4},
+      {186, 108, 252, 101, 10},
+      {43, 157, 39, 63, 12}
+    },
+    { {167, 56, 140, 168, 15},
+      {197, 177, 103, 67, 10},
+      {241, 83, 17, 206, 5},
+      {92, 46, 104, 218, 3}
+    },
+    { {193, 252, 209, 46, 0},
+      {121, 164, 18, 242, 9},
+      {7, 72, 179, 248, 3},
+      {148, 244, 130, 89, 14}
+    },
+    { {18, 162, 88, 245, 0},
+      {41, 8, 158, 29, 2},
+      {10, 241, 164, 84, 8},
+      {75, 135, 145, 9, 4}
+    },
+    { {176, 210, 149, 151, 0},
+      {88, 141, 184, 22, 3},
+      {14, 154, 148, 176, 13},
+      {198, 129, 219, 17, 10}
+    },
+    { {172, 158, 132, 125, 4},
+      {202, 161, 250, 46, 8},
+      {43, 226, 23, 147, 5},
+      {23, 69, 248, 85, 3}
+    },
+    { {112, 105, 55, 71, 12},
+      {25, 79, 97, 156, 13},
+      {62, 46, 201, 96, 14},
+      {179, 152, 111, 41, 8}
+    },
+    { {68, 181, 20, 179, 2},
+      {193, 19, 146, 180, 3},
+      {76, 210, 138, 210, 2},
+      {194, 212, 156, 136, 3}
+    },
+    { {231, 77, 237, 224, 10},
+      {176, 151, 39, 235, 14},
+      {80, 123, 123, 46, 7},
+      {125, 126, 78, 144, 13}
+    },
+    { {53, 29, 98, 66, 10},
+      {224, 90, 33, 104, 13},
+      {84, 36, 107, 138, 12},
+      {177, 104, 69, 160, 7}
+    },
+    { {142, 125, 171, 62, 10},
+      {219, 246, 135, 35, 13},
+      {87, 205, 91, 231, 1},
+      {188, 78, 22, 253, 11}
+    },
+    { {82, 219, 5, 133, 6},
+      {88, 31, 88, 133, 10},
+      {106, 26, 13, 180, 10},
+      {90, 17, 175, 129, 10}
+    },
+    { {240, 135, 244, 59, 6},
+      {32, 187, 250, 182, 5},
+      {109, 194, 254, 16, 15},
+      {166, 213, 253, 208, 4}
+    },
+    { {78, 144, 152, 110, 1},
+      {206, 160, 22, 153, 1},
+      {135, 97, 144, 151, 2},
+      {137, 150, 128, 87, 3}
+    },
+    { {210, 100, 39, 89, 9},
+      {21, 109, 129, 175, 4},
+      {153, 174, 66, 100, 11},
+      {47, 88, 27, 106, 8}
+    },
+    { {36, 194, 245, 253, 5},
+      {188, 165, 250, 28, 6},
+      {171, 250, 244, 50, 4},
+      {99, 133, 250, 83, 13}
+    },
+    { {50, 142, 228, 41, 3},
+      {36, 185, 58, 37, 12},
+      {201, 66, 119, 20, 12},
+      {58, 69, 201, 210, 4}
+    },
+    { {107, 62, 162, 144, 11},
+      {71, 208, 169, 225, 14},
+      {208, 148, 87, 205, 6},
+      {120, 121, 80, 190, 2}
+    },
+    { {217, 65, 43, 194, 11},
+      {22, 94, 5, 202, 7},
+      {212, 61, 72, 41, 11},
+      {229, 58, 7, 166, 8}
+    },
+    { {156, 165, 116, 197, 7},
+      {175, 27, 80, 62, 6},
+      {234, 50, 234, 83, 9},
+      {103, 192, 173, 143, 5}
+    },
+    { {17, 109, 219, 74, 15},
+      {53, 254, 69, 120, 9},
+      {245, 45, 187, 104, 8},
+      {145, 234, 39, 250, 12}
+    },
+    { {174, 87, 71, 134, 8},
+      {250, 71, 41, 35, 3},
+      {22, 30, 46, 167, 5},
+      {204, 73, 78, 37, 15}
+    },
+    { {114, 224, 117, 97, 4},
+      {49, 13, 114, 157, 4},
+      {40, 106, 224, 116, 14},
+      {43, 148, 235, 8, 12}
+    },
+    { {198, 150, 180, 86, 6},
+      {200, 145, 216, 187, 5},
+      {102, 162, 214, 150, 3},
+      {173, 209, 184, 145, 3}
+    },
+    { {168, 197, 195, 205, 1},
+      {62, 230, 48, 46, 2},
+      {139, 60, 58, 49, 5},
+      {71, 64, 198, 119, 12}
+    },
+    { {91, 21, 74, 119, 1},
+      {110, 74, 134, 237, 1},
+      {142, 229, 42, 141, 10},
+      {139, 118, 21, 39, 6}
+    },
+    { {205, 163, 184, 200, 5},
+      {135, 162, 92, 218, 6},
+      {161, 49, 220, 91, 3},
+      {101, 179, 164, 94, 1}
+    },
+    { {74, 204, 221, 214, 7},
+      {62, 149, 212, 185, 11},
+      {230, 187, 179, 53, 2},
+      {217, 210, 186, 151, 12}
+    },
+    { {102, 82, 239, 170, 15},
+      {244, 245, 111, 129, 7},
+      {245, 95, 116, 166, 6},
+      {232, 31, 106, 242, 15}
+    },
+    { {173, 218, 37, 160, 0},
+      {210, 5, 58, 66, 14},
+      {0, 90, 69, 187, 5},
+      {116, 37, 202, 4, 11}
+    },
+    { {252, 230, 67, 94, 0},
+      {187, 108, 184, 170, 1},
+      {7, 172, 38, 115, 15},
+      {133, 81, 211, 109, 13}
+    },
+    { {187, 145, 56, 91, 8},
+      {66, 42, 181, 95, 5},
+      {29, 161, 200, 157, 13},
+      {175, 170, 213, 68, 2}
+    },
+    { {52, 217, 147, 145, 4},
+      {208, 206, 240, 20, 10},
+      {40, 156, 153, 178, 12},
+      {82, 128, 247, 48, 11}
+    },
+    { {160, 29, 41, 117, 12},
+      {88, 2, 231, 46, 12},
+      {58, 233, 75, 128, 5},
+      {55, 78, 116, 1, 10}
+    },
+    { {197, 91, 119, 176, 10},
+      {240, 87, 139, 210, 14},
+      {80, 222, 237, 170, 3},
+      {116, 189, 30, 160, 15}
+    },
+    { {180, 103, 48, 193, 10},
+      {129, 30, 41, 62, 6},
+      {88, 48, 206, 98, 13},
+      {103, 201, 71, 136, 1}
+    },
+    { {79, 215, 217, 189, 10},
+      {250, 182, 159, 245, 2},
+      {91, 217, 190, 191, 2},
+      {74, 255, 150, 213, 15}
+    },
+    { {62, 239, 157, 76, 6},
+      {155, 191, 124, 57, 8},
+      {99, 43, 159, 119, 12},
+      {25, 195, 239, 221, 9}
+    },
+    { {211, 16, 230, 71, 6},
+      {104, 217, 64, 207, 5},
+      {110, 38, 112, 140, 11},
+      {175, 48, 41, 177, 6}
+    },
+    { {150, 212, 131, 130, 1},
+      {212, 204, 16, 35, 3},
+      {132, 28, 18, 182, 9},
+      {204, 64, 131, 50, 11}
+    },
+    { {190, 66, 191, 212, 9},
+      {158, 205, 173, 27, 6},
+      {146, 191, 212, 39, 13},
+      {109, 139, 91, 55, 9}
+    },
+    { {66, 18, 49, 102, 9},
+      {92, 0, 11, 153, 5},
+      {150, 104, 196, 132, 2},
+      {169, 157, 0, 3, 10}
+    },
+    { {51, 202, 85, 219, 9},
+      {52, 45, 185, 93, 11},
+      {157, 186, 165, 60, 12},
+      {219, 169, 219, 66, 12}
+    },
+    { {165, 14, 174, 0, 13},
+      {132, 193, 109, 98, 12},
+      {176, 7, 87, 10, 5},
+      {52, 107, 104, 50, 1}
+    },
+    { {86, 110, 32, 220, 13},
+      {141, 44, 201, 169, 14},
+      {179, 176, 71, 102, 10},
+      {121, 89, 51, 75, 1}
+    },
+    { {126, 177, 2, 164, 3},
+      {207, 90, 50, 129, 2},
+      {194, 84, 8, 215, 14},
+      {72, 20, 197, 175, 3}
+    },
+    { {175, 51, 166, 149, 7},
+      {207, 211, 232, 71, 6},
+      {234, 150, 92, 207, 5},
+      {110, 33, 124, 191, 3}
+    },
+    { {144, 39, 133, 201, 15},
+      {21, 187, 73, 46, 2},
+      {249, 58, 30, 64, 9},
+      {71, 73, 45, 218, 8}
+    },
+    { {26, 175, 114, 194, 0},
+      {35, 74, 24, 57, 15},
+      {4, 52, 239, 85, 8},
+      {249, 193, 133, 44, 4}
+    },
+    { {140, 72, 88, 22, 8},
+      {170, 4, 133, 18, 9},
+      {22, 129, 161, 35, 1},
+      {148, 138, 18, 5, 5}
+    },
+    { {221, 184, 28, 187, 8},
+      {195, 41, 151, 214, 11},
+      {29, 211, 129, 219, 11},
+      {214, 190, 153, 76, 3}
+    },
+    { {41, 92, 192, 64, 12},
+      {98, 132, 97, 104, 8},
+      {48, 32, 51, 169, 4},
+      {17, 104, 98, 20, 6}
+    },
+    { {204, 21, 5, 90, 14},
+      {210, 51, 193, 170, 1},
+      {117, 170, 10, 131, 3},
+      {133, 88, 60, 196, 11}
+    },
+    { {218, 107, 24, 244, 9},
+      {15, 14, 143, 155, 10},
+      {146, 241, 141, 101, 11},
+      {93, 159, 23, 15, 0}
+    },
+    { {167, 135, 108, 37, 9},
+      {172, 3, 63, 103, 4},
+      {154, 67, 110, 30, 5},
+      {46, 111, 204, 3, 5}
+    },
+    { {246, 183, 42, 152, 5},
+      {197, 106, 252, 163, 6},
+      {161, 149, 78, 214, 15},
+      {108, 83, 245, 106, 3}
+    },
+    { {176, 8, 245, 30, 13},
+      {60, 169, 225, 18, 13},
+      {183, 138, 241, 0, 13},
+      {180, 136, 121, 83, 12}
+    },
+    { {75, 168, 124, 205, 13},
+      {47, 33, 85, 221, 14},
+      {187, 51, 225, 93, 2},
+      {123, 186, 168, 79, 4}
+    },
+    { {132, 228, 215, 70, 3},
+      {189, 213, 16, 58, 1},
+      {198, 46, 178, 114, 1},
+      {133, 192, 138, 187, 13}
+    },
+    { {108, 145, 86, 98, 0},
+      {226, 67, 50, 152, 1},
+      {4, 102, 168, 147, 6},
+      {129, 148, 204, 36, 7}
+    },
+    { {161, 89, 232, 111, 0},
+      {104, 166, 38, 78, 13},
+      {15, 97, 121, 168, 5},
+      {183, 38, 70, 81, 6}
+    },
+    { {240, 101, 172, 214, 8},
+      {9, 143, 165, 170, 7},
+      {22, 179, 90, 96, 15},
+      {229, 90, 95, 25, 0}
+    },
+    { {151, 176, 34, 145, 10},
+      {193, 88, 145, 71, 6},
+      {88, 148, 64, 222, 9},
+      {110, 40, 145, 168, 3}
+    },
+    { {191, 36, 1, 206, 6},
+      {155, 56, 96, 107, 3},
+      {103, 56, 2, 79, 13},
+      {205, 96, 97, 205, 9}
+    },
+    { {164, 202, 31, 226, 1},
+      {148, 69, 62, 26, 11},
+      {132, 127, 133, 50, 5},
+      {213, 135, 202, 34, 9}
+    },
+    { {17, 222, 135, 135, 9},
+      {92, 205, 25, 100, 11},
+      {158, 30, 23, 184, 8},
+      {210, 105, 139, 51, 10}
+    },
+    { {57, 73, 184, 51, 5},
+      {6, 142, 230, 84, 13},
+      {172, 193, 217, 41, 12},
+      {178, 166, 119, 22, 0}
+    },
+    { {134, 25, 53, 96, 13},
+      {212, 3, 67, 27, 12},
+      {176, 106, 201, 134, 1},
+      {61, 140, 44, 2, 11}
+    },
+    { {200, 75, 66, 10, 11},
+      {38, 118, 9, 130, 9},
+      {213, 4, 45, 33, 3},
+      {148, 25, 6, 230, 4}
+    },
+    { {81, 136, 22, 43, 15},
+      {4, 121, 83, 212, 9},
+      {253, 70, 129, 24, 10},
+      {146, 188, 169, 226, 0}
+    },
+    { {198, 116, 204, 159, 0},
+      {233, 165, 132, 167, 3},
+      {15, 147, 50, 230, 3},
+      {206, 82, 26, 89, 7}
+    },
+    { {168, 22, 147, 66, 12},
+      {82, 192, 105, 58, 1},
+      {52, 44, 150, 129, 5},
+      {133, 201, 96, 52, 10}
+    },
+    { {91, 182, 26, 190, 12},
+      {75, 104, 223, 241, 3},
+      {55, 213, 134, 221, 10},
+      {200, 255, 177, 109, 2}
+    },
+    { {64, 57, 11, 138, 10},
+      {81, 114, 5, 128, 11},
+      {85, 29, 9, 192, 2},
+      {208, 26, 4, 232, 10}
+    },
+    { {49, 229, 119, 99, 10},
+      {49, 95, 51, 124, 5},
+      {92, 110, 234, 120, 12},
+      {163, 236, 207, 168, 12}
+    },
+    { {138, 181, 190, 128, 6},
+      {67, 211, 84, 51, 6},
+      {96, 23, 218, 213, 1},
+      {108, 194, 172, 188, 2}
+    },
+    { {232, 127, 242, 172, 9},
+      {111, 230, 43, 178, 14},
+      {147, 84, 255, 225, 7},
+      {116, 221, 70, 127, 6}
+    },
+    { {133, 144, 118, 85, 9},
+      {236, 65, 145, 94, 4},
+      {154, 166, 224, 154, 1},
+      {39, 168, 152, 35, 7}
+    },
+    { {173, 4, 85, 41, 5},
+      {182, 33, 98, 118, 0},
+      {169, 74, 162, 11, 5},
+      {6, 228, 104, 70, 13}
+    },
+    { {94, 100, 156, 243, 5},
+      {135, 141, 198, 189, 3},
+      {172, 243, 146, 103, 10},
+      {203, 214, 59, 30, 1}
+    },
+    { {113, 188, 174, 157, 13},
+      {77, 233, 245, 228, 14},
+      {187, 151, 83, 216, 14},
+      {114, 122, 249, 123, 2}
+    },
+    { {202, 194, 32, 47, 13},
+      {14, 36, 91, 135, 5},
+      {191, 64, 68, 53, 3},
+      {174, 29, 162, 71, 0}
+    },
+    { {237, 109, 12, 225, 0},
+      {131, 7, 38, 238, 10},
+      {8, 115, 11, 107, 7},
+      {87, 118, 78, 12, 1}
+    },
+    { {211, 179, 54, 142, 8},
+      {73, 107, 25, 211, 7},
+      {23, 22, 204, 220, 11},
+      {236, 185, 141, 105, 2}
+    },
+    { {88, 251, 152, 132, 4},
+      {75, 142, 92, 144, 10},
+      {34, 17, 157, 241, 10},
+      {80, 147, 167, 29, 2}
+    },
+    { {66, 176, 73, 175, 12},
+      {121, 32, 87, 133, 3},
+      {63, 89, 32, 212, 2},
+      {202, 30, 160, 73, 14}
+    },
+    { {165, 172, 222, 241, 10},
+      {161, 209, 183, 126, 10},
+      {88, 247, 179, 90, 5},
+      {87, 238, 216, 184, 5}
+    },
+    { {126, 74, 98, 45, 6},
+      {170, 124, 106, 133, 12},
+      {107, 68, 101, 39, 14},
+      {58, 21, 99, 229, 5}
+    },
+    { {93, 233, 95, 78, 9},
+      {191, 111, 21, 216, 9},
+      {151, 47, 169, 123, 10},
+      {145, 186, 143, 111, 13}
+    },
+    { {34, 197, 24, 23, 9},
+      {12, 6, 181, 53, 1},
+      {158, 129, 138, 52, 4},
+      {138, 202, 214, 3, 0}
+    },
+    { {115, 117, 108, 186, 5},
+      {101, 47, 230, 225, 7},
+      {165, 211, 106, 236, 14},
+      {232, 118, 127, 74, 6}
+    },
+    { {80, 47, 87, 216, 11},
+      {53, 123, 137, 184, 10},
+      {209, 190, 175, 64, 10},
+      {81, 217, 29, 234, 12}
+    },
+    { {154, 160, 25, 211, 11},
+      {23, 24, 149, 31, 3},
+      {220, 185, 128, 85, 9},
+      {207, 138, 145, 142, 8}
+    },
+    { {61, 180, 129, 166, 15},
+      {223, 152, 115, 96, 3},
+      {246, 88, 18, 219, 12},
+      {192, 108, 225, 159, 11}
+    },
+    { {39, 218, 159, 156, 8},
+      {216, 229, 189, 81, 10},
+      {19, 159, 149, 190, 4},
+      {88, 171, 218, 113, 11}
+    },
+    { {58, 103, 134, 237, 6},
+      {11, 255, 106, 45, 2},
+      {107, 118, 30, 101, 12},
+      {75, 69, 111, 253, 0}
+    },
+    { {132, 55, 15, 143, 6},
+      {217, 115, 76, 38, 3},
+      {111, 31, 14, 194, 1},
+      {198, 67, 44, 233, 11}
+    },
+    { {53, 66, 74, 6, 5},
+      {172, 76, 108, 64, 1},
+      {166, 5, 36, 42, 12},
+      {128, 35, 99, 35, 5}
+    },
+    { {131, 37, 139, 194, 7},
+      {21, 210, 68, 107, 3},
+      {228, 61, 26, 76, 1},
+      {205, 98, 36, 186, 8}
+    },
+    { {6, 72, 246, 57, 4},
+      {160, 229, 194, 21, 12},
+      {41, 198, 241, 38, 0},
+      {58, 132, 58, 112, 5}
+    },
+    { {46, 148, 213, 97, 12},
+      {242, 129, 115, 61, 0},
+      {56, 106, 178, 151, 4},
+      {11, 204, 232, 20, 15}
+    },
+    { {72, 50, 160, 103, 2},
+      {75, 144, 10, 140, 5},
+      {78, 96, 84, 193, 2},
+      {163, 21, 0, 157, 2}
+    },
+    { {228, 117, 33, 147, 1},
+      {213, 6, 160, 166, 7},
+      {140, 152, 74, 226, 7},
+      {230, 80, 86, 10, 11}
+    },
+    { {110, 253, 140, 158, 9},
+      {207, 167, 181, 161, 11},
+      {151, 147, 27, 247, 6},
+      {216, 90, 222, 95, 3}
+    },
+    { {0, 211, 242, 119, 9},
+      {108, 198, 155, 28, 5},
+      {158, 228, 252, 176, 0},
+      {163, 141, 150, 51, 6}
+    },
+    { {99, 216, 68, 68, 11},
+      {108, 21, 49, 201, 8},
+      {210, 34, 33, 188, 6},
+      {25, 56, 202, 131, 6}
+    },
+    { {249, 28, 183, 98, 7},
+      {86, 217, 98, 250, 13},
+      {228, 110, 211, 137, 15},
+      {181, 244, 105, 182, 10}
+    },
+    { {148, 34, 208, 61, 7},
+      {173, 184, 202, 22, 0},
+      {235, 192, 180, 66, 9},
+      {6, 133, 49, 219, 5}
+    },
+    { {187, 200, 20, 31, 6},
+      {10, 61, 240, 87, 9},
+      {111, 130, 129, 61, 13},
+      {158, 160, 251, 197, 0}
+    },
+    { {69, 152, 237, 76, 14},
+      {248, 177, 85, 200, 12},
+      {115, 43, 113, 154, 2},
+      {49, 58, 168, 209, 15}
+    },
+    { {83, 226, 244, 224, 9},
+      {37, 141, 27, 217, 6},
+      {144, 114, 244, 124, 10},
+      {105, 189, 139, 26, 4}
+    },
+    { {241, 178, 125, 130, 9},
+      {117, 9, 61, 210, 7},
+      {148, 27, 228, 216, 15},
+      {228, 187, 201, 10, 14}
+    },
+    { {42, 202, 178, 62, 9},
+      {14, 228, 187, 17, 13},
+      {151, 196, 213, 53, 4},
+      {184, 141, 210, 119, 0}
+    },
+    { {123, 122, 214, 143, 9},
+      {111, 237, 41, 213, 11},
+      {159, 22, 181, 237, 14},
+      {218, 185, 75, 127, 6}
+    },
+    { {130, 225, 42, 209, 13},
+      {5, 70, 213, 15, 6},
+      {184, 181, 72, 116, 1},
+      {111, 10, 182, 42, 0}
+    },
+    { {37, 245, 188, 164, 11},
+      {205, 151, 55, 112, 6},
+      {210, 83, 218, 250, 4},
+      {96, 238, 206, 155, 3}
+    },
+    { {150, 173, 51, 250, 11},
+      {149, 122, 147, 59, 15},
+      {213, 252, 203, 86, 9},
+      {253, 204, 149, 234, 9}
+    },
+    { {116, 221, 218, 89, 11},
+      {228, 254, 181, 188, 8},
+      {217, 165, 187, 178, 14},
+      {19, 218, 215, 242, 7}
+    },
+    { {190, 51, 16, 82, 7},
+      {199, 26, 232, 27, 1},
+      {228, 160, 140, 199, 13},
+      {141, 129, 117, 142, 3}
+    },
+    { {175, 106, 142, 227, 12},
+      {131, 197, 111, 79, 11},
+      {60, 119, 21, 111, 5},
+      {223, 47, 106, 60, 1}
+    },
+    { {80, 157, 15, 85, 14},
+      {88, 91, 213, 172, 8},
+      {122, 175, 11, 144, 10},
+      {19, 90, 189, 161, 10}
+    },
+    { {90, 168, 135, 202, 13},
+      {23, 233, 81, 137, 11},
+      {181, 62, 17, 85, 10},
+      {217, 24, 169, 126, 8}
+    },
+    { {248, 216, 14, 113, 13},
+      {70, 77, 247, 142, 8},
+      {184, 231, 1, 177, 15},
+      {23, 30, 251, 38, 2}
+    },
+    { {18, 41, 212, 58, 0},
+      {33, 171, 130, 17, 9},
+      {5, 194, 185, 68, 8},
+      {152, 132, 29, 88, 4}
+    },
+    { {58, 213, 230, 98, 8},
+      {98, 207, 51, 41, 5},
+      {20, 102, 122, 181, 12},
+      {169, 76, 207, 52, 6}
+    },
+    { {68, 63, 156, 94, 2},
+      {201, 179, 140, 184, 9},
+      {71, 163, 159, 194, 2},
+      {145, 211, 28, 217, 3}
+    },
+    { {53, 224, 26, 247, 2},
+      {137, 92, 182, 92, 3},
+      {78, 245, 128, 122, 12},
+      {195, 166, 211, 169, 1}
+    },
+    { {82, 84, 77, 114, 6},
+      {112, 29, 198, 169, 1},
+      {100, 235, 34, 164, 10},
+      {137, 86, 59, 128, 14}
+    },
+    { {8, 222, 33, 65, 9},
+      {86, 4, 25, 44, 12},
+      {152, 40, 71, 177, 0},
+      {51, 73, 130, 6, 10}
+    },
+    { {151, 233, 242, 229, 5},
+      {173, 206, 82, 95, 14},
+      {170, 116, 249, 126, 9},
+      {127, 164, 167, 59, 5}
+    },
+    { {117, 185, 123, 135, 5},
+      {253, 74, 116, 212, 15},
+      {174, 29, 233, 218, 14},
+      {242, 178, 229, 43, 15}
+    },
+    { {28, 149, 63, 106, 13},
+      {214, 107, 87, 56, 5},
+      {181, 111, 202, 147, 8},
+      {161, 206, 173, 102, 11}
+    },
+    { {72, 136, 208, 174, 15},
+      {46, 176, 83, 144, 11},
+      {247, 80, 177, 17, 2},
+      {208, 156, 160, 215, 4}
+    },
+    { {35, 82, 133, 125, 8},
+      {88, 165, 171, 77, 0},
+      {27, 234, 20, 172, 4},
+      {11, 45, 90, 81, 10}
+    },
+    { {145, 10, 12, 159, 8},
+      {8, 41, 141, 70, 11},
+      {31, 147, 5, 8, 9},
+      {214, 43, 25, 65, 0}
+    },
+    { {114, 106, 253, 204, 4},
+      {57, 173, 108, 153, 14},
+      {35, 59, 245, 100, 14},
+      {121, 147, 107, 89, 12}
+    },
+    { {70, 182, 223, 184, 12},
+      {241, 225, 223, 177, 2},
+      {49, 223, 182, 214, 2},
+      {72, 223, 184, 120, 15}
+    },
+    { {55, 30, 152, 201, 12},
+      {192, 168, 109, 125, 10},
+      {57, 49, 151, 142, 12},
+      {91, 235, 97, 80, 3}
+    },
+    { {242, 133, 64, 180, 10},
+      {40, 26, 179, 163, 2},
+      {82, 208, 42, 20, 15},
+      {76, 92, 213, 129, 4}
+    },
+    { {155, 53, 4, 69, 10},
+      {75, 27, 1, 111, 0},
+      {90, 34, 10, 205, 9},
+      {15, 104, 13, 141, 2}
+    },
+    { {138, 236, 145, 248, 13},
+      {23, 164, 211, 59, 10},
+      {177, 248, 147, 117, 1},
+      {93, 204, 178, 94, 8}
+    },
+    { {173, 85, 173, 77, 15},
+      {222, 183, 101, 110, 4},
+      {251, 43, 90, 171, 5},
+      {39, 106, 110, 215, 11}
+    },
+    { {42, 24, 202, 208, 2},
+      {98, 208, 164, 9, 10},
+      {64, 181, 49, 133, 4},
+      {89, 2, 80, 180, 6}
+    },
+    { {237, 2, 60, 165, 10},
+      {138, 17, 47, 214, 6},
+      {90, 83, 196, 11, 7},
+      {102, 191, 72, 133, 1}
+    },
+    { {190, 137, 112, 155, 1},
+      {166, 42, 176, 23, 15},
+      {141, 144, 233, 23, 13},
+      {254, 128, 213, 70, 5}
+    },
+    { {66, 233, 185, 200, 9},
+      {21, 166, 21, 153, 14},
+      {145, 57, 217, 116, 2},
+      {121, 154, 134, 90, 8}
+    },
+    { {224, 185, 52, 114, 9},
+      {69, 3, 179, 154, 13},
+      {148, 226, 201, 208, 7},
+      {181, 156, 220, 10, 2}
+    },
+    { {135, 32, 220, 54, 11},
+      {173, 145, 135, 83, 1},
+      {214, 195, 176, 78, 1},
+      {140, 174, 24, 155, 5}
+    },
+    { {93, 132, 96, 137, 7},
+      {166, 56, 80, 228, 6},
+      {233, 16, 98, 27, 10},
+      {98, 112, 161, 198, 5}
+    },
+    { {144, 204, 205, 2, 15},
+      {52, 157, 85, 34, 9},
+      {244, 11, 51, 48, 9},
+      {148, 74, 171, 146, 12}
+    },
+    { {140, 134, 212, 168, 8},
+      {162, 161, 27, 50, 2},
+      {17, 82, 182, 19, 1},
+      {68, 205, 136, 84, 5}
+    },
+    { {120, 169, 76, 36, 12},
+      {43, 11, 119, 128, 8},
+      {50, 67, 41, 81, 14},
+      {16, 30, 237, 13, 4}
+    },
+    { {182, 101, 251, 203, 12},
+      {177, 238, 101, 63, 7},
+      {61, 61, 250, 102, 13},
+      {239, 202, 103, 120, 13}
+    },
+    { {39, 167, 32, 26, 6},
+      {129, 50, 248, 97, 5},
+      {101, 128, 78, 94, 4},
+      {168, 97, 244, 200, 1}
+    },
+    { {193, 202, 69, 13, 5},
+      {60, 37, 88, 198, 8},
+      {171, 10, 37, 56, 3},
+      {22, 49, 170, 67, 12}
+    },
+    { {75, 38, 242, 6, 13},
+      {47, 192, 73, 241, 5},
+      {182, 4, 246, 77, 2},
+      {168, 249, 32, 63, 4}
+    },
+    { {146, 37, 46, 39, 11},
+      {13, 91, 7, 39, 5},
+      {222, 71, 74, 68, 9},
+      {174, 78, 13, 171, 0}
+    },
+    { {240, 175, 98, 24, 8},
+      {33, 106, 185, 162, 12},
+      {17, 132, 111, 80, 15},
+      {52, 89, 213, 104, 4}
+    },
+    { {50, 161, 124, 11, 6},
+      {33, 59, 116, 21, 5},
+      {109, 3, 232, 84, 12},
+      {170, 130, 237, 200, 4}
+    },
+    { {107, 9, 58, 162, 14},
+      {2, 82, 103, 209, 15},
+      {116, 85, 201, 13, 6},
+      {248, 190, 100, 164, 0}
+    },
+    { {134, 231, 189, 205, 5},
+      {157, 167, 92, 63, 6},
+      {171, 59, 222, 118, 1},
+      {111, 195, 174, 91, 9}
+    },
+    { {70, 76, 128, 181, 11},
+      {140, 148, 131, 165, 10},
+      {218, 208, 19, 38, 2},
+      {90, 92, 18, 147, 1}
+    },
+    { {110, 146, 188, 233, 7},
+      {198, 177, 126, 157, 6},
+      {233, 115, 212, 151, 6},
+      {107, 151, 232, 214, 3}
+    },
+    { {10, 141, 210, 173, 4},
+      {42, 226, 82, 53, 10},
+      {43, 84, 187, 21, 0},
+      {90, 196, 164, 117, 4}
+    },
+    { {133, 26, 254, 234, 9},
+      {228, 225, 15, 90, 15},
+      {149, 119, 245, 138, 1},
+      {245, 175, 8, 114, 7}
+    },
+    { {102, 122, 112, 73, 9},
+      {229, 36, 41, 157, 12},
+      {153, 32, 229, 230, 6},
+      {59, 153, 66, 74, 7}
+    },
+    { {113, 49, 97, 102, 13},
+      {125, 10, 99, 200, 5},
+      {182, 104, 104, 200, 14},
+      {161, 60, 101, 11, 14}
+    },
+    { {197, 119, 160, 82, 15},
+      {197, 150, 201, 234, 5},
+      {244, 160, 94, 234, 3},
+      {165, 121, 54, 154, 3}
+    },
+    { {224, 70, 76, 187, 12},
+      {32, 37, 239, 166, 3},
+      {61, 211, 38, 32, 7},
+      {198, 95, 122, 64, 4}
+    },
+    { {244, 9, 85, 141, 10},
+      {184, 59, 33, 150, 10},
+      {91, 26, 169, 2, 15},
+      {86, 152, 77, 193, 13}
+    },
+    { {34, 79, 148, 169, 9},
+      {4, 167, 43, 53, 10},
+      {153, 82, 159, 36, 4},
+      {90, 205, 78, 82, 0}
+    },
+    { {229, 88, 200, 244, 13},
+      {236, 132, 231, 202, 10},
+      {178, 241, 49, 170, 7},
+      {85, 62, 114, 19, 7}
+    },
+    { {243, 18, 209, 192, 11},
+      {116, 152, 41, 219, 2},
+      {208, 56, 180, 140, 15},
+      {77, 185, 65, 146, 14}
+    },
+    { {41, 114, 88, 124, 11},
+      {111, 52, 175, 88, 0},
+      {211, 225, 164, 233, 4},
+      {1, 175, 82, 207, 6}
+    },
+    { {65, 179, 38, 98, 4},
+      {65, 67, 90, 200, 5},
+      {36, 102, 76, 216, 2},
+      {161, 53, 172, 40, 2}
+    },
+    { {218, 87, 244, 214, 12},
+      {106, 143, 201, 187, 7},
+      {54, 178, 254, 165, 11},
+      {237, 217, 63, 21, 6}
+    },
+    { {186, 1, 109, 186, 9},
+      {54, 43, 167, 3, 7},
+      {149, 219, 104, 5, 13},
+      {236, 14, 93, 70, 12}
+    },
+    { {53, 137, 198, 176, 5},
+      {164, 203, 242, 64, 10},
+      {160, 214, 57, 26, 12},
+      {80, 36, 253, 50, 5}
+    },
+    { {223, 69, 8, 189, 5},
+      {142, 46, 198, 231, 2},
+      {171, 209, 10, 47, 11},
+      {78, 118, 55, 71, 1}
+    },
+    { {50, 82, 34, 250, 8},
+      {64, 108, 171, 9, 7},
+      {21, 244, 68, 164, 12},
+      {233, 13, 83, 96, 2}
+    },
+    { {87, 54, 121, 125, 4},
+      {249, 40, 206, 253, 4},
+      {43, 233, 230, 206, 10},
+      {43, 247, 49, 73, 15}
+    },
+    { {100, 77, 74, 190, 10},
+      {168, 118, 167, 160, 11},
+      {87, 213, 43, 34, 6},
+      {208, 94, 86, 225, 5}
+    },
+    { {13, 189, 14, 79, 10},
+      {203, 115, 21, 108, 9},
+      {95, 39, 11, 219, 0},
+      {147, 106, 140, 237, 3}
+    },
+    { {20, 18, 155, 246, 13},
+      {220, 200, 207, 24, 3},
+      {182, 253, 148, 130, 8},
+      {193, 143, 49, 51, 11}
+    },
+    { {160, 137, 141, 158, 1},
+      {28, 163, 180, 2, 11},
+      {135, 155, 25, 16, 5},
+      {212, 2, 220, 83, 8}
+    },
+    { {116, 80, 182, 226, 11},
+      {196, 221, 35, 152, 7},
+      {212, 118, 208, 162, 14},
+      {225, 156, 75, 178, 3}
+    },
+    { {224, 228, 28, 54, 7},
+      {13, 21, 246, 178, 1},
+      {230, 195, 130, 112, 7},
+      {132, 214, 250, 139, 0}
+    },
+    { {105, 149, 101, 253, 11},
+      {126, 51, 179, 236, 6},
+      {219, 250, 106, 153, 6},
+      {99, 124, 220, 199, 14}
+    },
+    { {103, 160, 233, 22, 8},
+      {185, 128, 181, 193, 5},
+      {22, 137, 112, 94, 6},
+      {168, 58, 208, 25, 13}
+    },
+    { {25, 252, 180, 77, 12},
+      {75, 173, 81, 124, 12},
+      {59, 34, 211, 249, 8},
+      {51, 232, 171, 93, 2}
+    },
+    { {240, 254, 74, 108, 6},
+      {105, 124, 126, 170, 8},
+      {99, 101, 39, 240, 15},
+      {21, 87, 227, 233, 6}
+    },
+    { {78, 229, 220, 11, 14},
+      {163, 183, 85, 181, 1},
+      {125, 3, 186, 119, 2},
+      {138, 218, 174, 220, 5}
+    },
+    { {178, 90, 177, 231, 7},
+      {92, 156, 106, 31, 15},
+      {238, 120, 213, 164, 13},
+      {255, 133, 99, 147, 10}
+    },
+    { {84, 197, 166, 143, 13},
+      {140, 239, 81, 164, 7},
+      {191, 22, 90, 50, 10},
+      {226, 88, 175, 115, 1}
+    },
+    { {247, 21, 47, 212, 3},
+      {220, 91, 164, 235, 6},
+      {194, 191, 74, 142, 15},
+      {109, 114, 93, 163, 11}
+    },
+    { {79, 145, 125, 232, 10},
+      {242, 51, 23, 217, 6},
+      {81, 123, 232, 159, 2},
+      {105, 190, 140, 196, 15}
+    },
+    { {9, 53, 24, 238, 6},
+      {75, 50, 70, 120, 3},
+      {103, 113, 138, 201, 0},
+      {193, 230, 36, 205, 2}
+    },
+    { {170, 77, 229, 141, 6},
+      {58, 183, 96, 39, 14},
+      {107, 26, 123, 37, 5},
+      {126, 64, 110, 213, 12}
+    },
+    { {251, 189, 163, 100, 14},
+      {91, 218, 115, 235, 12},
+      {114, 108, 91, 221, 15},
+      {61, 124, 229, 189, 10}
+    },
+    { {194, 140, 79, 157, 13},
+      {60, 97, 213, 167, 10},
+      {187, 159, 35, 20, 3},
+      {94, 90, 184, 99, 12}
+    },
+    { {221, 221, 90, 236, 8},
+      {234, 110, 23, 250, 10},
+      {19, 117, 171, 187, 11},
+      {85, 254, 135, 101, 7}
+    },
+    { {154, 123, 45, 105, 4},
+      {83, 47, 78, 15, 12},
+      {41, 107, 77, 229, 9},
+      {63, 7, 47, 76, 10}
+    },
+    { {218, 46, 220, 145, 1},
+      {39, 137, 140, 183, 10},
+      {136, 147, 183, 69, 11},
+      {94, 211, 25, 30, 4}
+    },
+    { {18, 21, 66, 25, 5},
+      {100, 106, 192, 37, 0},
+      {169, 132, 42, 132, 8},
+      {10, 64, 53, 98, 6}
+    },
+    { {58, 253, 126, 65, 13},
+      {103, 79, 117, 61, 12},
+      {184, 39, 235, 245, 12},
+      {59, 202, 239, 46, 6}
+    },
+    { {210, 145, 48, 33, 12},
+      {64, 10, 83, 151, 4},
+      {56, 64, 200, 148, 11},
+      {46, 156, 165, 0, 2}
+    },
+    { {136, 91, 123, 237, 6},
+      {122, 118, 78, 30, 14},
+      {107, 125, 237, 161, 1},
+      {119, 135, 38, 229, 14}
+    },
+    { {255, 26, 148, 3, 13},
+      {198, 137, 105, 215, 9},
+      {188, 2, 149, 143, 15},
+      {158, 185, 105, 22, 3}
+    },
+    { {138, 210, 5, 218, 10},
+      {82, 53, 153, 11, 3},
+      {85, 186, 4, 181, 1},
+      {205, 9, 154, 196, 10}
+    },
+    { {124, 254, 229, 86, 14},
+      {251, 157, 249, 168, 13},
+      {118, 170, 119, 243, 14},
+      {177, 89, 251, 157, 15}
+    },
+    { {15, 29, 188, 45, 9},
+      {206, 163, 7, 117, 12},
+      {155, 67, 219, 143, 0},
+      {58, 238, 12, 87, 3}
+    },
+    { {173, 125, 51, 119, 9},
+      {223, 70, 163, 126, 13},
+      {158, 236, 203, 235, 5},
+      {183, 236, 86, 47, 11}
+    },
+    { {94, 35, 218, 148, 5},
+      {175, 202, 204, 145, 2},
+      {162, 149, 188, 71, 10},
+      {72, 147, 53, 63, 5}
+    },
+    { {202, 135, 100, 114, 13},
+      {38, 3, 219, 171, 5},
+      {180, 226, 110, 21, 3},
+      {173, 93, 188, 6, 4}
+    },
+    { {42, 52, 86, 226, 7},
+      {103, 81, 98, 57, 3},
+      {228, 118, 162, 197, 4},
+      {201, 196, 104, 174, 6}
+    },
+    { {179, 128, 104, 125, 6},
+      {40, 56, 246, 79, 4},
+      {107, 225, 96, 28, 13},
+      {47, 38, 241, 193, 4}
+    },
+    { {73, 224, 165, 31, 6},
+      {27, 181, 208, 196, 5},
+      {111, 138, 80, 121, 2},
+      {162, 48, 186, 221, 8}
+    },
+    { {144, 226, 83, 62, 9},
+      {61, 108, 155, 18, 1},
+      {151, 204, 164, 112, 9},
+      {132, 141, 147, 107, 12}
+    },
+    { {221, 1, 6, 99, 13},
+      {134, 75, 67, 206, 1},
+      {188, 102, 8, 11, 11},
+      {135, 60, 45, 38, 1}
+    },
+    { {118, 160, 92, 144, 8},
+      {161, 9, 181, 145, 2},
+      {16, 147, 160, 86, 14},
+      {72, 154, 217, 8, 5}
+    },
+    { {14, 217, 3, 223, 6},
+      {218, 118, 208, 13, 11},
+      {111, 188, 9, 183, 0},
+      {219, 0, 182, 229, 11}
+    },
+    { {43, 112, 183, 113, 13},
+      {87, 197, 227, 93, 4},
+      {184, 238, 208, 237, 4},
+      {43, 172, 122, 62, 10}
+    },
+    { {78, 140, 226, 119, 3},
+      {174, 208, 146, 173, 13},
+      {206, 228, 115, 23, 2},
+      {187, 84, 144, 183, 5}
+    },
+    { {164, 109, 4, 140, 4},
+      {137, 39, 96, 34, 10},
+      {35, 18, 11, 98, 5},
+      {84, 64, 110, 73, 1}
+    },
+    { {174, 72, 136, 91, 10},
+      {130, 180, 165, 15, 9},
+      {93, 161, 17, 39, 5},
+      {159, 10, 82, 212, 1}
+    },
+    { {10, 163, 70, 143, 3},
+      {47, 115, 24, 5, 3},
+      {207, 22, 44, 85, 0},
+      {202, 1, 140, 239, 4}
+    },
+    { {106, 225, 111, 19, 7},
+      {55, 87, 244, 133, 5},
+      {236, 143, 104, 117, 6},
+      {170, 18, 254, 174, 12}
+    },
+    { {149, 35, 13, 186, 13},
+      {149, 43, 207, 66, 3},
+      {181, 219, 12, 74, 9},
+      {196, 47, 61, 74, 9}
+    },
+    { {228, 136, 181, 77, 4},
+      {152, 161, 112, 158, 12},
+      {43, 42, 209, 18, 7},
+      {55, 144, 232, 81, 9}
+    },
+    { {121, 10, 75, 108, 10},
+      {58, 120, 47, 200, 8},
+      {83, 109, 37, 9, 14},
+      {17, 63, 65, 229, 12}
+    },
+    { {64, 35, 127, 147, 9},
+      {53, 67, 141, 148, 7},
+      {156, 159, 236, 64, 2},
+      {226, 155, 28, 42, 12}
+    },
+    { {45, 191, 41, 200, 3},
+      {215, 50, 60, 104, 14},
+      {193, 57, 79, 219, 4},
+      {113, 99, 196, 206, 11}
+    },
+    { {202, 214, 76, 54, 0},
+      {106, 5, 158, 163, 1},
+      {6, 195, 38, 181, 3},
+      {140, 87, 154, 5, 6}
+    },
+    { {211, 175, 89, 151, 10},
+      {57, 26, 157, 247, 11},
+      {94, 153, 175, 92, 11},
+      {222, 251, 149, 137, 12}
+    },
+    { {157, 46, 167, 143, 5},
+      {159, 233, 72, 102, 15},
+      {175, 30, 87, 75, 9},
+      {246, 97, 41, 127, 9}
+    },
+    { {34, 211, 98, 6, 7},
+      {108, 86, 120, 1, 5},
+      {230, 4, 108, 180, 4},
+      {168, 1, 230, 163, 6}
+    },
+    { {204, 169, 43, 134, 6},
+      {155, 82, 84, 130, 15},
+      {102, 29, 73, 83, 3},
+      {244, 18, 164, 173, 9}
+    },
+    { {85, 43, 159, 167, 1},
+      {157, 203, 14, 212, 11},
+      {142, 95, 157, 74, 10},
+      {210, 183, 13, 59, 9}
+    },
+    { {203, 178, 173, 205, 11},
+      {95, 177, 29, 207, 6},
+      {219, 59, 84, 221, 3},
+      {111, 59, 136, 223, 10}
+    },
+    { {68, 250, 70, 198, 7},
+      {237, 85, 88, 136, 11},
+      {230, 54, 37, 242, 2},
+      {209, 17, 170, 171, 7}
+    },
+    { {231, 38, 143, 185, 7},
+      {149, 241, 238, 231, 2},
+      {233, 223, 22, 78, 7},
+      {78, 119, 120, 250, 9}
+    },
+    { {36, 175, 23, 170, 2},
+      {145, 115, 58, 48, 11},
+      {69, 94, 143, 82, 4},
+      {208, 197, 204, 232, 9}
+    },
+    { {67, 232, 194, 173, 10},
+      {41, 244, 19, 197, 10},
+      {91, 84, 49, 124, 2},
+      {90, 60, 130, 249, 4}
+    },
+    { {145, 205, 26, 71, 13},
+      {12, 78, 85, 126, 9},
+      {190, 37, 139, 56, 9},
+      {151, 234, 167, 35, 0}
+    },
+    { {104, 5, 2, 194, 10},
+      {2, 82, 33, 168, 3},
+      {84, 52, 10, 1, 6},
+      {193, 88, 68, 164, 0}
+    },
+    { {5, 213, 122, 29, 10},
+      {232, 118, 149, 116, 4},
+      {91, 133, 234, 186, 0},
+      {34, 234, 150, 225, 7}
+    },
+    { {88, 51, 178, 20, 8},
+      {75, 202, 137, 144, 4},
+      {18, 132, 220, 193, 10},
+      {32, 153, 21, 61, 2}
+    },
+    { {207, 23, 24, 178, 4},
+      {194, 2, 206, 243, 3},
+      {36, 209, 142, 143, 3},
+      {204, 247, 52, 4, 3}
+    },
+    { {86, 20, 124, 139, 2},
+      {224, 57, 4, 181, 7},
+      {77, 19, 226, 134, 10},
+      {234, 210, 9, 192, 7}
+    },
+    { {254, 81, 189, 45, 1},
+      {222, 175, 38, 151, 4},
+      {139, 75, 216, 167, 15},
+      {46, 150, 79, 87, 11}
+    },
+    { {48, 238, 165, 168, 4},
+      {17, 173, 122, 32, 14},
+      {33, 90, 87, 112, 12},
+      {112, 69, 235, 88, 8}
+    },
+    { {94, 27, 78, 166, 2},
+      {234, 91, 14, 129, 11},
+      {70, 87, 45, 135, 10},
+      {216, 23, 13, 165, 7}
+    },
+    { {37, 57, 142, 52, 3},
+      {205, 211, 166, 64, 8},
+      {194, 199, 25, 202, 4},
+      {16, 38, 92, 187, 3}
+    },
+    { {71, 238, 53, 187, 2},
+      {145, 53, 154, 245, 15},
+      {77, 218, 199, 126, 2},
+      {250, 245, 154, 200, 9}
+    },
+    { {105, 226, 147, 152, 11},
+      {23, 244, 185, 208, 2},
+      {209, 156, 148, 121, 6},
+      {64, 185, 210, 254, 8}
+    },
+    { {203, 235, 3, 139, 4},
+      {19, 102, 88, 199, 11},
+      {45, 28, 13, 125, 3},
+      {222, 49, 166, 108, 8}
+    },
+    { {151, 33, 193, 117, 9},
+      {189, 138, 131, 79, 0},
+      {154, 232, 56, 78, 9},
+      {15, 44, 21, 27, 13}
+    },
+    { {117, 81, 72, 151, 9},
+      {236, 14, 165, 196, 3},
+      {158, 145, 40, 170, 14},
+      {194, 58, 87, 3, 7}
+    },
+    { {87, 243, 99, 229, 3},
+      {253, 94, 26, 205, 6},
+      {202, 124, 108, 254, 10},
+      {107, 53, 135, 171, 15}
+    },
+    { {174, 100, 20, 104, 0},
+      {131, 37, 34, 59, 0},
+      {1, 98, 130, 103, 5},
+      {13, 196, 74, 76, 1}
+    },
+    { {126, 147, 161, 155, 5},
+      {214, 170, 248, 133, 7},
+      {173, 152, 92, 151, 14},
+      {234, 17, 245, 86, 11}
+    },
+    { {169, 131, 209, 245, 2},
+      {58, 146, 186, 94, 2},
+      {74, 248, 188, 25, 5},
+      {71, 165, 212, 149, 12}
+    },
+    { {100, 91, 1, 175, 9},
+      {220, 38, 43, 132, 11},
+      {159, 88, 13, 162, 6},
+      {210, 29, 70, 67, 11}
+    },
+    { {13, 167, 121, 86, 5},
+      {191, 2, 220, 120, 5},
+      {166, 169, 238, 91, 0},
+      {161, 227, 180, 15, 13}
+    },
+    { {114, 16, 159, 147, 13},
+      {84, 201, 229, 149, 3},
+      {188, 159, 144, 132, 14},
+      {202, 154, 121, 50, 10}
+    },
+    { {141, 12, 71, 198, 11},
+      {190, 81, 1, 106, 11},
+      {214, 62, 35, 11, 1},
+      {213, 104, 8, 167, 13}
+    },
+    { {109, 229, 76, 66, 3},
+      {167, 23, 52, 232, 1},
+      {196, 35, 42, 123, 6},
+      {129, 114, 206, 142, 5}
+    },
+    { {241, 35, 191, 102, 11},
+      {29, 219, 47, 218, 5},
+      {214, 111, 220, 72, 15},
+      {165, 191, 77, 187, 8}
+    },
+    { {180, 231, 234, 99, 7},
+      {165, 222, 126, 46, 5},
+      {236, 101, 126, 114, 13},
+      {167, 71, 231, 186, 5}
+    },
+    { {229, 224, 226, 108, 5},
+      {173, 228, 114, 202, 4},
+      {163, 100, 112, 122, 7},
+      {37, 52, 226, 123, 5}
+    },
+    { {90, 49, 4, 158, 15},
+      {79, 59, 193, 129, 3},
+      {247, 146, 8, 197, 10},
+      {200, 24, 61, 207, 2}
+    },
+    { {137, 248, 81, 23, 11},
+      {127, 20, 145, 86, 9},
+      {222, 136, 161, 249, 1},
+      {150, 168, 146, 143, 14}
+    },
+    { {111, 187, 159, 46, 10},
+      {219, 243, 63, 209, 9},
+      {87, 79, 157, 223, 6},
+      {152, 191, 204, 253, 11}
+    },
+    { {80, 175, 172, 250, 6},
+      {1, 187, 222, 168, 15},
+      {101, 243, 95, 80, 10},
+      {241, 87, 189, 216, 0}
+    },
+    { {181, 113, 7, 57, 6},
+      {209, 127, 226, 70, 0},
+      {105, 206, 8, 234, 13},
+      {6, 36, 127, 232, 11}
+    },
+    { {121, 119, 47, 9, 2},
+      {83, 127, 44, 228, 4},
+      {73, 15, 78, 233, 14},
+      {34, 115, 79, 236, 10}
+    },
+    { {177, 29, 65, 73, 3},
+      {116, 58, 32, 110, 8},
+      {201, 40, 43, 136, 13},
+      {23, 96, 69, 194, 14}
+    },
+    { {29, 227, 35, 74, 14},
+      {147, 126, 89, 72, 5},
+      {117, 44, 76, 123, 8},
+      {161, 41, 167, 236, 9}
+    },
+    { {179, 148, 34, 108, 13},
+      {76, 104, 115, 107, 4},
+      {179, 100, 66, 156, 13},
+      {45, 108, 225, 99, 2}
+    },
+    { {44, 126, 92, 173, 1},
+      {239, 37, 46, 52, 10},
+      {139, 83, 167, 227, 4},
+      {82, 199, 74, 79, 7}
+    },
+    { {95, 115, 48, 151, 13},
+      {207, 14, 201, 213, 7},
+      {190, 144, 204, 239, 10},
+      {234, 185, 55, 15, 3}
+    },
+    { {69, 251, 224, 160, 13},
+      {229, 134, 91, 192, 14},
+      {176, 80, 125, 250, 2},
+      {112, 61, 166, 26, 7}
+    },
+    { {9, 122, 74, 176, 0},
+      {99, 68, 142, 64, 10},
+      {0, 213, 37, 233, 0},
+      {80, 39, 18, 44, 6}
+    },
+    { {179, 119, 146, 163, 10},
+      {65, 222, 43, 119, 3},
+      {92, 84, 158, 236, 13},
+      {206, 237, 71, 184, 2}
+    },
+    { {98, 35, 175, 220, 7},
+      {29, 243, 236, 137, 6},
+      {227, 191, 92, 68, 6},
+      {105, 19, 124, 251, 8}
+    },
+    { {108, 155, 99, 108, 9},
+      {254, 98, 59, 136, 12},
+      {147, 108, 109, 147, 6},
+      {49, 29, 196, 103, 15}
+    },
+    { {155, 78, 142, 46, 9},
+      {14, 237, 15, 99, 9},
+      {151, 71, 23, 45, 9},
+      {156, 111, 11, 119, 0}
+    },
+    { {249, 195, 194, 21, 3},
+      {46, 222, 184, 198, 0},
+      {202, 132, 60, 57, 15},
+      {6, 49, 215, 183, 4}
+    },
+    { {119, 43, 15, 234, 11},
+      {149, 123, 47, 201, 11},
+      {213, 127, 13, 78, 14},
+      {217, 63, 77, 234, 9}
+    },
+    { {102, 250, 154, 171, 4},
+      {193, 228, 126, 149, 11},
+      {45, 85, 149, 246, 6},
+      {218, 151, 226, 120, 3}
+    },
+    { {116, 98, 77, 223, 13},
+      {189, 45, 237, 140, 3},
+      {191, 187, 36, 98, 14},
+      {195, 27, 123, 75, 13}
+    },
+    { {25, 222, 78, 102, 4},
+      {106, 77, 94, 104, 9},
+      {38, 103, 39, 185, 8},
+      {145, 103, 171, 37, 6}
+    },
+    { {148, 41, 230, 53, 14},
+      {169, 219, 195, 6, 12},
+      {122, 198, 121, 66, 9},
+      {54, 12, 61, 185, 5}
+    },
+    { {76, 236, 163, 246, 4},
+      {155, 196, 210, 168, 15},
+      {38, 252, 83, 115, 2},
+      {241, 84, 178, 61, 9}
+    },
+    { {164, 180, 6, 106, 6},
+      {193, 113, 114, 42, 1},
+      {101, 102, 2, 210, 5},
+      {133, 68, 232, 232, 3}
+    },
+    { {30, 86, 88, 215, 4},
+      {234, 12, 204, 61, 3},
+      {46, 177, 166, 167, 8},
+      {203, 195, 51, 5, 7}
+    },
+    { {219, 73, 192, 161, 2},
+      {34, 158, 2, 199, 10},
+      {72, 80, 57, 45, 11},
+      {94, 52, 7, 148, 4}
+    },
+    { {79, 81, 144, 218, 7},
+      {198, 182, 192, 217, 3},
+      {229, 176, 152, 175, 2},
+      {201, 176, 54, 214, 3}
+    },
+    { {1, 67, 44, 173, 5},
+      {12, 39, 78, 68, 6},
+      {171, 83, 76, 40, 0},
+      {98, 39, 46, 67, 0}
+    },
+    { {82, 252, 40, 115, 9},
+      {69, 12, 151, 173, 13},
+      {156, 225, 67, 244, 10},
+      {187, 94, 147, 10, 2}
+    },
+    { {67, 147, 62, 210, 15},
+      {68, 83, 221, 217, 7},
+      {244, 183, 204, 156, 2},
+      {233, 187, 188, 162, 2}
+    },
+    { {107, 7, 29, 172, 0},
+      {26, 35, 46, 241, 2},
+      {3, 91, 142, 13, 6},
+      {72, 247, 76, 69, 8}
+    },
+    { {81, 13, 171, 142, 1},
+      {28, 234, 4, 224, 15},
+      {135, 29, 91, 8, 10},
+      {240, 114, 5, 115, 8}
+    },
+    { {80, 201, 26, 157, 10},
+      {8, 126, 149, 148, 10},
+      {91, 149, 137, 48, 10},
+      {82, 154, 151, 225, 0}
+    },
+    { {95, 229, 148, 45, 0},
+      {139, 175, 18, 245, 0},
+      {11, 66, 154, 127, 10},
+      {10, 244, 143, 93, 1}
+    },
+    { {88, 194, 177, 178, 10},
+      {18, 156, 155, 144, 7},
+      {84, 216, 212, 49, 10},
+      {224, 157, 147, 148, 8}
+    },
+    { {137, 65, 77, 139, 14},
+      {50, 55, 69, 70, 3},
+      {125, 27, 40, 41, 1},
+      {198, 42, 46, 196, 12}
+    },
+    { {132, 10, 38, 120, 5},
+      {132, 97, 202, 10, 12},
+      {161, 230, 69, 2, 1},
+      {53, 5, 56, 98, 1}
+    },
+    { {185, 96, 91, 1, 13},
+      {55, 76, 101, 86, 0},
+      {184, 13, 160, 105, 13},
+      {6, 170, 99, 46, 12}
+    },
+    { {20, 186, 220, 247, 7},
+      {237, 153, 222, 28, 11},
+      {238, 243, 181, 210, 8},
+      {211, 135, 185, 155, 7}
+    },
+    { {246, 219, 203, 198, 4},
+      {248, 206, 124, 139, 11},
+      {38, 61, 61, 182, 15},
+      {221, 19, 231, 49, 15}
+    },
+    { {192, 171, 73, 169, 0},
+      {49, 34, 30, 134, 10},
+      {9, 89, 45, 80, 3},
+      {86, 23, 132, 72, 12}
+    },
+    { {153, 38, 27, 157, 2},
+      {27, 120, 140, 118, 2},
+      {75, 157, 134, 73, 9},
+      {70, 227, 17, 237, 8}
+    },
+    { {97, 25, 251, 19, 6},
+      {112, 210, 228, 212, 13},
+      {108, 141, 249, 136, 6},
+      {178, 178, 116, 176, 14}
+    },
+    { {136, 247, 2, 236, 5},
+      {79, 102, 90, 42, 2},
+      {163, 116, 14, 241, 1},
+      {69, 69, 166, 111, 2}
+    },
+    { {59, 109, 198, 146, 3},
+      {39, 223, 160, 97, 11},
+      {196, 150, 59, 109, 12},
+      {216, 96, 95, 190, 4}
+    },
+    { {78, 98, 149, 182, 0},
+      {155, 133, 138, 145, 3},
+      {6, 218, 148, 103, 2},
+      {200, 149, 26, 29, 9}
+    },
+    { {217, 253, 38, 220, 10},
+      {75, 127, 145, 234, 14},
+      {83, 182, 75, 249, 11},
+      {117, 120, 159, 237, 2}
+    },
+    { {185, 170, 215, 180, 13},
+      {63, 201, 251, 82, 10},
+      {178, 222, 181, 89, 13},
+      {84, 173, 249, 63, 12}
+    },
+    { {77, 237, 86, 136, 15},
+      {167, 119, 81, 240, 10},
+      {241, 22, 171, 123, 2},
+      {80, 248, 174, 238, 5}
+    },
+    { {32, 85, 135, 53, 1},
+      {92, 199, 162, 36, 0},
+      {138, 206, 26, 160, 4},
+      {2, 68, 94, 51, 10}
+    },
+    { {229, 194, 49, 87, 1},
+      {156, 4, 184, 222, 5},
+      {142, 168, 196, 58, 7},
+      {167, 177, 210, 3, 9}
+    },
+    { {203, 185, 136, 37, 6},
+      {75, 146, 86, 199, 8},
+      {106, 65, 25, 221, 3},
+      {30, 54, 164, 157, 2}
+    },
+    { {43, 23, 42, 185, 9},
+      {70, 98, 175, 101, 6},
+      {153, 213, 78, 141, 4},
+      {106, 111, 84, 102, 2}
+    },
+    { {171, 204, 25, 105, 3},
+      {22, 52, 54, 127, 8},
+      {201, 105, 131, 61, 5},
+      {31, 230, 194, 198, 8}
+    },
+    { {136, 158, 50, 170, 15},
+      {70, 112, 91, 50, 15},
+      {245, 84, 199, 145, 1},
+      {244, 205, 160, 230, 2}
+    },
+    { {13, 103, 151, 181, 12},
+      {155, 199, 203, 116, 2},
+      {58, 222, 158, 107, 0},
+      {66, 237, 62, 61, 9}
+    },
+    { {110, 236, 61, 135, 6},
+      {155, 21, 116, 181, 15},
+      {110, 27, 195, 119, 6},
+      {250, 210, 234, 141, 9}
+    },
+    { {163, 18, 150, 137, 14},
+      {64, 241, 105, 87, 2},
+      {121, 22, 148, 140, 5},
+      {78, 169, 104, 240, 2}
+    },
+    { {49, 39, 126, 125, 11},
+      {45, 123, 175, 124, 4},
+      {219, 231, 238, 72, 12},
+      {35, 239, 93, 235, 4}
+    },
+    { {197, 59, 33, 41, 14},
+      {209, 50, 75, 198, 12},
+      {121, 72, 77, 202, 3},
+      {54, 61, 36, 200, 11}
+    },
+    { {14, 92, 116, 153, 15},
+      {230, 53, 193, 53, 14},
+      {249, 146, 227, 167, 0},
+      {122, 200, 58, 198, 7}
+    },
+    { {206, 216, 31, 33, 1},
+      {214, 69, 22, 151, 8},
+      {136, 79, 129, 183, 3},
+      {30, 150, 138, 38, 11}
+    },
+    { {17, 190, 238, 22, 3},
+      {109, 217, 156, 96, 13},
+      {198, 135, 119, 216, 8},
+      {176, 99, 153, 187, 6}
+    },
+    { {91, 246, 119, 192, 6},
+      {115, 93, 88, 249, 6},
+      {96, 62, 230, 253, 10},
+      {105, 241, 171, 172, 14}
+    },
+    { {205, 49, 157, 20, 14},
+      {219, 147, 197, 210, 0},
+      {114, 139, 152, 203, 3},
+      {4, 186, 60, 157, 11}
+    },
+    { {33, 104, 14, 72, 13},
+      {5, 101, 101, 72, 8},
+      {177, 39, 1, 104, 4},
+      {17, 42, 106, 106, 0}
+    },
+    { {40, 39, 132, 250, 11},
+      {7, 179, 171, 40, 3},
+      {213, 242, 30, 65, 4},
+      {193, 77, 92, 222, 0}
+    },
+    { {168, 244, 166, 26, 0},
+      {67, 229, 176, 34, 5},
+      {5, 134, 82, 241, 5},
+      {164, 64, 218, 124, 2}
+    },
+    { {49, 118, 81, 59, 4},
+      {113, 44, 234, 116, 1},
+      {45, 200, 166, 232, 12},
+      {130, 229, 115, 72, 14}
+    },
+    { {247, 105, 206, 110, 2},
+      {169, 255, 38, 203, 9},
+      {71, 103, 57, 110, 15},
+      {157, 54, 79, 249, 5}
+    },
+    { {83, 146, 163, 177, 13},
+      {84, 200, 219, 197, 6},
+      {184, 220, 84, 156, 10},
+      {106, 61, 177, 50, 10}
+    },
+    { {88, 101, 173, 108, 15},
+      {31, 191, 71, 168, 4},
+      {243, 107, 90, 97, 10},
+      {33, 94, 47, 223, 8}
+    },
+    { {190, 115, 121, 11, 0},
+      {243, 46, 44, 23, 5},
+      {13, 9, 236, 231, 13},
+      {174, 131, 71, 76, 15}
+    },
+    { {90, 232, 238, 91, 11},
+      {39, 253, 149, 141, 13},
+      {221, 167, 113, 117, 10},
+      {187, 26, 155, 254, 4}
+    },
+    { {139, 106, 57, 122, 0},
+      {19, 36, 142, 91, 13},
+      {5, 233, 197, 109, 1},
+      {189, 167, 18, 76, 8}
+    },
+    { {163, 233, 94, 124, 14},
+      {41, 119, 247, 91, 8},
+      {115, 231, 169, 124, 5},
+      {29, 174, 254, 233, 4}
+    },
+    { {91, 159, 159, 132, 13},
+      {94, 203, 93, 241, 10},
+      {178, 31, 159, 157, 10},
+      {88, 251, 173, 55, 10}
+    },
+    { {47, 75, 147, 199, 11},
+      {158, 214, 41, 93, 11},
+      {222, 60, 157, 47, 4},
+      {219, 169, 70, 183, 9}
+    },
+    { {76, 117, 32, 169, 6},
+      {195, 54, 66, 164, 6},
+      {105, 80, 74, 227, 2},
+      {98, 84, 38, 204, 3}
+    },
+    { {98, 163, 2, 254, 14},
+      {9, 114, 251, 137, 3},
+      {119, 244, 12, 84, 6},
+      {201, 29, 244, 233, 0}
+    },
+    { {103, 190, 132, 139, 7},
+      {197, 177, 120, 229, 11},
+      {237, 18, 23, 222, 6},
+      {218, 113, 232, 218, 3}
+    },
+    { {183, 81, 31, 133, 12},
+      {216, 79, 101, 87, 2},
+      {58, 31, 136, 174, 13},
+      {78, 170, 111, 33, 11}
+    },
+    { {24, 89, 92, 70, 7},
+      {110, 31, 68, 24, 9},
+      {230, 35, 169, 161, 8},
+      {145, 130, 47, 135, 6}
+    },
+    { {21, 230, 55, 117, 0},
+      {153, 77, 154, 124, 4},
+      {10, 238, 198, 122, 8},
+      {35, 229, 155, 41, 9}
+    },
+    { {152, 85, 193, 87, 13},
+      {126, 142, 193, 46, 1},
+      {190, 168, 58, 161, 9},
+      {135, 72, 55, 23, 14}
+    },
+    { {221, 31, 87, 116, 9},
+      {254, 75, 139, 250, 8},
+      {146, 238, 175, 139, 11},
+      {21, 253, 29, 39, 15}
+    },
+    { {116, 139, 16, 186, 5},
+      {132, 42, 250, 144, 11},
+      {165, 208, 141, 18, 14},
+      {208, 149, 245, 66, 1}
+    },
+    { {28, 253, 149, 152, 1},
+      {215, 175, 144, 48, 10},
+      {129, 154, 155, 243, 8},
+      {80, 192, 159, 94, 11}
+    },
+    { {99, 111, 43, 206, 2},
+      {25, 118, 44, 233, 15},
+      {71, 61, 79, 108, 6},
+      {249, 115, 70, 233, 8}
+    },
+    { {175, 140, 36, 152, 13},
+      {134, 33, 241, 99, 14},
+      {177, 146, 67, 31, 5},
+      {124, 104, 248, 70, 1}
+    },
+    { {33, 45, 73, 54, 5},
+      {61, 2, 230, 96, 9},
+      {166, 201, 43, 72, 4},
+      {144, 102, 116, 11, 12}
+    },
+    { {173, 161, 22, 32, 14},
+      {131, 83, 115, 82, 0},
+      {112, 70, 136, 91, 5},
+      {4, 172, 236, 172, 1}
+    },
+    { {239, 49, 13, 89, 13},
+      {215, 35, 229, 207, 0},
+      {185, 171, 8, 207, 7},
+      {15, 58, 124, 78, 11}
+    },
+    { {155, 50, 155, 65, 14},
+      {83, 216, 77, 95, 0},
+      {120, 45, 148, 205, 9},
+      {15, 171, 33, 188, 10}
+    },
+    { {95, 76, 1, 168, 15},
+      {150, 60, 67, 225, 10},
+      {241, 88, 3, 47, 10},
+      {88, 124, 35, 198, 9}
+    },
+    { {110, 151, 175, 238, 0},
+      {218, 227, 62, 169, 7},
+      {7, 127, 94, 151, 6},
+      {233, 87, 204, 117, 11}
+    },
+    { {129, 68, 91, 180, 8},
+      {56, 68, 135, 114, 2},
+      {18, 221, 162, 40, 1},
+      {68, 238, 18, 33, 12}
+    },
+    { {196, 142, 130, 78, 7},
+      {140, 240, 88, 170, 9},
+      {231, 36, 23, 18, 3},
+      {149, 81, 160, 243, 1}
+    },
+    { {225, 39, 182, 160, 12},
+      {1, 195, 107, 242, 6},
+      {48, 86, 222, 72, 7},
+      {100, 253, 108, 56, 0}
+    },
+    { {88, 201, 151, 188, 7},
+      {30, 255, 210, 144, 10},
+      {227, 222, 153, 49, 10},
+      {80, 148, 191, 247, 8}
+    },
+    { {37, 121, 224, 205, 7},
+      {237, 182, 96, 76, 14},
+      {235, 48, 121, 234, 4},
+      {115, 32, 102, 219, 7}
+    },
+    { {107, 93, 4, 34, 7},
+      {70, 23, 98, 225, 9},
+      {228, 66, 11, 173, 6},
+      {152, 116, 110, 134, 2}
+    },
+    { {109, 39, 67, 156, 2},
+      {187, 114, 168, 224, 2},
+      {67, 156, 46, 75, 6},
+      {64, 113, 84, 237, 13}
+    },
+    { {168, 101, 37, 190, 2},
+      {27, 55, 162, 34, 7},
+      {71, 218, 74, 97, 5},
+      {228, 68, 94, 205, 8}
+    },
+    { {197, 187, 243, 235, 0},
+      {241, 226, 26, 222, 15},
+      {13, 124, 253, 218, 3},
+      {247, 181, 132, 120, 15}
+    },
+    { {224, 138, 63, 86, 10},
+      {24, 81, 189, 154, 13},
+      {86, 175, 197, 16, 7},
+      {181, 155, 216, 161, 8}
+    },
+    { {209, 250, 49, 233, 7},
+      {85, 60, 90, 222, 14},
+      {233, 120, 197, 248, 11},
+      {119, 181, 163, 202, 10}
+    },
+    { {102, 72, 123, 117, 10},
+      {184, 84, 167, 157, 12},
+      {90, 237, 225, 38, 6},
+      {59, 158, 82, 161, 13}
+    },
+    { {152, 233, 237, 143, 5},
+      {63, 175, 84, 6, 15},
+      {175, 27, 121, 113, 9},
+      {246, 2, 175, 95, 12}
+    },
+    { {156, 76, 216, 209, 15},
+      {166, 156, 197, 62, 10},
+      {248, 177, 179, 35, 9},
+      {87, 202, 51, 150, 5}
+    },
+    { {219, 162, 17, 122, 14},
+      {19, 56, 219, 219, 1},
+      {117, 232, 132, 93, 11},
+      {141, 189, 177, 204, 8}
+    },
+    { {252, 157, 45, 143, 13},
+      {222, 43, 117, 166, 15},
+      {191, 27, 75, 147, 15},
+      {246, 90, 237, 71, 11}
+    },
+    { {42, 216, 44, 171, 15},
+      {70, 53, 119, 5, 15},
+      {253, 83, 65, 181, 4},
+      {250, 14, 234, 198, 2}
+    },
+    { {203, 77, 206, 196, 5},
+      {46, 199, 68, 235, 10},
+      {162, 55, 59, 45, 3},
+      {93, 114, 46, 55, 4}
+    },
+    { {212, 230, 126, 105, 10},
+      {161, 125, 31, 190, 4},
+      {89, 103, 230, 114, 11},
+      {39, 223, 139, 232, 5}
+    },
+    { {182, 118, 99, 52, 5},
+      {253, 76, 234, 35, 4},
+      {162, 204, 102, 230, 13},
+      {44, 69, 115, 43, 15}
+    },
+    { {129, 161, 64, 232, 13},
+      {37, 34, 83, 74, 2},
+      {177, 112, 40, 88, 1},
+      {69, 44, 164, 74, 4}
+    },
+    { {36, 248, 181, 42, 13},
+      {213, 165, 115, 16, 13},
+      {181, 74, 209, 242, 4},
+      {176, 140, 234, 90, 11}
+    },
+    { {33, 212, 75, 137, 7},
+      {116, 116, 116, 100, 2},
+      {233, 29, 34, 184, 4},
+      {66, 98, 226, 226, 14}
+    },
+    { {143, 130, 58, 23, 11},
+      {142, 80, 157, 87, 5},
+      {222, 133, 196, 31, 1},
+      {174, 171, 144, 167, 1}
+    },
+    { {246, 113, 26, 188, 10},
+      {201, 126, 167, 147, 2},
+      {83, 213, 136, 230, 15},
+      {76, 158, 87, 233, 3}
+    },
+    { {63, 94, 2, 121, 7},
+      {198, 124, 234, 109, 8},
+      {233, 228, 7, 175, 12},
+      {27, 101, 115, 230, 3}
+    },
+    { {205, 212, 228, 99, 15},
+      {230, 149, 83, 238, 5},
+      {252, 98, 114, 187, 3},
+      {167, 124, 170, 150, 7}
+    },
+    { {89, 70, 5, 49, 5},
+      {22, 13, 202, 228, 0},
+      {168, 202, 6, 41, 10},
+      {2, 117, 59, 6, 8}
+    },
+    { {32, 186, 102, 97, 13},
+      {101, 65, 123, 12, 12},
+      {184, 102, 101, 208, 4},
+      {51, 13, 232, 42, 6}
+    },
+    { {151, 191, 26, 90, 0},
+      {193, 106, 156, 123, 9},
+      {5, 165, 143, 222, 9},
+      {157, 227, 149, 104, 3}
+    },
+    { {126, 66, 218, 161, 8},
+      {162, 204, 47, 149, 2},
+      {24, 85, 180, 39, 14},
+      {74, 159, 67, 52, 5}
+    },
+    { {98, 148, 45, 213, 5},
+      {92, 1, 244, 173, 6},
+      {170, 187, 66, 148, 6},
+      {107, 82, 248, 3, 10}
+    },
+    { {177, 229, 50, 4, 7},
+      {13, 94, 112, 114, 4},
+      {226, 4, 202, 120, 13},
+      {36, 224, 231, 171, 0}
+    },
+    { {222, 100, 233, 20, 12},
+      {187, 140, 197, 163, 4},
+      {50, 137, 114, 103, 11},
+      {44, 90, 51, 29, 13}
+    },
+    { {71, 94, 177, 229, 0},
+      {216, 132, 10, 253, 14},
+      {10, 120, 215, 174, 2},
+      {123, 245, 2, 17, 11}
+    },
+    { {25, 165, 108, 166, 9},
+      {47, 11, 23, 96, 7},
+      {150, 83, 106, 89, 8},
+      {224, 110, 141, 15, 4}
+    },
+    { {149, 5, 117, 79, 13},
+      {188, 43, 65, 126, 5},
+      {191, 42, 234, 10, 9},
+      {167, 232, 45, 67, 13}
+    },
+    { {54, 171, 61, 147, 0},
+      {145, 11, 188, 21, 15},
+      {12, 155, 205, 86, 12},
+      {250, 131, 221, 8, 9}
+    },
+    { {87, 132, 157, 120, 1},
+      {148, 169, 150, 249, 0},
+      {129, 235, 146, 30, 10},
+      {9, 246, 153, 82, 9}
+    },
+    { {164, 135, 244, 206, 4},
+      {168, 163, 120, 58, 7},
+      {39, 50, 254, 18, 5},
+      {229, 193, 236, 81, 5}
+    },
+    { {177, 1, 150, 215, 4},
+      {8, 203, 224, 94, 3},
+      {46, 182, 152, 8, 13},
+      {199, 160, 125, 49, 0}
+    },
+    { {202, 139, 220, 248, 6},
+      {34, 179, 222, 155, 10},
+      {97, 243, 189, 21, 3},
+      {93, 151, 188, 212, 4}
+    },
+    { {241, 104, 15, 187, 1},
+      {21, 109, 166, 198, 11},
+      {141, 223, 1, 104, 15},
+      {214, 54, 91, 106, 8}
+    },
+    { {119, 235, 139, 132, 9},
+      {157, 206, 61, 193, 10},
+      {146, 29, 29, 126, 14},
+      {88, 59, 199, 59, 9}
+    },
+    { {2, 83, 18, 189, 4},
+      {72, 102, 202, 21, 2},
+      {43, 212, 140, 164, 0},
+      {74, 133, 54, 97, 2}
+    },
+    { {29, 42, 141, 92, 1},
+      {159, 169, 140, 72, 8},
+      {131, 171, 21, 75, 8},
+      {17, 35, 25, 95, 9}
+    },
+    { {39, 117, 108, 47, 10},
+      {233, 55, 39, 101, 5},
+      {95, 67, 106, 238, 4},
+      {170, 110, 78, 201, 7}
+    },
+    { {61, 80, 83, 188, 9},
+      {254, 108, 163, 80, 2},
+      {147, 220, 160, 171, 12},
+      {64, 172, 83, 103, 15}
+    },
+    { {120, 181, 174, 182, 4},
+      {75, 203, 246, 160, 7},
+      {38, 215, 90, 209, 14},
+      {224, 86, 253, 61, 2}
+    },
+    { {42, 93, 133, 78, 1},
+      {94, 167, 32, 41, 9},
+      {135, 42, 27, 165, 4},
+      {153, 64, 78, 87, 10}
+    },
+    { {0, 239, 149, 206, 12},
+      {25, 167, 89, 56, 11},
+      {55, 58, 159, 112, 0},
+      {209, 201, 174, 89, 8}
+    },
+    { {198, 248, 201, 176, 10},
+      {241, 148, 151, 131, 10},
+      {80, 217, 49, 246, 3},
+      {92, 30, 146, 152, 15}
+    },
+    { {52, 138, 244, 180, 8},
+      {168, 137, 187, 16, 14},
+      {18, 210, 245, 18, 12},
+      {112, 141, 217, 17, 5}
+    },
+    { {154, 221, 191, 118, 3},
+      {94, 223, 150, 59, 13},
+      {198, 239, 219, 181, 9},
+      {189, 198, 159, 183, 10}
+    },
+    { {68, 183, 153, 113, 1},
+      {213, 130, 158, 188, 0},
+      {136, 233, 158, 210, 2},
+      {3, 215, 148, 26, 11}
+    },
+    { {53, 31, 237, 192, 9},
+      {244, 139, 45, 104, 14},
+      {144, 59, 127, 138, 12},
+      {113, 107, 77, 18, 15}
+    },
+    { {240, 132, 133, 185, 5},
+      {20, 169, 242, 166, 2},
+      {169, 218, 18, 16, 15},
+      {70, 84, 249, 82, 8}
+    },
+    { {130, 188, 93, 116, 5},
+      {125, 1, 214, 59, 8},
+      {162, 235, 163, 212, 1},
+      {29, 198, 184, 11, 14}
+    },
+    { {58, 134, 179, 151, 15},
+      {30, 216, 249, 53, 7},
+      {254, 156, 214, 21, 12},
+      {234, 201, 241, 183, 8}
+    },
+    { {140, 232, 137, 29, 15},
+      {159, 180, 213, 6, 8},
+      {251, 137, 17, 115, 1},
+      {22, 10, 178, 223, 9}
+    },
+    { {63, 123, 205, 83, 8},
+      {243, 143, 173, 77, 9},
+      {28, 171, 61, 239, 12},
+      {155, 43, 95, 28, 15}
+    },
+    { {180, 13, 145, 70, 7},
+      {156, 154, 96, 58, 9},
+      {230, 40, 155, 2, 13},
+      {149, 192, 101, 147, 9}
+    },
+    { {109, 172, 86, 182, 6},
+      {171, 81, 242, 240, 11},
+      {102, 214, 163, 91, 6},
+      {208, 244, 248, 173, 5}
+    },
+    { {88, 149, 105, 0, 13},
+      {118, 10, 85, 160, 4},
+      {176, 9, 106, 145, 10},
+      {32, 90, 165, 6, 14}
+    },
+    { {76, 163, 63, 89, 3},
+      {151, 115, 156, 156, 4},
+      {201, 175, 204, 83, 2},
+      {35, 147, 156, 238, 9}
+    },
+    { {53, 167, 215, 80, 1},
+      {181, 203, 184, 120, 0},
+      {128, 174, 190, 90, 12},
+      {1, 225, 221, 58, 13}
+    },
+    { {22, 233, 116, 244, 11},
+      {173, 31, 147, 25, 14},
+      {210, 242, 233, 118, 8},
+      {121, 140, 159, 139, 5}
+    },
+    { {106, 219, 126, 99, 3},
+      {102, 87, 62, 157, 13},
+      {204, 103, 237, 181, 6},
+      {187, 151, 206, 166, 6}
+    },
+    { {172, 254, 199, 138, 5},
+      {247, 229, 120, 34, 11},
+      {165, 30, 55, 243, 5},
+      {212, 65, 234, 126, 15}
+    },
+    { {195, 109, 112, 53, 6},
+      {41, 22, 194, 247, 12},
+      {106, 192, 235, 108, 3},
+      {62, 244, 54, 137, 4}
+    },
+    { {133, 82, 84, 245, 6},
+      {232, 21, 202, 94, 2},
+      {106, 242, 164, 170, 1},
+      {71, 165, 58, 129, 7}
+    },
+    { {211, 112, 148, 110, 7},
+      {77, 189, 66, 219, 1},
+      {231, 98, 144, 236, 11},
+      {141, 180, 43, 219, 2}
+    },
+    { {157, 177, 206, 126, 12},
+      {235, 235, 215, 74, 1},
+      {55, 231, 56, 219, 9},
+      {133, 46, 189, 125, 7}
+    },
+    { {163, 136, 217, 180, 14},
+      {56, 144, 247, 83, 10},
+      {114, 217, 177, 28, 5},
+      {92, 174, 240, 145, 12}
+    },
+    { {98, 252, 134, 118, 14},
+      {73, 213, 243, 169, 9},
+      {118, 230, 19, 244, 6},
+      {153, 92, 250, 185, 2}
+    },
+    { {209, 228, 206, 15, 2},
+      {41, 253, 20, 230, 1},
+      {79, 7, 50, 120, 11},
+      {134, 114, 139, 249, 4}
+    },
+    { {224, 197, 119, 135, 0},
+      {56, 71, 48, 182, 7},
+      {14, 30, 234, 48, 7},
+      {230, 208, 206, 33, 12}
+    },
+    { {136, 137, 241, 121, 7},
+      {54, 178, 210, 30, 12},
+      {233, 232, 249, 17, 1},
+      {55, 132, 180, 214, 12}
+    },
+    { {175, 103, 124, 158, 0},
+      {171, 39, 172, 115, 7},
+      {7, 147, 238, 111, 5},
+      {236, 227, 94, 77, 5}
+    },
+    { {250, 135, 32, 206, 8},
+      {10, 42, 57, 171, 7},
+      {23, 48, 78, 21, 15},
+      {237, 89, 197, 69, 0}
+    },
+    { {32, 136, 108, 197, 14},
+      {40, 17, 117, 12, 14},
+      {122, 51, 97, 16, 4},
+      {115, 10, 232, 129, 4}
+    },
+    { {26, 153, 204, 140, 14},
+      {106, 187, 85, 1, 10},
+      {115, 19, 57, 149, 8},
+      {88, 10, 173, 213, 6}
+    },
+    { {136, 165, 101, 91, 1},
+      {55, 35, 144, 46, 5},
+      {141, 170, 106, 81, 1},
+      {167, 64, 156, 78, 12}
+    },
+    { {214, 247, 236, 2, 5},
+      {229, 143, 92, 163, 5},
+      {164, 3, 126, 246, 11},
+      {172, 83, 175, 26, 7}
+    },
+    { {244, 246, 145, 8, 4},
+      {209, 172, 120, 178, 0},
+      {33, 8, 150, 242, 15},
+      {4, 209, 227, 88, 11}
+    },
+    { {76, 10, 202, 63, 5},
+      {174, 224, 206, 132, 9},
+      {175, 197, 53, 3, 2},
+      {146, 23, 48, 119, 5}
+    },
+    { {31, 5, 164, 12, 7},
+      {142, 187, 64, 97, 4},
+      {227, 2, 90, 15, 8},
+      {40, 96, 45, 215, 1}
+    },
+    { {250, 93, 132, 124, 6},
+      {74, 191, 226, 171, 8},
+      {99, 226, 27, 165, 15},
+      {29, 84, 127, 213, 2}
+    },
+    { {19, 29, 173, 215, 12},
+      {88, 139, 197, 109, 15},
+      {62, 187, 91, 140, 8},
+      {251, 106, 61, 17, 10}
+    },
+    { {195, 96, 214, 57, 15},
+      {37, 245, 195, 215, 0},
+      {249, 198, 176, 108, 3},
+      {14, 188, 58, 250, 4}
+    },
+    { {126, 199, 122, 149, 3},
+      {174, 94, 188, 181, 6},
+      {202, 149, 238, 55, 14},
+      {106, 211, 215, 167, 5}
+    },
+    { {45, 212, 161, 248, 1},
+      {214, 164, 178, 104, 6},
+      {129, 248, 82, 187, 4},
+      {97, 100, 210, 86, 11}
+    },
+    { {196, 27, 169, 22, 11},
+      {220, 146, 141, 130, 13},
+      {214, 137, 93, 130, 3},
+      {180, 27, 20, 147, 11}
+    },
+    { {174, 83, 48, 32, 14},
+      {194, 22, 107, 19, 4},
+      {112, 64, 204, 167, 5},
+      {44, 141, 102, 132, 3}
+    },
+    { {137, 195, 118, 107, 2},
+      {34, 119, 26, 94, 5},
+      {77, 102, 236, 57, 1},
+      {167, 165, 142, 228, 4}
+    },
+    { {17, 167, 104, 69, 2},
+      {41, 26, 28, 108, 4},
+      {74, 33, 110, 88, 8},
+      {35, 99, 133, 137, 4}
+    },
+    { {115, 24, 54, 184, 10},
+      {64, 121, 163, 209, 14},
+      {81, 214, 193, 140, 14},
+      {120, 188, 89, 224, 2}
+    },
+    { {152, 195, 136, 238, 2},
+      {10, 190, 30, 10, 3},
+      {71, 113, 28, 49, 9},
+      {197, 7, 135, 213, 0}
+    },
+    { {50, 158, 254, 117, 6},
+      {104, 217, 254, 61, 12},
+      {106, 231, 247, 148, 12},
+      {59, 199, 249, 177, 6}
+    },
+    { {235, 41, 103, 213, 2},
+      {59, 83, 160, 207, 14},
+      {74, 190, 105, 77, 7},
+      {127, 48, 92, 173, 12}
+    },
+    { {118, 246, 246, 147, 13},
+      {229, 205, 249, 181, 7},
+      {188, 150, 246, 246, 14},
+      {234, 217, 251, 58, 7}
+    },
+    { {75, 54, 229, 94, 10},
+      {123, 177, 137, 233, 5},
+      {87, 170, 118, 205, 2},
+      {169, 121, 24, 221, 14}
+    },
+    { {18, 100, 241, 41, 15},
+      {53, 188, 67, 53, 4},
+      {249, 72, 242, 100, 8},
+      {42, 204, 35, 218, 12}
+    },
+    { {195, 216, 179, 216, 12},
+      {80, 228, 209, 219, 14},
+      {49, 188, 209, 188, 3},
+      {125, 184, 178, 112, 10}
+    },
+    { {184, 252, 222, 50, 9},
+      {103, 205, 183, 50, 9},
+      {148, 199, 179, 241, 13},
+      {148, 206, 219, 62, 6}
+    },
+    { {53, 97, 247, 116, 12},
+      {185, 207, 227, 88, 4},
+      {50, 238, 248, 106, 12},
+      {33, 172, 127, 57, 13}
+    },
+    { {116, 255, 31, 22, 6},
+      {217, 95, 252, 176, 9},
+      {102, 143, 143, 242, 14},
+      {144, 211, 255, 169, 11}
+    },
+    { {29, 80, 232, 123, 6},
+      {226, 188, 198, 76, 5},
+      {109, 225, 112, 171, 8},
+      {163, 38, 51, 212, 7}
+    },
+    { {71, 201, 216, 44, 9},
+      {172, 166, 23, 209, 8},
+      {147, 65, 185, 62, 2},
+      {24, 190, 134, 83, 5}
+    },
+    { {198, 131, 135, 46, 9},
+      {156, 227, 27, 131, 1},
+      {151, 78, 28, 22, 3},
+      {140, 29, 140, 115, 9}
+    },
+    { {182, 245, 65, 140, 14},
+      {249, 62, 113, 35, 2},
+      {115, 24, 42, 246, 13},
+      {76, 72, 231, 201, 15}
+    },
+    { {209, 45, 250, 27, 10},
+      {33, 250, 133, 246, 13},
+      {93, 133, 251, 72, 11},
+      {182, 250, 21, 248, 4}
+    },
+    { {123, 222, 164, 209, 14},
+      {66, 157, 249, 237, 14},
+      {120, 178, 87, 189, 14},
+      {123, 121, 251, 148, 2}
+    },
+    { {148, 215, 11, 206, 8},
+      {216, 110, 29, 42, 3},
+      {23, 61, 14, 178, 9},
+      {197, 75, 135, 97, 11}
+    },
+    { {139, 161, 235, 181, 10},
+      {59, 210, 151, 71, 6},
+      {90, 221, 120, 93, 1},
+      {110, 46, 148, 189, 12}
+    },
+    { {2, 76, 23, 111, 5},
+      {28, 101, 66, 61, 9},
+      {175, 110, 131, 36, 0},
+      {155, 196, 42, 99, 8}
+    },
+    { {54, 104, 158, 115, 11},
+      {133, 221, 167, 29, 9},
+      {220, 231, 145, 102, 12},
+      {155, 142, 91, 186, 1}
+    },
+    { {208, 33, 104, 228, 4},
+      {41, 10, 70, 138, 6},
+      {34, 113, 104, 64, 11},
+      {101, 22, 37, 9, 4}
+    },
+    { {155, 143, 16, 45, 14},
+      {10, 58, 91, 119, 8},
+      {123, 64, 143, 29, 9},
+      {30, 237, 165, 197, 0}
+    },
+    { {126, 132, 92, 39, 11},
+      {174, 25, 55, 181, 1},
+      {222, 67, 162, 23, 14},
+      {138, 222, 201, 135, 5}
+    },
+    { {118, 223, 8, 118, 12},
+      {200, 14, 255, 169, 9},
+      {54, 225, 15, 182, 14},
+      {153, 95, 247, 1, 3}
+    },
+    { {251, 188, 21, 149, 7},
+      {95, 25, 240, 247, 10},
+      {234, 154, 131, 221, 15},
+      {94, 240, 249, 143, 10}
+    },
+    { {70, 128, 175, 59, 2},
+      {144, 241, 150, 133, 5},
+      {77, 207, 80, 22, 2},
+      {170, 22, 152, 240, 9}
+    },
+    { {209, 94, 13, 85, 9},
+      {92, 13, 141, 238, 8},
+      {154, 171, 7, 168, 11},
+      {23, 123, 27, 3, 10}
+    },
+    { {140, 34, 108, 129, 4},
+      {163, 1, 76, 6, 6},
+      {40, 19, 100, 67, 1},
+      {102, 3, 40, 12, 5}
+    },
+    { {118, 43, 180, 156, 1},
+      {141, 171, 168, 145, 14},
+      {131, 146, 221, 70, 14},
+      {120, 145, 93, 91, 1}
+    },
+    { {115, 86, 122, 41, 0},
+      {96, 108, 46, 245, 4},
+      {9, 69, 230, 172, 14},
+      {42, 247, 67, 96, 6}
+    },
+    { {65, 92, 222, 11, 1},
+      {100, 229, 4, 244, 9},
+      {141, 7, 179, 168, 2},
+      {146, 242, 10, 114, 6}
+    },
+    { {9, 152, 244, 128, 11},
+      {102, 145, 17, 80, 14},
+      {208, 18, 241, 153, 0},
+      {112, 168, 136, 150, 6}
+    },
+    { {227, 53, 25, 14, 13},
+      {93, 34, 101, 243, 1},
+      {183, 9, 138, 204, 7},
+      {140, 250, 100, 75, 10}
+    },
+    { {54, 133, 243, 244, 3},
+      {188, 218, 178, 57, 6},
+      {194, 252, 250, 22, 12},
+      {105, 196, 213, 179, 13}
+    },
+    { {149, 140, 227, 231, 8},
+      {184, 200, 19, 110, 15},
+      {30, 124, 115, 26, 9},
+      {247, 108, 129, 49, 13}
+    },
+    { {119, 22, 87, 104, 15},
+      {244, 121, 107, 249, 0},
+      {241, 110, 166, 142, 14},
+      {9, 253, 105, 226, 15}
+    },
+    { {192, 211, 150, 95, 4},
+      {72, 231, 216, 158, 1},
+      {47, 166, 156, 176, 3},
+      {135, 145, 190, 113, 2}
+    },
+    { {212, 159, 135, 115, 2},
+      {208, 219, 154, 174, 9},
+      {76, 238, 31, 146, 11},
+      {151, 85, 157, 176, 11}
+    },
+    { {69, 191, 48, 71, 8},
+      {201, 2, 25, 252, 13},
+      {30, 32, 207, 218, 2},
+      {179, 249, 132, 9, 3}
+    },
+    { {178, 247, 139, 151, 9},
+      {93, 206, 189, 39, 3},
+      {158, 157, 30, 244, 13},
+      {206, 75, 215, 59, 10}
+    },
+    { {182, 81, 172, 193, 7},
+      {196, 159, 100, 15, 6},
+      {232, 51, 88, 166, 13},
+      {111, 2, 111, 146, 3}
+    },
+    { {18, 188, 225, 89, 10},
+      {113, 184, 145, 45, 12},
+      {89, 168, 115, 212, 8},
+      {59, 72, 145, 216, 14}
+    },
+    { {142, 109, 66, 22, 5},
+      {175, 70, 192, 35, 9},
+      {166, 132, 43, 103, 1},
+      {156, 64, 54, 47, 5}
+    },
+    { {247, 219, 218, 17, 6},
+      {224, 222, 252, 215, 8},
+      {104, 133, 189, 190, 15},
+      {30, 179, 247, 176, 7}
+    },
+    { {95, 40, 2, 124, 14},
+      {139, 120, 195, 201, 8},
+      {115, 228, 1, 79, 10},
+      {25, 60, 49, 237, 1}
+    },
+    { {2, 18, 169, 157, 14},
+      {88, 176, 205, 5, 6},
+      {123, 153, 84, 132, 0},
+      {106, 11, 48, 209, 10}
+    },
+    { {191, 254, 168, 18, 10},
+      {195, 156, 189, 99, 13},
+      {84, 129, 87, 255, 13},
+      {188, 107, 211, 156, 3}
+    },
+    { {186, 49, 92, 161, 1},
+      {103, 11, 38, 23, 2},
+      {136, 83, 168, 197, 13},
+      {78, 134, 77, 14, 6}
+    },
+    { {7, 242, 225, 29, 7},
+      {253, 180, 216, 69, 4},
+      {235, 136, 116, 254, 0},
+      {42, 33, 178, 219, 15}
+    },
+    { {234, 79, 43, 164, 13},
+      {30, 70, 111, 163, 14},
+      {178, 93, 79, 37, 7},
+      {124, 95, 102, 39, 8}
+    },
+    { {165, 190, 34, 214, 12},
+      {201, 64, 249, 106, 15},
+      {54, 180, 71, 218, 5},
+      {245, 105, 240, 41, 3}
+    },
+    { {241, 169, 225, 184, 14},
+      {49, 186, 243, 194, 14},
+      {113, 216, 121, 88, 15},
+      {116, 60, 245, 216, 12}
+    },
+    { {202, 168, 155, 183, 7},
+      {31, 208, 214, 151, 11},
+      {238, 221, 145, 85, 3},
+      {222, 150, 176, 191, 8}
+    },
+    { {84, 134, 196, 245, 2},
+      {168, 153, 154, 172, 2},
+      {74, 242, 54, 18, 10},
+      {67, 85, 153, 145, 5}
+    },
+    { {53, 121, 76, 30, 4},
+      {233, 47, 228, 64, 9},
+      {39, 131, 41, 234, 12},
+      {144, 34, 127, 73, 7}
+    },
+    { {110, 216, 72, 137, 8},
+      {226, 36, 53, 133, 10},
+      {25, 17, 33, 183, 6},
+      {90, 26, 194, 68, 7}
+    },
+    { {186, 232, 137, 103, 6},
+      {27, 156, 118, 15, 9},
+      {110, 105, 17, 117, 13},
+      {159, 6, 227, 157, 8}
+    },
+    { {148, 192, 40, 189, 0},
+      {136, 44, 150, 6, 6},
+      {11, 209, 64, 50, 9},
+      {102, 6, 147, 65, 1}
+    },
+    { {115, 76, 162, 183, 6},
+      {8, 220, 226, 229, 15},
+      {110, 212, 83, 44, 14},
+      {250, 116, 115, 177, 0}
+    },
+    { {47, 241, 60, 122, 11},
+      {199, 55, 183, 89, 5},
+      {213, 227, 200, 255, 4},
+      {169, 174, 222, 206, 3}
+    },
+    { {204, 2, 99, 100, 7},
+      {190, 80, 74, 138, 4},
+      {226, 108, 100, 3, 3},
+      {37, 21, 32, 167, 13}
+    },
+    { {222, 144, 69, 41, 2},
+      {242, 57, 18, 135, 0},
+      {73, 74, 32, 151, 11},
+      {14, 20, 137, 196, 15}
+    },
+    { {2, 43, 108, 122, 15},
+      {37, 51, 207, 9, 13},
+      {245, 227, 109, 68, 0},
+      {185, 15, 60, 202, 4}
+    },
+    { {64, 75, 24, 30, 13},
+      {12, 38, 205, 144, 9},
+      {183, 129, 141, 32, 2},
+      {144, 155, 54, 67, 0}
+    },
+    { {44, 49, 42, 198, 5},
+      {207, 66, 100, 8, 7},
+      {166, 53, 72, 195, 4},
+      {225, 2, 100, 47, 3}
+    },
+    { {191, 189, 15, 65, 6},
+      {211, 91, 116, 111, 8},
+      {104, 47, 11, 223, 13},
+      {31, 98, 237, 172, 11}
+    },
+    { {232, 58, 99, 203, 12},
+      {115, 96, 105, 142, 15},
+      {61, 60, 101, 193, 7},
+      {247, 25, 96, 108, 14}
+    },
+    { {231, 89, 156, 35, 2},
+      {192, 151, 38, 215, 9},
+      {76, 67, 153, 174, 7},
+      {158, 182, 78, 144, 3}
+    },
+    { {255, 230, 113, 141, 6},
+      {187, 60, 120, 247, 6},
+      {107, 24, 230, 127, 15},
+      {110, 241, 227, 205, 13}
+    },
+    { {197, 136, 65, 238, 2},
+      {184, 48, 18, 202, 11},
+      {71, 120, 33, 26, 3},
+      {213, 52, 128, 193, 13}
+    },
+    { {171, 180, 217, 16, 2},
+      {115, 144, 180, 115, 0},
+      {64, 137, 178, 221, 5},
+      {12, 226, 208, 156, 14}
+    },
+    { {10, 23, 123, 120, 4},
+      {114, 98, 206, 57, 4},
+      {33, 237, 238, 133, 0},
+      {41, 199, 52, 100, 14}
+    },
+    { {78, 123, 115, 156, 14},
+      {251, 118, 201, 145, 14},
+      {115, 156, 237, 231, 2},
+      {120, 153, 54, 237, 15}
+    },
+    { {34, 227, 251, 26, 1},
+      {53, 230, 188, 17, 5},
+      {133, 141, 252, 116, 4},
+      {168, 131, 214, 122, 12}
+    },
+    { {54, 93, 186, 61, 2},
+      {200, 254, 166, 53, 12},
+      {75, 197, 219, 166, 12},
+      {58, 198, 87, 241, 3}
+    },
+    { {59, 220, 189, 56, 4},
+      {82, 173, 246, 113, 12},
+      {33, 203, 211, 189, 12},
+      {56, 230, 251, 84, 10}
+    },
+    { {200, 199, 188, 19, 5},
+      {6, 135, 220, 182, 5},
+      {172, 131, 222, 49, 3},
+      {166, 211, 190, 22, 0}
+    },
+    { {91, 16, 250, 200, 6},
+      {98, 248, 68, 217, 6},
+      {97, 53, 240, 141, 10},
+      {105, 178, 33, 244, 6}
+    },
+    { {208, 249, 92, 92, 11},
+      {109, 63, 149, 154, 8},
+      {211, 163, 169, 240, 11},
+      {21, 154, 159, 203, 6}
+    },
+    { {153, 6, 142, 77, 7},
+      {14, 249, 76, 110, 0},
+      {235, 39, 22, 9, 9},
+      {7, 99, 41, 247, 0}
+    },
+    { {200, 39, 17, 208, 2},
+      {19, 18, 136, 186, 2},
+      {64, 184, 142, 65, 3},
+      {69, 209, 20, 140, 8}
+    },
+    { {164, 84, 34, 73, 9},
+      {196, 100, 33, 46, 4},
+      {153, 36, 66, 162, 5},
+      {39, 72, 66, 98, 3}
+    },
+    { {169, 103, 185, 198, 3},
+      {31, 150, 44, 122, 7},
+      {198, 57, 222, 105, 5},
+      {229, 227, 70, 159, 8}
+    },
+    { {227, 227, 61, 193, 6},
+      {17, 23, 124, 223, 6},
+      {104, 59, 204, 124, 7},
+      {111, 179, 238, 136, 8}
+    },
+    { {242, 227, 250, 36, 6},
+      {41, 222, 126, 147, 4},
+      {98, 69, 252, 116, 15},
+      {44, 151, 231, 185, 4}
+    },
+    { {171, 214, 110, 194, 10},
+      {98, 85, 61, 107, 7},
+      {84, 55, 102, 189, 5},
+      {237, 107, 202, 164, 6}
+    },
+    { {150, 166, 172, 174, 12},
+      {137, 169, 95, 35, 7},
+      {55, 83, 86, 86, 9},
+      {236, 79, 169, 89, 1}
+    },
+    { {17, 94, 218, 37, 15},
+      {108, 220, 79, 116, 8},
+      {250, 69, 183, 168, 8},
+      {18, 239, 35, 179, 6}
+    },
+    { {224, 72, 217, 79, 9},
+      {60, 164, 37, 158, 9},
+      {159, 41, 177, 32, 7},
+      {151, 154, 66, 83, 12}
+    },
+    { {62, 162, 162, 69, 13},
+      {143, 200, 121, 13, 4},
+      {186, 36, 84, 87, 12},
+      {43, 9, 225, 63, 1}
+    },
+    { {147, 122, 113, 157, 10},
+      {121, 60, 137, 87, 14},
+      {91, 152, 229, 236, 9},
+      {126, 169, 19, 201, 14}
+    },
+    { {109, 101, 53, 32, 4},
+      {147, 7, 98, 240, 4},
+      {32, 74, 202, 107, 6},
+      {32, 244, 110, 12, 9}
+    },
+    { {218, 6, 151, 74, 11},
+      {22, 249, 9, 187, 1},
+      {213, 46, 150, 5, 11},
+      {141, 217, 9, 246, 8}
+    },
+    { {20, 176, 37, 32, 10},
+      {209, 25, 19, 0, 4},
+      {80, 74, 64, 210, 8},
+      {32, 12, 137, 136, 11}
+    },
+    { {122, 150, 135, 109, 5},
+      {94, 233, 122, 173, 0},
+      {171, 110, 22, 149, 14},
+      {11, 85, 233, 119, 10}
+    },
+    { {221, 120, 18, 100, 5},
+      {207, 76, 66, 218, 8},
+      {162, 100, 129, 235, 11},
+      {21, 180, 35, 47, 3}
+    },
+    { {130, 195, 122, 162, 9},
+      {36, 70, 31, 19, 7},
+      {148, 85, 236, 52, 1},
+      {236, 143, 134, 34, 4}
+    },
+    { {151, 25, 250, 15, 4},
+      {232, 234, 68, 87, 13},
+      {47, 5, 249, 142, 9},
+      {190, 162, 37, 113, 7}
+    },
+    { {58, 108, 193, 181, 7},
+      {63, 156, 226, 37, 10},
+      {234, 216, 51, 101, 12},
+      {90, 68, 115, 159, 12}
+    },
+    { {97, 33, 177, 73, 13},
+      {21, 162, 97, 220, 4},
+      {185, 40, 216, 72, 6},
+      {35, 184, 100, 90, 8}
+    },
+    { {208, 123, 6, 29, 14},
+      {73, 127, 201, 134, 8},
+      {123, 134, 13, 224, 11},
+      {22, 25, 63, 233, 2}
+    },
+    { {69, 190, 247, 38, 9},
+      {253, 193, 27, 240, 13},
+      {150, 78, 247, 218, 2},
+      {176, 253, 136, 59, 15}
+    },
+    { {157, 70, 148, 66, 4},
+      {130, 141, 72, 122, 1},
+      {36, 34, 150, 43, 9},
+      {133, 225, 43, 20, 1}
+    },
+    { {77, 251, 186, 241, 4},
+      {195, 198, 222, 220, 14},
+      {40, 245, 221, 251, 2},
+      {115, 183, 182, 60, 3}
+    },
+    { {200, 236, 99, 163, 1},
+      {55, 68, 18, 166, 15},
+      {140, 92, 99, 113, 3},
+      {246, 84, 130, 46, 12}
+    },
+    { {41, 38, 49, 96, 9},
+      {23, 0, 43, 120, 4},
+      {144, 104, 198, 73, 4},
+      {33, 237, 64, 14, 8}
+    },
+    { {34, 234, 181, 80, 10},
+      {17, 149, 185, 25, 12},
+      {80, 170, 213, 116, 4},
+      {57, 137, 218, 152, 8}
+    },
+    { {12, 83, 62, 124, 9},
+      {206, 103, 143, 24, 4},
+      {147, 231, 204, 163, 0},
+      {33, 143, 30, 103, 3}
+    },
+    { {241, 209, 122, 65, 9},
+      {100, 78, 53, 222, 4},
+      {152, 37, 232, 184, 15},
+      {39, 186, 199, 34, 6}
+    },
+    { {190, 41, 45, 21, 12},
+      {155, 11, 229, 7, 12},
+      {58, 139, 73, 71, 13},
+      {62, 10, 125, 13, 9}
+    },
+    { {173, 236, 230, 5, 15},
+      {175, 213, 113, 102, 12},
+      {250, 6, 115, 123, 5},
+      {54, 104, 234, 191, 5}
+    },
+    { {23, 198, 147, 157, 3},
+      {156, 252, 152, 117, 2},
+      {203, 156, 150, 62, 8},
+      {74, 225, 147, 243, 9}
+    },
+    { {76, 195, 212, 88, 9},
+      {166, 167, 153, 152, 0},
+      {145, 162, 188, 51, 2},
+      {1, 153, 158, 86, 5}
+    },
+    { {154, 214, 102, 33, 4},
+      {98, 77, 90, 39, 4},
+      {40, 70, 102, 181, 9},
+      {46, 69, 171, 36, 6}
+    },
+    { {19, 133, 65, 215, 3},
+      {60, 26, 144, 109, 3},
+      {206, 184, 42, 28, 8},
+      {203, 96, 149, 131, 12}
+    },
+    { {86, 15, 151, 244, 5},
+      {156, 203, 202, 185, 10},
+      {162, 254, 159, 6, 10},
+      {89, 213, 61, 51, 9}
+    },
+    { {166, 192, 165, 246, 0},
+      {152, 133, 178, 11, 7},
+      {6, 250, 80, 54, 5},
+      {237, 4, 218, 17, 9}
+    },
+    { {95, 226, 229, 89, 8},
+      {179, 173, 153, 205, 4},
+      {25, 170, 116, 127, 10},
+      {43, 57, 155, 92, 13}
+    },
+    { {67, 190, 136, 118, 5},
+      {77, 128, 222, 233, 9},
+      {166, 225, 23, 220, 2},
+      {153, 119, 176, 27, 2}
+    },
+    { {8, 144, 129, 205, 4},
+      {90, 160, 80, 12, 2},
+      {43, 56, 16, 145, 0},
+      {67, 0, 160, 85, 10}
+    },
+    { {77, 234, 23, 239, 15},
+      {159, 117, 91, 220, 11},
+      {255, 126, 133, 123, 2},
+      {211, 189, 170, 239, 9}
+    },
+    { {124, 58, 173, 18, 0},
+      {211, 137, 172, 128, 13},
+      {4, 139, 85, 195, 14},
+      {176, 19, 89, 28, 11}
+    },
+    { {67, 86, 162, 174, 9},
+      {76, 228, 11, 225, 7},
+      {151, 84, 86, 172, 2},
+      {232, 125, 2, 115, 2}
+    },
+    { {236, 183, 0, 75, 5},
+      {199, 34, 120, 174, 1},
+      {173, 32, 14, 211, 7},
+      {135, 81, 228, 78, 3}
+    },
+    { {247, 97, 178, 178, 7},
+      {133, 222, 226, 211, 7},
+      {228, 212, 216, 110, 15},
+      {236, 180, 119, 186, 1}
+    },
+    { {137, 36, 99, 124, 13},
+      {63, 96, 195, 106, 4},
+      {179, 236, 98, 73, 1},
+      {37, 108, 48, 111, 12}
+    },
+    { {114, 58, 98, 179, 1},
+      {101, 72, 170, 133, 15},
+      {140, 212, 101, 196, 14},
+      {250, 21, 81, 42, 6}
+    },
+    { {41, 180, 125, 69, 1},
+      {127, 1, 52, 124, 4},
+      {138, 43, 226, 217, 4},
+      {35, 226, 200, 15, 14}
+    },
+    { {18, 107, 239, 149, 10},
+      {57, 223, 141, 5, 14},
+      {90, 159, 125, 100, 8},
+      {122, 11, 31, 185, 12}
+    },
+    { {161, 94, 96, 121, 10},
+      {96, 52, 171, 110, 12},
+      {89, 224, 103, 168, 5},
+      {55, 109, 82, 192, 6}
+    },
+    { {126, 76, 172, 58, 13},
+      {134, 173, 231, 161, 13},
+      {181, 195, 83, 39, 14},
+      {184, 94, 123, 86, 1}
+    },
+    { {114, 142, 21, 50, 3},
+      {20, 25, 186, 177, 9},
+      {196, 202, 135, 20, 14},
+      {152, 213, 217, 130, 8}
+    },
+    { {50, 5, 228, 151, 0},
+      {40, 139, 160, 37, 7},
+      {14, 146, 122, 4, 12},
+      {234, 64, 93, 17, 4}
+    },
+    { {20, 99, 87, 142, 15},
+      {189, 127, 73, 16, 3},
+      {247, 30, 172, 98, 8},
+      {192, 137, 47, 235, 13}
+    },
+    { {70, 114, 172, 144, 8},
+      {193, 133, 141, 129, 6},
+      {16, 147, 84, 230, 2},
+      {104, 27, 26, 24, 3}
+    },
+    { {218, 88, 222, 192, 8},
+      {98, 205, 5, 155, 10},
+      {16, 55, 177, 165, 11},
+      {93, 154, 11, 52, 6}
+    },
+    { {201, 31, 228, 54, 4},
+      {106, 131, 202, 226, 13},
+      {38, 194, 127, 137, 3},
+      {180, 117, 60, 21, 6}
+    },
+    { {161, 197, 254, 154, 12},
+      {32, 231, 245, 114, 7},
+      {53, 151, 250, 56, 5},
+      {228, 234, 254, 112, 4}
+    },
+    { {247, 70, 210, 71, 7},
+      {172, 220, 104, 255, 1},
+      {238, 36, 182, 46, 15},
+      {143, 241, 99, 179, 5}
+    },
+    { {56, 73, 248, 205, 2},
+      {42, 190, 36, 28, 14},
+      {75, 49, 249, 33, 12},
+      {115, 130, 71, 213, 4}
+    },
+    { {186, 114, 36, 10, 6},
+      {67, 61, 104, 3, 5},
+      {101, 2, 68, 229, 13},
+      {172, 1, 107, 204, 2}
+    },
+    { {100, 162, 99, 127, 3},
+      {189, 112, 186, 140, 5},
+      {207, 236, 100, 82, 6},
+      {163, 21, 208, 235, 13}
+    },
+    { {132, 80, 221, 43, 3},
+      {244, 181, 6, 22, 1},
+      {205, 75, 176, 162, 1},
+      {134, 134, 10, 210, 15}
+    },
+    { {233, 134, 163, 18, 6},
+      {18, 208, 248, 226, 5},
+      {100, 140, 86, 25, 7},
+      {164, 113, 240, 180, 8}
+    },
+    { {31, 106, 10, 155, 13},
+      {135, 108, 205, 69, 11},
+      {189, 149, 5, 111, 8},
+      {218, 43, 51, 110, 1}
+    },
+    { {193, 131, 19, 193, 9},
+      {20, 66, 25, 222, 2},
+      {152, 60, 140, 24, 3},
+      {71, 185, 132, 34, 8}
+    },
+    { {68, 244, 102, 59, 11},
+      {229, 117, 147, 164, 5},
+      {221, 198, 98, 242, 2},
+      {162, 92, 154, 234, 7}
+    },
+    { {1, 157, 216, 198, 10},
+      {104, 146, 21, 120, 11},
+      {86, 49, 187, 152, 0},
+      {209, 234, 132, 145, 6}
+    },
+    { {207, 106, 252, 4, 8},
+      {171, 133, 13, 211, 12},
+      {18, 3, 245, 111, 3},
+      {60, 187, 10, 29, 5}
+    },
+    { {146, 174, 195, 5, 6},
+      {57, 216, 88, 39, 8},
+      {106, 12, 55, 84, 9},
+      {30, 65, 161, 185, 12}
+    },
+    { {37, 21, 93, 154, 5},
+      {244, 35, 228, 112, 3},
+      {165, 155, 170, 138, 4},
+      {192, 226, 124, 66, 15}
+    },
+    { {22, 10, 92, 69, 6},
+      {168, 25, 76, 29, 8},
+      {106, 35, 165, 6, 8},
+      {27, 131, 41, 129, 5}
+    },
+    { {42, 195, 144, 107, 5},
+      {6, 166, 122, 29, 1},
+      {173, 96, 156, 53, 4},
+      {139, 133, 230, 86, 0}
+    },
+    { {46, 122, 182, 246, 15},
+      {207, 213, 235, 25, 15},
+      {246, 246, 213, 231, 4},
+      {249, 141, 122, 191, 3}
+    },
+    { {158, 250, 147, 214, 12},
+      {219, 204, 217, 27, 11},
+      {54, 188, 149, 247, 9},
+      {221, 137, 179, 61, 11}
+    },
+    { {70, 52, 147, 36, 2},
+      {217, 208, 2, 177, 0},
+      {66, 76, 146, 198, 2},
+      {8, 212, 0, 185, 11}
+    },
+    { {10, 253, 84, 150, 12},
+      {107, 7, 209, 49, 11},
+      {54, 146, 171, 245, 0},
+      {216, 200, 190, 13, 6}
+    },
+    { {176, 98, 61, 37, 0},
+      {25, 13, 46, 22, 4},
+      {10, 75, 196, 96, 13},
+      {38, 135, 75, 9, 8}
+    },
+    { {145, 210, 194, 45, 8},
+      {104, 236, 27, 70, 0},
+      {27, 68, 52, 184, 9},
+      {6, 45, 131, 113, 6}
+    },
+    { {180, 12, 140, 215, 2},
+      {136, 153, 164, 46, 11},
+      {78, 179, 19, 2, 13},
+      {215, 66, 89, 145, 1}
+    },
+    { {159, 137, 21, 197, 9},
+      {158, 11, 17, 95, 10},
+      {154, 58, 137, 31, 9},
+      {95, 168, 141, 7, 9}
+    },
+    { {231, 171, 31, 92, 9},
+      {157, 99, 189, 219, 8},
+      {147, 175, 141, 94, 7},
+      {29, 187, 220, 107, 9}
+    },
+    { {64, 95, 208, 111, 7},
+      {108, 182, 74, 188, 9},
+      {239, 96, 191, 160, 2},
+      {147, 213, 38, 211, 6}
+    },
+    { {107, 30, 197, 224, 6},
+      {114, 145, 106, 233, 10},
+      {96, 122, 55, 141, 6},
+      {89, 117, 104, 148, 14}
+    },
+    { {172, 27, 229, 165, 10},
+      {250, 147, 43, 6, 14},
+      {90, 90, 125, 131, 5},
+      {118, 13, 76, 149, 15}
+    },
+    { {230, 47, 3, 108, 10},
+      {153, 114, 43, 171, 8},
+      {83, 108, 15, 70, 7},
+      {29, 93, 68, 233, 9}
+    },
+    { {127, 229, 102, 248, 8},
+      {163, 111, 179, 233, 6},
+      {17, 246, 106, 127, 14},
+      {105, 124, 223, 108, 5}
+    },
+    { {163, 194, 62, 50, 14},
+      {0, 85, 255, 83, 5},
+      {116, 199, 196, 60, 5},
+      {172, 175, 250, 160, 0}
+    },
+    { {148, 62, 117, 118, 6},
+      {249, 25, 202, 58, 13},
+      {102, 234, 231, 194, 9},
+      {181, 197, 57, 137, 15}
+    },
+    { {52, 186, 30, 90, 15},
+      {197, 121, 253, 24, 9},
+      {245, 167, 133, 210, 12},
+      {145, 139, 249, 234, 3}
+    },
+    { {3, 165, 18, 156, 11},
+      {13, 114, 145, 113, 2},
+      {211, 148, 138, 92, 0},
+      {72, 232, 148, 235, 0}
+    },
+    { {37, 82, 144, 131, 7},
+      {196, 148, 104, 84, 3},
+      {236, 16, 148, 170, 4},
+      {194, 161, 98, 146, 3}
+    },
+    { {152, 56, 107, 83, 15},
+      {119, 88, 197, 14, 13},
+      {252, 173, 97, 193, 9},
+      {183, 10, 49, 174, 14}
+    },
+    { {81, 8, 229, 57, 2},
+      {48, 185, 130, 196, 12},
+      {73, 202, 113, 8, 10},
+      {50, 52, 25, 208, 12}
+    },
+    { {109, 47, 236, 46, 14},
+      {171, 179, 111, 224, 13},
+      {119, 67, 127, 75, 6},
+      {176, 127, 108, 221, 5}
+    },
+    { {82, 188, 16, 202, 10},
+      {65, 56, 17, 185, 11},
+      {85, 48, 131, 212, 10},
+      {217, 216, 129, 200, 2}
+    },
+    { {179, 40, 54, 67, 10},
+      {1, 89, 33, 95, 13},
+      {92, 38, 193, 76, 13},
+      {191, 168, 73, 168, 0}
+    },
+    { {119, 53, 50, 215, 6},
+      {201, 90, 224, 253, 7},
+      {110, 180, 202, 206, 14},
+      {235, 240, 117, 169, 3}
+    },
+    { {60, 107, 123, 81, 7},
+      {183, 94, 236, 28, 12},
+      {232, 173, 237, 99, 12},
+      {51, 131, 119, 174, 13}
+    },
+    { {58, 210, 85, 76, 8},
+      {122, 45, 57, 25, 0},
+      {19, 42, 164, 181, 12},
+      {9, 137, 203, 69, 14}
+    },
+    { {121, 133, 192, 110, 10},
+      {42, 186, 51, 232, 1},
+      {87, 96, 58, 25, 14},
+      {129, 124, 197, 213, 4}
+    },
+    { {197, 187, 154, 199, 7},
+      {205, 210, 92, 222, 11},
+      {238, 53, 157, 218, 3},
+      {215, 179, 164, 187, 3}
+    },
+    { {12, 197, 122, 240, 11},
+      {166, 86, 151, 56, 6},
+      {208, 245, 234, 51, 0},
+      {97, 206, 150, 166, 5}
+    },
+    { {248, 208, 240, 214, 2},
+      {106, 156, 176, 154, 7},
+      {70, 176, 240, 177, 15},
+      {229, 144, 211, 149, 6}
+    },
+    { {129, 63, 211, 226, 11},
+      {117, 210, 11, 122, 11},
+      {212, 124, 191, 200, 1},
+      {213, 237, 4, 186, 14}
+    },
+    { {13, 236, 216, 183, 12},
+      {171, 132, 215, 116, 11},
+      {62, 209, 179, 123, 0},
+      {210, 238, 178, 29, 5}
+    },
+    { {27, 74, 227, 19, 2},
+      {50, 220, 136, 69, 13},
+      {76, 140, 117, 45, 8},
+      {186, 33, 19, 180, 12}
+    },
+    { {210, 32, 64, 67, 5},
+      {37, 8, 64, 143, 1},
+      {172, 32, 32, 68, 11},
+      {143, 16, 33, 10, 4}
+    },
+    { {20, 134, 143, 224, 4},
+      {144, 201, 94, 40, 2},
+      {32, 127, 22, 18, 8},
+      {65, 71, 169, 48, 9}
+    },
+    { {129, 156, 58, 252, 10},
+      {72, 112, 151, 122, 14},
+      {83, 245, 195, 152, 1},
+      {117, 238, 144, 225, 2}
+    },
+    { {69, 204, 88, 112, 14},
+      {160, 20, 215, 248, 8},
+      {112, 225, 163, 58, 2},
+      {17, 254, 178, 128, 5}
+    },
+    { {85, 209, 44, 27, 7},
+      {196, 63, 212, 196, 5},
+      {237, 131, 72, 186, 10},
+      {162, 50, 191, 194, 3}
+    },
+    { {124, 82, 159, 25, 14},
+      {210, 253, 237, 148, 0},
+      {121, 143, 148, 163, 14},
+      {2, 155, 123, 244, 11}
+    },
+    { {112, 145, 54, 145, 1},
+      {68, 75, 176, 148, 6},
+      {136, 150, 200, 144, 14},
+      {98, 144, 221, 34, 2}
+    },
+    { {252, 90, 66, 132, 10},
+      {234, 92, 41, 130, 10},
+      {82, 20, 37, 163, 15},
+      {84, 25, 67, 165, 7}
+    },
+    { {87, 151, 148, 193, 3},
+      {196, 155, 24, 253, 2},
+      {200, 50, 158, 158, 10},
+      {75, 241, 141, 146, 3}
+    },
+    { {165, 209, 196, 248, 2},
+      {224, 183, 178, 74, 2},
+      {65, 242, 56, 186, 5},
+      {69, 36, 222, 208, 7}
+    },
+    { {129, 60, 188, 144, 8},
+      {65, 129, 133, 114, 14},
+      {16, 147, 211, 200, 1},
+      {116, 234, 24, 24, 2}
+    },
+    { {9, 113, 70, 213, 3},
+      {111, 87, 128, 76, 2},
+      {202, 182, 40, 233, 0},
+      {67, 32, 30, 175, 6}
+    },
+    { {106, 207, 210, 216, 5},
+      {38, 230, 248, 185, 10},
+      {161, 180, 191, 53, 6},
+      {89, 209, 246, 118, 4}
+    },
+    { {115, 244, 119, 116, 9},
+      {125, 77, 179, 249, 4},
+      {146, 238, 226, 252, 14},
+      {41, 252, 219, 43, 14}
+    },
+    { {245, 157, 172, 185, 10},
+      {192, 187, 183, 230, 14},
+      {89, 211, 91, 154, 15},
+      {118, 126, 221, 208, 3}
+    },
+    { {202, 249, 118, 232, 4},
+      {99, 103, 82, 155, 14},
+      {33, 118, 233, 245, 3},
+      {125, 148, 174, 108, 6}
+    },
+    { {145, 223, 213, 147, 14},
+      {112, 159, 217, 118, 11},
+      {124, 154, 191, 184, 9},
+      {214, 233, 191, 144, 14}
+    },
+    { {151, 224, 139, 96, 13},
+      {149, 204, 87, 75, 0},
+      {176, 109, 16, 126, 9},
+      {13, 46, 163, 58, 9}
+    },
+    { {171, 24, 195, 41, 7},
+      {118, 240, 98, 71, 8},
+      {233, 76, 49, 141, 5},
+      {30, 36, 96, 246, 14}
+    },
+    { {12, 117, 233, 207, 4},
+      {251, 166, 68, 44, 7},
+      {47, 57, 122, 227, 0},
+      {227, 66, 38, 93, 15}
+    },
+    { {18, 88, 90, 126, 11},
+      {108, 124, 135, 25, 9},
+      {215, 229, 161, 164, 8},
+      {153, 142, 19, 227, 6}
+    },
+    { {226, 61, 82, 49, 9},
+      {101, 66, 163, 183, 8},
+      {152, 196, 171, 196, 7},
+      {30, 220, 84, 42, 6}
+    },
+    { {148, 62, 206, 46, 10},
+      {233, 249, 15, 34, 9},
+      {87, 71, 55, 194, 9},
+      {148, 79, 9, 249, 7}
+    },
+    { {77, 128, 42, 254, 11},
+      {142, 112, 151, 200, 7},
+      {215, 245, 64, 27, 2},
+      {225, 62, 144, 231, 1}
+    },
+    { {99, 222, 29, 74, 1},
+      {84, 37, 60, 249, 9},
+      {133, 43, 135, 188, 6},
+      {153, 243, 202, 66, 10}
+    },
+    { {234, 149, 240, 24, 8},
+      {98, 162, 177, 179, 4},
+      {17, 128, 250, 149, 7},
+      {44, 216, 212, 84, 6}
+    },
+    { {20, 204, 99, 128, 10},
+      {176, 92, 17, 32, 14},
+      {80, 28, 99, 50, 8},
+      {112, 72, 131, 160, 13}
+    },
+    { {200, 176, 49, 75, 15},
+      {87, 48, 81, 158, 5},
+      {253, 40, 192, 209, 3},
+      {167, 152, 160, 206, 10}
+    },
+    { {158, 5, 82, 110, 15},
+      {174, 122, 67, 59, 1},
+      {247, 100, 170, 7, 9},
+      {141, 204, 37, 231, 5}
+    },
+    { {90, 49, 246, 81, 3},
+      {103, 219, 128, 157, 4},
+      {200, 166, 248, 197, 10},
+      {43, 144, 29, 190, 6}
+    },
+    { {2, 64, 141, 174, 9},
+      {28, 165, 7, 1, 3},
+      {151, 91, 16, 36, 0},
+      {200, 14, 10, 83, 8}
+    },
+    { {3, 39, 204, 189, 6},
+      {41, 179, 206, 101, 2},
+      {107, 211, 62, 76, 0},
+      {74, 103, 60, 217, 4}
+    },
+    { {57, 199, 200, 136, 5},
+      {38, 174, 124, 96, 2},
+      {161, 17, 62, 57, 12},
+      {64, 99, 231, 86, 4}
+    },
+    { {29, 241, 95, 61, 5},
+      {255, 111, 214, 84, 0},
+      {171, 207, 168, 251, 8},
+      {2, 166, 191, 111, 15}
+    },
+    { {53, 248, 87, 146, 8},
+      {241, 77, 177, 80, 11},
+      {20, 158, 161, 250, 12},
+      {208, 168, 219, 40, 15}
+    },
+    { {246, 170, 194, 38, 15},
+      {173, 216, 123, 131, 9},
+      {246, 68, 53, 86, 15},
+      {156, 29, 225, 187, 5}
+    },
+    { {231, 224, 91, 154, 9},
+      {181, 100, 181, 211, 3},
+      {149, 157, 160, 126, 7},
+      {204, 186, 210, 106, 13}
+    },
+    { {35, 84, 88, 78, 2},
+      {104, 52, 36, 121, 1},
+      {71, 33, 162, 172, 4},
+      {137, 226, 66, 193, 6}
+    },
+    { {168, 240, 123, 208, 12},
+      {115, 68, 245, 26, 6},
+      {48, 189, 224, 241, 5},
+      {101, 138, 242, 44, 14}
+    },
+    { {31, 123, 242, 62, 3},
+      {239, 254, 138, 81, 13},
+      {199, 196, 253, 239, 8},
+      {184, 165, 23, 255, 7}
+    },
+    { {166, 34, 215, 254, 13},
+      {189, 225, 235, 27, 3},
+      {183, 254, 180, 70, 5},
+      {205, 141, 120, 123, 13}
+    },
+    { {60, 224, 174, 102, 10},
+      {139, 221, 55, 8, 5},
+      {86, 103, 80, 115, 12},
+      {161, 14, 203, 189, 1}
+    },
+    { {157, 234, 252, 246, 9},
+      {175, 141, 159, 90, 15},
+      {150, 243, 245, 123, 9},
+      {245, 175, 155, 31, 5}
+    },
+    { {118, 28, 15, 110, 1},
+      {220, 105, 38, 169, 9},
+      {135, 111, 3, 134, 14},
+      {153, 86, 73, 99, 11}
+    },
+    { {23, 229, 15, 201, 12},
+      {145, 111, 85, 109, 2},
+      {57, 63, 10, 126, 8},
+      {75, 106, 175, 104, 9}
+    },
+    { {107, 215, 2, 212, 12},
+      {74, 70, 249, 233, 2},
+      {50, 180, 14, 189, 6},
+      {73, 121, 246, 37, 2}
+    },
+    { {86, 44, 136, 80, 8},
+      {129, 136, 133, 169, 8},
+      {16, 161, 19, 70, 10},
+      {25, 90, 17, 24, 1}
+    },
+    { {117, 18, 248, 29, 15},
+      {236, 184, 237, 212, 4},
+      {251, 129, 244, 138, 14},
+      {34, 187, 113, 211, 7}
+    },
+    { {126, 225, 73, 21, 0},
+      {187, 14, 180, 133, 0},
+      {10, 137, 40, 119, 14},
+      {10, 18, 215, 13, 13}
+    },
+    { {16, 118, 198, 246, 1},
+      {109, 205, 138, 40, 3},
+      {134, 246, 54, 224, 8},
+      {193, 69, 27, 59, 6}
+    },
+    { {212, 235, 35, 223, 2},
+      {153, 126, 152, 142, 15},
+      {79, 188, 77, 114, 11},
+      {247, 17, 151, 233, 9}
+    },
+    { {40, 207, 171, 134, 10},
+      {26, 214, 61, 32, 15},
+      {86, 29, 95, 49, 4},
+      {240, 75, 198, 181, 8}
+    },
+    { {172, 20, 113, 133, 3},
+      {254, 16, 32, 54, 6},
+      {202, 24, 226, 131, 5},
+      {102, 192, 64, 135, 15}
+    },
+    { {175, 152, 175, 103, 14},
+      {218, 209, 119, 79, 13},
+      {126, 111, 81, 159, 5},
+      {191, 46, 232, 181, 11}
+    },
+    { {193, 158, 114, 157, 1},
+      {108, 96, 152, 246, 14},
+      {139, 148, 231, 152, 3},
+      {118, 241, 144, 99, 6}
+    },
+    { {207, 95, 181, 152, 6},
+      {210, 183, 200, 243, 14},
+      {97, 154, 223, 175, 3},
+      {124, 241, 62, 212, 11}
+    },
+    { {213, 221, 187, 147, 2},
+      {208, 222, 148, 246, 15},
+      {76, 157, 219, 186, 11},
+      {246, 242, 151, 176, 11}
+    },
+    { {79, 134, 37, 109, 3},
+      {158, 49, 26, 237, 4},
+      {203, 106, 70, 31, 2},
+      {43, 117, 136, 199, 9}
+    },
+    { {106, 36, 71, 111, 0},
+      {59, 97, 34, 173, 1},
+      {15, 110, 34, 69, 6},
+      {139, 84, 72, 109, 12}
+    },
+    { {128, 45, 147, 26, 1},
+      {21, 226, 128, 50, 9},
+      {133, 140, 155, 64, 1},
+      {148, 192, 20, 122, 8}
+    },
+    { {29, 205, 131, 180, 9},
+      {158, 206, 147, 96, 10},
+      {146, 220, 27, 59, 8},
+      {80, 108, 151, 55, 9}
+    },
+    { {218, 134, 193, 229, 12},
+      {58, 136, 91, 175, 2},
+      {58, 120, 54, 21, 11},
+      {79, 93, 161, 21, 12}
+    },
+    { {230, 246, 109, 46, 3},
+      {253, 53, 62, 163, 5},
+      {199, 75, 102, 246, 7},
+      {172, 87, 202, 203, 15}
+    },
+    { {61, 137, 16, 149, 7},
+      {142, 26, 240, 84, 10},
+      {234, 144, 137, 27, 12},
+      {82, 160, 245, 135, 1}
+    },
+    { {210, 121, 65, 88, 12},
+      {113, 46, 193, 139, 8},
+      {49, 168, 41, 228, 11},
+      {29, 24, 55, 72, 14}
+    },
+    { {160, 175, 28, 189, 14},
+      {9, 51, 255, 54, 10},
+      {123, 211, 143, 80, 5},
+      {86, 207, 252, 201, 0}
+    },
+    { {1, 87, 110, 34, 13},
+      {100, 71, 79, 96, 5},
+      {180, 71, 110, 168, 0},
+      {160, 111, 46, 34, 6}
+    },
+    { {87, 248, 236, 245, 8},
+      {233, 141, 151, 205, 14},
+      {26, 243, 113, 254, 10},
+      {123, 62, 155, 25, 7}
+    },
+    { {106, 255, 41, 18, 1},
+      {87, 6, 188, 161, 13},
+      {132, 137, 79, 245, 6},
+      {184, 83, 214, 14, 10}
+    },
+    { {251, 33, 174, 202, 0},
+      {3, 235, 36, 203, 7},
+      {5, 55, 88, 77, 15},
+      {237, 50, 77, 124, 0}
+    },
+    { {11, 139, 189, 114, 11},
+      {22, 147, 159, 89, 13},
+      {212, 235, 221, 29, 0},
+      {185, 175, 156, 150, 8}
+    },
+    { {212, 152, 51, 194, 13},
+      {212, 72, 81, 154, 15},
+      {180, 60, 193, 146, 11},
+      {245, 152, 161, 34, 11}
+    },
+    { {225, 75, 0, 230, 14},
+      {8, 22, 107, 202, 11},
+      {118, 112, 13, 40, 7},
+      {213, 61, 102, 129, 0}
+    },
+    { {26, 95, 155, 85, 5},
+      {94, 206, 204, 61, 8},
+      {170, 173, 159, 165, 8},
+      {27, 195, 55, 55, 10}
+    },
+    { {240, 142, 136, 165, 15},
+      {12, 152, 127, 166, 10},
+      {250, 81, 23, 16, 15},
+      {86, 95, 225, 147, 0}
+    },
+    { {167, 153, 98, 167, 6},
+      {232, 82, 114, 71, 15},
+      {110, 84, 105, 158, 5},
+      {254, 36, 228, 161, 7}
+    },
+    { {117, 137, 204, 235, 6},
+      {160, 187, 118, 204, 11},
+      {109, 115, 57, 26, 14},
+      {211, 54, 237, 208, 5}
+    },
+    { {146, 223, 143, 67, 12},
+      {80, 207, 93, 47, 9},
+      {60, 47, 31, 180, 9},
+      {159, 75, 175, 48, 10}
+    },
+    { {174, 86, 155, 223, 2},
+      {218, 244, 172, 63, 3},
+      {79, 189, 150, 167, 5},
+      {207, 195, 82, 245, 11}
+    },
+    { {210, 12, 103, 74, 4},
+      {48, 105, 64, 171, 13},
+      {37, 46, 99, 4, 11},
+      {189, 80, 41, 96, 12}
+    },
+    { {40, 70, 65, 78, 7},
+      {62, 52, 104, 40, 1},
+      {231, 40, 38, 33, 4},
+      {129, 65, 98, 199, 12}
+    },
+    { {108, 201, 54, 127, 1},
+      {142, 103, 178, 156, 13},
+      {143, 230, 201, 51, 6},
+      {179, 148, 222, 103, 1}
+    },
+    { {194, 238, 156, 100, 12},
+      {9, 133, 95, 187, 8},
+      {50, 99, 151, 116, 3},
+      {29, 223, 170, 25, 0}
+    },
+    { {36, 163, 220, 7, 0},
+      {169, 131, 60, 20, 1},
+      {14, 3, 188, 82, 4},
+      {130, 131, 204, 25, 5}
+    },
+    { {41, 169, 53, 183, 11},
+      {31, 19, 179, 84, 15},
+      {222, 218, 201, 89, 4},
+      {242, 172, 220, 143, 8}
+    },
+    { {105, 9, 143, 242, 0},
+      {18, 195, 166, 200, 11},
+      {4, 255, 25, 9, 6},
+      {209, 54, 92, 52, 8}
+    },
+    { {221, 179, 45, 144, 2},
+      {211, 27, 156, 194, 6},
+      {64, 155, 76, 219, 11},
+      {100, 51, 157, 140, 11}
+    },
+    { {17, 24, 73, 168, 13},
+      {116, 40, 71, 64, 10},
+      {177, 89, 33, 136, 8},
+      {80, 46, 33, 66, 14}
+    },
+    { {182, 179, 217, 164, 5},
+      {253, 138, 126, 19, 2},
+      {162, 89, 188, 214, 13},
+      {76, 135, 229, 27, 15}
+    },
+    { {160, 207, 230, 60, 2},
+      {40, 247, 186, 34, 12},
+      {67, 198, 127, 48, 5},
+      {52, 69, 222, 241, 4}
+    },
+    { {55, 59, 166, 59, 8},
+      {193, 235, 171, 69, 13},
+      {29, 198, 93, 206, 12},
+      {186, 45, 93, 120, 3}
+    },
+    { {161, 242, 208, 206, 8},
+      {105, 164, 57, 90, 3},
+      {23, 48, 180, 248, 5},
+      {197, 169, 194, 89, 6}
+    },
+    { {86, 143, 18, 81, 15},
+      {132, 90, 217, 189, 8},
+      {248, 164, 143, 22, 10},
+      {27, 217, 181, 162, 1}
+    },
+    { {194, 231, 12, 94, 10},
+      {9, 55, 157, 171, 1},
+      {87, 163, 14, 116, 3},
+      {141, 91, 158, 201, 0}
+    },
+    { {156, 25, 191, 90, 0},
+      {210, 235, 132, 26, 13},
+      {5, 175, 217, 131, 9},
+      {181, 130, 29, 116, 11}
+    },
+    { {117, 207, 171, 65, 6},
+      {144, 222, 124, 236, 12},
+      {104, 45, 95, 58, 14},
+      {51, 115, 231, 176, 9}
+    },
+    { {126, 204, 41, 109, 0},
+      {154, 44, 54, 173, 12},
+      {11, 105, 67, 55, 14},
+      {59, 86, 195, 69, 9}
+    },
+    { {243, 91, 227, 26, 14},
+      {112, 254, 233, 195, 13},
+      {117, 140, 125, 172, 15},
+      {188, 57, 119, 240, 14}
+    },
+    { {190, 117, 133, 241, 8},
+      {211, 143, 163, 47, 2},
+      {24, 250, 26, 231, 13},
+      {79, 76, 95, 28, 11}
+    },
+    { {33, 154, 217, 93, 10},
+      {120, 176, 189, 92, 8},
+      {91, 169, 181, 152, 4},
+      {19, 171, 208, 209, 14}
+    },
+    { {187, 162, 184, 116, 12},
+      {11, 136, 255, 91, 4},
+      {50, 225, 212, 93, 13},
+      {45, 175, 241, 29, 0}
+    },
+    { {24, 170, 15, 78, 6},
+      {27, 121, 92, 8, 9},
+      {103, 47, 5, 81, 8},
+      {145, 3, 169, 237, 8}
+    },
+    { {141, 163, 255, 65, 12},
+      {179, 195, 93, 94, 4},
+      {56, 47, 252, 91, 1},
+      {39, 171, 172, 60, 13}
+    },
+    { {204, 241, 13, 15, 1},
+      {223, 39, 20, 134, 1},
+      {143, 11, 8, 243, 3},
+      {134, 18, 142, 79, 11}
+    },
+    { {15, 249, 178, 82, 13},
+      {199, 198, 209, 89, 13},
+      {180, 164, 217, 255, 0},
+      {185, 168, 182, 62, 3}
+    },
+    { {1, 159, 5, 220, 10},
+      {88, 51, 153, 104, 10},
+      {83, 186, 15, 152, 0},
+      {81, 105, 156, 193, 10}
+    },
+    { {223, 138, 224, 53, 4},
+      {170, 136, 218, 199, 12},
+      {42, 192, 117, 31, 11},
+      {62, 53, 177, 21, 5}
+    },
+    { {206, 123, 160, 13, 5},
+      {207, 166, 72, 135, 12},
+      {171, 0, 93, 231, 3},
+      {62, 17, 38, 95, 3}
+    },
+    { {217, 125, 237, 88, 6},
+      {115, 191, 196, 234, 12},
+      {97, 171, 123, 233, 11},
+      {53, 114, 63, 220, 14}
+    },
+    { {181, 147, 30, 12, 6},
+      {200, 123, 124, 82, 0},
+      {99, 7, 140, 154, 13},
+      {4, 163, 237, 225, 3}
+    },
+    { {18, 139, 154, 110, 4},
+      {8, 234, 94, 25, 9},
+      {39, 101, 157, 20, 8},
+      {153, 135, 165, 113, 0}
+    },
+    { {242, 22, 60, 166, 3},
+      {76, 25, 46, 179, 7},
+      {198, 83, 198, 132, 15},
+      {236, 215, 73, 131, 2}
+    },
+    { {232, 10, 7, 115, 7},
+      {22, 81, 234, 142, 9},
+      {236, 238, 5, 1, 7},
+      {151, 21, 120, 166, 8}
+    },
+    { {122, 115, 30, 194, 4},
+      {67, 79, 108, 153, 3},
+      {36, 55, 140, 229, 14},
+      {201, 147, 111, 44, 2}
+    },
+    { {53, 218, 126, 240, 11},
+      {228, 93, 191, 88, 14},
+      {208, 247, 229, 186, 12},
+      {113, 175, 219, 162, 7}
+    },
+    { {153, 130, 253, 45, 1},
+      {62, 169, 30, 86, 4},
+      {139, 75, 244, 25, 9},
+      {38, 167, 137, 87, 12}
+    },
+    { {223, 169, 37, 94, 13},
+      {159, 43, 209, 203, 13},
+      {183, 170, 73, 95, 11},
+      {189, 56, 189, 79, 9}
+    },
+    { {165, 30, 214, 188, 15},
+      {236, 241, 235, 114, 10},
+      {243, 214, 183, 138, 5},
+      {84, 237, 120, 243, 7}
+    },
+    { {36, 8, 213, 209, 9},
+      {180, 129, 161, 28, 10},
+      {152, 186, 177, 2, 4},
+      {83, 136, 88, 18, 13}
+    },
+    { {181, 248, 233, 45, 6},
+      {249, 188, 118, 70, 12},
+      {107, 73, 113, 250, 13},
+      {54, 38, 227, 217, 15}
+    },
+    { {145, 54, 188, 78, 0},
+      {73, 169, 12, 122, 5},
+      {7, 35, 214, 200, 9},
+      {165, 227, 9, 89, 2}
+    },
+    { {174, 88, 224, 232, 5},
+      {230, 164, 98, 11, 14},
+      {161, 112, 113, 167, 5},
+      {125, 4, 98, 86, 7}
+    },
+    { {47, 128, 197, 170, 11},
+      {182, 177, 51, 65, 3},
+      {213, 90, 48, 31, 4},
+      {200, 44, 200, 214, 13}
+    },
+    { {218, 73, 123, 17, 9},
+      {54, 78, 133, 151, 12},
+      {152, 141, 233, 37, 11},
+      {62, 154, 23, 38, 12}
+    },
+    { {162, 246, 228, 83, 14},
+      {97, 149, 249, 47, 5},
+      {124, 162, 118, 244, 5},
+      {175, 73, 250, 152, 6}
+    },
+    { {33, 39, 109, 132, 12},
+      {57, 3, 109, 96, 6},
+      {50, 27, 110, 72, 4},
+      {96, 107, 108, 9, 12}
+    },
+    { {107, 121, 40, 104, 12},
+      {67, 38, 103, 201, 12},
+      {49, 97, 73, 237, 6},
+      {57, 62, 102, 76, 2}
+    },
+    { {157, 218, 93, 177, 13},
+      {246, 13, 223, 86, 10},
+      {184, 219, 165, 187, 9},
+      {86, 175, 187, 6, 15}
+    },
+    { {47, 207, 178, 181, 5},
+      {142, 198, 250, 117, 14},
+      {170, 212, 223, 63, 4},
+      {122, 229, 246, 55, 1}
+    },
+    { {175, 32, 71, 30, 8},
+      {187, 97, 161, 67, 1},
+      {23, 142, 32, 79, 5},
+      {140, 40, 88, 109, 13}
+    },
+    { {234, 199, 75, 58, 9},
+      {54, 102, 191, 163, 1},
+      {149, 205, 46, 53, 7},
+      {140, 95, 214, 102, 12}
+    },
+    { {204, 229, 29, 252, 14},
+      {155, 55, 215, 186, 2},
+      {115, 251, 138, 115, 3},
+      {69, 222, 190, 205, 9}
+    },
+    { {97, 48, 133, 50, 1},
+      {85, 129, 162, 192, 1},
+      {132, 202, 16, 200, 6},
+      {128, 52, 88, 26, 10}
+    },
+    { {180, 146, 25, 41, 1},
+      {212, 40, 62, 22, 0},
+      {137, 73, 132, 146, 13},
+      {6, 135, 193, 66, 11}
+    },
+    { {193, 207, 189, 157, 10},
+      {24, 183, 157, 246, 14},
+      {91, 155, 223, 56, 3},
+      {118, 251, 158, 209, 8}
+    },
+    { {8, 221, 26, 54, 6},
+      {74, 86, 214, 48, 9},
+      {102, 197, 139, 177, 0},
+      {144, 198, 182, 165, 2}
+    },
+    { {120, 67, 92, 168, 15},
+      {38, 63, 111, 144, 2},
+      {241, 83, 172, 33, 14},
+      {64, 159, 111, 198, 4}
+    },
+    { {32, 220, 186, 83, 14},
+      {64, 212, 245, 60, 13},
+      {124, 165, 211, 176, 4},
+      {179, 202, 242, 176, 2}
+    },
+    { {227, 132, 165, 236, 6},
+      {24, 177, 114, 235, 6},
+      {99, 122, 82, 28, 7},
+      {109, 116, 232, 209, 8}
+    },
+    { {131, 145, 171, 122, 13},
+      {84, 226, 215, 75, 5},
+      {181, 237, 88, 156, 1},
+      {173, 46, 180, 114, 10}
+    },
+    { {114, 38, 60, 80, 11},
+      {5, 25, 173, 185, 4},
+      {208, 163, 198, 68, 14},
+      {41, 219, 89, 138, 0}
+    },
+    { {242, 174, 11, 171, 12},
+      {17, 104, 127, 167, 11},
+      {61, 93, 7, 84, 15},
+      {222, 95, 225, 104, 8}
+    },
+    { {46, 136, 9, 214, 3},
+      {158, 16, 180, 9, 11},
+      {198, 185, 1, 23, 4},
+      {217, 2, 208, 135, 9}
+    },
+    { {183, 203, 246, 151, 12},
+      {168, 207, 249, 87, 15},
+      {62, 150, 253, 62, 13},
+      {254, 169, 255, 49, 5}
+    },
+    { {49, 251, 244, 57, 14},
+      {97, 191, 251, 84, 12},
+      {121, 194, 253, 248, 12},
+      {50, 173, 255, 216, 6}
+    },
+    { {142, 199, 82, 154, 6},
+      {162, 118, 216, 51, 3},
+      {101, 148, 174, 55, 1},
+      {204, 193, 182, 228, 5}
+    },
+    { {94, 235, 242, 10, 12},
+      {163, 238, 89, 145, 13},
+      {53, 4, 253, 119, 10},
+      {184, 153, 167, 124, 5}
+    },
+    { {227, 59, 129, 212, 12},
+      {89, 130, 233, 203, 10},
+      {50, 184, 29, 204, 7},
+      {93, 57, 116, 25, 10}
+    },
+    { {172, 124, 242, 222, 10},
+      {235, 244, 161, 58, 15},
+      {87, 180, 243, 227, 5},
+      {245, 200, 82, 253, 7}
+    },
+    { {78, 1, 1, 147, 2},
+      {146, 18, 128, 133, 3},
+      {76, 152, 8, 7, 2},
+      {202, 16, 20, 132, 9}
+    },
+    { {201, 144, 131, 96, 5},
+      {86, 192, 82, 202, 0},
+      {160, 108, 16, 153, 3},
+      {5, 52, 160, 54, 10}
+    },
+    { {245, 102, 105, 160, 13},
+      {181, 12, 111, 226, 6},
+      {176, 89, 102, 106, 15},
+      {100, 127, 99, 10, 13}
+    },
+    { {44, 3, 150, 212, 14},
+      {138, 211, 233, 24, 2},
+      {114, 182, 156, 3, 4},
+      {65, 137, 124, 181, 1}
+    },
+    { {118, 193, 117, 204, 7},
+      {188, 63, 112, 153, 6},
+      {227, 58, 232, 54, 14},
+      {105, 144, 239, 195, 13}
+    },
+    { {176, 251, 83, 107, 5},
+      {117, 110, 122, 30, 9},
+      {173, 108, 173, 240, 13},
+      {151, 133, 231, 106, 14}
+    },
+    { {135, 53, 206, 169, 8},
+      {225, 227, 7, 103, 2},
+      {25, 87, 58, 206, 1},
+      {78, 110, 12, 120, 7}
+    },
+    { {231, 139, 244, 106, 11},
+      {164, 179, 59, 219, 13},
+      {213, 98, 253, 30, 7},
+      {189, 189, 204, 210, 5}
+    },
+    { {185, 178, 1, 226, 1},
+      {87, 8, 58, 74, 3},
+      {132, 120, 4, 217, 13},
+      {197, 37, 193, 14, 10}
+    },
+    { {44, 230, 244, 199, 9},
+      {175, 133, 57, 60, 7},
+      {158, 50, 246, 115, 4},
+      {227, 201, 202, 31, 5}
+    },
+    { {240, 26, 58, 172, 4},
+      {72, 104, 110, 146, 14},
+      {35, 85, 197, 128, 15},
+      {116, 151, 97, 97, 2}
+    },
+    { {107, 29, 238, 143, 4},
+      {106, 227, 100, 229, 15},
+      {47, 23, 123, 141, 6},
+      {250, 114, 108, 117, 6}
+    },
+    { {10, 99, 89, 22, 11},
+      {63, 22, 141, 17, 1},
+      {214, 137, 172, 101, 0},
+      {136, 139, 22, 143, 12}
+    },
+    { {61, 80, 237, 142, 0},
+      {250, 173, 36, 64, 7},
+      {7, 27, 112, 171, 12},
+      {224, 34, 75, 85, 15}
+    },
+    { {12, 234, 137, 42, 4},
+      {147, 164, 94, 0, 9},
+      {37, 73, 21, 115, 0},
+      {144, 7, 162, 92, 9}
+    },
+    { {146, 159, 44, 154, 3},
+      {68, 59, 156, 35, 15},
+      {197, 147, 79, 148, 9},
+      {252, 67, 157, 194, 2}
+    },
+    { {144, 185, 171, 44, 8},
+      {89, 234, 23, 2, 12},
+      {19, 77, 89, 208, 9},
+      {52, 14, 133, 121, 10}
+    },
+    { {96, 223, 140, 227, 4},
+      {64, 135, 126, 172, 11},
+      {44, 115, 31, 176, 6},
+      {211, 87, 238, 16, 2}
+    },
+    { {211, 163, 99, 9, 11},
+      {53, 122, 25, 199, 4},
+      {217, 12, 108, 92, 11},
+      {46, 57, 133, 234, 12}
+    },
+    { {37, 61, 159, 195, 3},
+      {213, 211, 36, 124, 11},
+      {204, 63, 155, 202, 4},
+      {211, 226, 76, 186, 11}
+    },
+    { {48, 25, 30, 15, 13},
+      {76, 107, 101, 20, 9},
+      {191, 7, 137, 128, 12},
+      {146, 138, 109, 99, 2}
+    },
+    { {90, 151, 28, 16, 1},
+      {70, 11, 156, 177, 0},
+      {128, 131, 142, 149, 10},
+      {8, 211, 157, 6, 2}
+    },
+    { {42, 15, 107, 51, 10},
+      {50, 82, 175, 37, 13},
+      {92, 205, 111, 5, 4},
+      {186, 79, 84, 164, 12}
+    },
+    { {106, 117, 209, 236, 0},
+      {123, 166, 34, 185, 2},
+      {3, 120, 186, 229, 6},
+      {73, 212, 70, 93, 14}
+    },
+    { {30, 157, 187, 139, 1},
+      {214, 234, 20, 53, 15},
+      {141, 29, 219, 151, 8},
+      {250, 194, 133, 118, 11}
+    },
+    { {47, 58, 225, 220, 9},
+      {255, 160, 169, 73, 14},
+      {147, 184, 117, 207, 4},
+      {121, 41, 80, 95, 15}
+    },
+    { {99, 208, 151, 52, 7},
+      {92, 213, 242, 209, 0},
+      {226, 206, 144, 188, 6},
+      {8, 180, 250, 179, 10}
+    },
+    { {216, 157, 137, 67, 7},
+      {86, 154, 84, 174, 9},
+      {236, 41, 27, 145, 11},
+      {151, 82, 165, 150, 10}
+    },
+    { {131, 189, 136, 80, 11},
+      {69, 146, 149, 107, 8},
+      {208, 161, 27, 220, 1},
+      {29, 106, 148, 154, 2}
+    },
+    { {34, 78, 125, 138, 14},
+      {48, 53, 109, 49, 15},
+      {117, 27, 231, 36, 4},
+      {248, 203, 106, 192, 12}
+    },
+    { {121, 75, 63, 158, 10},
+      {26, 127, 173, 208, 15},
+      {87, 159, 205, 41, 14},
+      {240, 187, 95, 229, 8}
+    },
+    { {141, 51, 167, 110, 15},
+      {223, 243, 75, 74, 5},
+      {247, 110, 92, 203, 1},
+      {165, 45, 44, 255, 11}
+    },
+    { {33, 133, 188, 205, 7},
+      {12, 179, 116, 124, 6},
+      {235, 51, 218, 24, 4},
+      {99, 226, 236, 211, 0}
+    },
+    { {240, 218, 227, 80, 3},
+      {116, 220, 184, 138, 12},
+      {192, 172, 117, 176, 15},
+      {53, 17, 211, 178, 14}
+    },
+    { {204, 223, 42, 42, 8},
+      {194, 102, 31, 162, 13},
+      {21, 69, 79, 179, 3},
+      {180, 95, 134, 100, 3}
+    },
+    { {56, 130, 84, 157, 1},
+      {46, 41, 184, 20, 2},
+      {139, 146, 164, 17, 12},
+      {66, 129, 217, 71, 4}
+    },
+    { {110, 45, 44, 91, 14},
+      {131, 51, 229, 173, 13},
+      {125, 163, 75, 71, 6},
+      {187, 90, 124, 204, 1}
+    },
+    { {122, 43, 200, 47, 2},
+      {43, 186, 46, 133, 9},
+      {79, 65, 61, 69, 14},
+      {154, 23, 69, 221, 4}
+    },
+    { {87, 219, 131, 112, 8},
+      {208, 206, 155, 201, 8},
+      {16, 236, 29, 190, 10},
+      {25, 61, 151, 48, 11}
+    },
+    { {201, 217, 206, 10, 6},
+      {98, 247, 84, 194, 9},
+      {101, 7, 57, 185, 3},
+      {148, 50, 174, 244, 6}
+    },
+    { {140, 81, 7, 168, 12},
+      {210, 103, 67, 2, 2},
+      {49, 94, 8, 163, 1},
+      {68, 12, 46, 100, 11}
+    },
+    { {189, 143, 171, 242, 11},
+      {150, 218, 191, 106, 15},
+      {212, 253, 95, 27, 13},
+      {245, 111, 213, 182, 9}
+    },
+    { {100, 133, 26, 10, 13},
+      {132, 98, 117, 176, 1},
+      {181, 5, 138, 18, 6},
+      {128, 218, 228, 98, 1}
+    },
+    { {220, 109, 58, 176, 4},
+      {131, 78, 198, 178, 14},
+      {32, 213, 203, 99, 11},
+      {116, 214, 55, 44, 1}
+    },
+    { {231, 251, 25, 168, 3},
+      {213, 54, 62, 211, 10},
+      {193, 89, 141, 254, 7},
+      {92, 183, 198, 202, 11}
+    },
+    { {177, 204, 84, 80, 5},
+      {36, 13, 240, 122, 8},
+      {160, 162, 163, 56, 13},
+      {21, 224, 251, 2, 4}
+    },
+    { {97, 110, 245, 148, 7},
+      {61, 149, 232, 240, 14},
+      {226, 154, 247, 104, 6},
+      {112, 241, 122, 155, 12}
+    },
+    { {147, 83, 11, 252, 1},
+      {92, 110, 142, 75, 2},
+      {131, 253, 12, 172, 9},
+      {77, 39, 23, 99, 10}
+    },
+    { {27, 41, 1, 82, 8},
+      {19, 10, 129, 73, 9},
+      {20, 168, 9, 77, 8},
+      {153, 40, 21, 12, 8}
+    },
+    { {197, 245, 7, 104, 1},
+      {213, 103, 18, 234, 0},
+      {129, 110, 10, 250, 3},
+      {5, 116, 142, 106, 11}
+    },
+    { {52, 186, 247, 153, 2},
+      {241, 249, 184, 20, 14},
+      {73, 158, 245, 210, 12},
+      {114, 129, 217, 248, 15}
+    },
+    { {169, 176, 189, 187, 13},
+      {87, 161, 247, 86, 7},
+      {189, 219, 208, 217, 5},
+      {230, 174, 248, 94, 10}
+    },
+    { {149, 57, 193, 12, 5},
+      {253, 170, 64, 66, 8},
+      {163, 8, 57, 202, 9},
+      {20, 32, 37, 91, 15}
+    },
+    { {50, 223, 204, 191, 2},
+      {104, 191, 190, 37, 11},
+      {79, 211, 63, 180, 12},
+      {218, 71, 223, 209, 6}
+    },
+    { {237, 234, 172, 111, 7},
+      {143, 181, 126, 206, 13},
+      {239, 99, 85, 123, 7},
+      {183, 55, 234, 223, 1}
+    },
+    { {77, 86, 15, 172, 10},
+      {218, 117, 15, 224, 2},
+      {83, 95, 6, 171, 2},
+      {64, 127, 10, 229, 11}
+    },
+    { {116, 172, 190, 43, 0},
+      {129, 233, 54, 180, 13},
+      {13, 71, 211, 82, 14},
+      {178, 214, 201, 120, 1}
+    },
+    { {35, 182, 120, 236, 5},
+      {109, 32, 126, 121, 6},
+      {163, 113, 230, 220, 4},
+      {105, 231, 224, 75, 6}
+    },
+    { {232, 210, 137, 53, 1},
+      {94, 132, 190, 134, 0},
+      {138, 201, 20, 177, 7},
+      {6, 23, 210, 23, 10}
+    },
+    { {235, 150, 185, 93, 6},
+      {90, 176, 252, 255, 4},
+      {107, 169, 214, 157, 7},
+      {47, 243, 240, 213, 10}
+    },
+    { {85, 145, 91, 105, 0},
+      {240, 106, 22, 220, 0},
+      {9, 109, 168, 154, 10},
+      {3, 182, 133, 96, 15}
+    },
+    { {40, 186, 189, 218, 6},
+      {83, 177, 252, 24, 15},
+      {101, 187, 213, 209, 4},
+      {241, 131, 248, 220, 10}
+    },
+    { {35, 163, 75, 130, 11},
+      {53, 82, 61, 65, 3},
+      {212, 29, 44, 92, 4},
+      {200, 43, 196, 170, 12}
+    },
+    { {193, 172, 20, 84, 10},
+      {9, 17, 145, 250, 8},
+      {82, 162, 131, 88, 3},
+      {21, 248, 152, 137, 0}
+    },
+    { {100, 182, 175, 131, 2},
+      {209, 209, 60, 164, 7},
+      {76, 31, 86, 210, 6},
+      {226, 83, 200, 184, 11}
+    },
+    { {82, 25, 155, 54, 1},
+      {92, 202, 134, 145, 9},
+      {134, 205, 153, 132, 10},
+      {152, 150, 21, 51, 10}
+    },
+    { {99, 183, 61, 54, 4},
+      {89, 3, 254, 241, 5},
+      {38, 203, 206, 220, 6},
+      {168, 247, 252, 9, 10}
+    },
+    { {192, 85, 112, 85, 8},
+      {104, 6, 129, 190, 4},
+      {26, 160, 234, 160, 3},
+      {39, 216, 22, 1, 6}
+    },
+    { {52, 181, 171, 169, 13},
+      {213, 234, 119, 36, 6},
+      {185, 93, 90, 210, 12},
+      {98, 78, 229, 122, 11}
+    },
+    { {4, 214, 173, 116, 7},
+      {220, 149, 222, 40, 4},
+      {226, 235, 86, 178, 0},
+      {33, 71, 186, 147, 11}
+    },
+    { {58, 185, 185, 47, 15},
+      {95, 186, 119, 21, 13},
+      {255, 73, 217, 213, 12},
+      {186, 142, 229, 223, 10}
+    },
+    { {30, 193, 204, 115, 3},
+      {166, 159, 150, 13, 1},
+      {204, 227, 56, 55, 8},
+      {139, 6, 159, 150, 5}
+    },
+    { {227, 95, 151, 12, 12},
+      {88, 231, 105, 243, 8},
+      {51, 14, 159, 172, 7},
+      {28, 249, 110, 113, 10}
+    },
+    { {82, 233, 202, 244, 7},
+      {45, 222, 214, 137, 10},
+      {226, 245, 57, 116, 10},
+      {89, 22, 183, 187, 4}
+    },
+    { {171, 99, 139, 22, 6},
+      {27, 214, 236, 67, 1},
+      {102, 141, 28, 109, 5},
+      {140, 35, 118, 189, 8}
+    },
+    { {138, 229, 208, 83, 7},
+      {39, 150, 208, 63, 1},
+      {236, 160, 186, 117, 1},
+      {143, 192, 182, 158, 4}
+    },
+    { {103, 173, 81, 43, 1},
+      {181, 34, 50, 245, 9},
+      {141, 72, 171, 94, 6},
+      {154, 244, 196, 74, 13}
+    },
+    { {179, 24, 122, 4, 11},
+      {108, 88, 37, 83, 12},
+      {210, 5, 225, 140, 13},
+      {60, 170, 65, 163, 6}
+    },
+    { {60, 198, 137, 195, 8},
+      {146, 140, 61, 44, 3},
+      {28, 57, 22, 51, 12},
+      {195, 75, 195, 20, 9}
+    },
+    { {250, 116, 11, 175, 7},
+      {95, 124, 102, 167, 3},
+      {239, 93, 2, 229, 15},
+      {206, 86, 99, 239, 10}
+    },
+    { {4, 250, 221, 72, 11},
+      {245, 181, 29, 24, 8},
+      {209, 43, 181, 242, 0},
+      {17, 139, 138, 218, 15}
+    },
+    { {153, 138, 132, 196, 12},
+      {10, 137, 89, 74, 10},
+      {50, 50, 21, 25, 9},
+      {85, 41, 169, 21, 0}
+    },
+    { {63, 252, 218, 241, 1},
+      {231, 204, 182, 125, 10},
+      {136, 245, 179, 255, 12},
+      {91, 230, 211, 62, 7}
+    },
+    { {148, 250, 34, 140, 9},
+      {205, 108, 25, 2, 14},
+      {147, 20, 69, 242, 9},
+      {116, 9, 131, 107, 3}
+    },
+    { {228, 237, 60, 145, 13},
+      {133, 7, 245, 182, 14},
+      {184, 147, 203, 114, 7},
+      {118, 218, 254, 10, 1}
+    },
+    { {3, 55, 138, 20, 12},
+      {73, 194, 205, 97, 0},
+      {50, 133, 30, 204, 0},
+      {8, 107, 52, 57, 2}
+    },
+    { {216, 27, 34, 208, 1},
+      {70, 74, 136, 138, 14},
+      {128, 180, 77, 129, 11},
+      {117, 17, 21, 38, 2}
+    },
+    { {25, 91, 18, 85, 10},
+      {74, 94, 137, 92, 8},
+      {90, 164, 141, 169, 8},
+      {19, 169, 23, 165, 2}
+    },
+    { {33, 72, 120, 182, 2},
+      {40, 20, 166, 80, 15},
+      {70, 209, 225, 40, 4},
+      {240, 166, 82, 129, 4}
+    },
+    { {40, 93, 236, 19, 2},
+      {98, 151, 164, 36, 13},
+      {76, 131, 123, 161, 4},
+      {178, 66, 94, 148, 6}
+    },
+    { {123, 100, 52, 77, 7},
+      {15, 61, 96, 253, 4},
+      {235, 34, 194, 109, 14},
+      {43, 240, 107, 207, 0}
+    },
+    { {98, 75, 151, 138, 7},
+      {20, 247, 104, 145, 11},
+      {229, 30, 157, 36, 6},
+      {216, 145, 110, 242, 8}
+    },
+    { {103, 119, 188, 11, 1},
+      {197, 167, 44, 245, 5},
+      {141, 3, 222, 238, 6},
+      {170, 243, 78, 90, 3}
+    },
+    { {144, 144, 113, 245, 10},
+      {120, 24, 147, 30, 6},
+      {90, 248, 224, 144, 9},
+      {103, 140, 145, 129, 14}
+    },
+    { {37, 206, 233, 123, 13},
+      {180, 164, 255, 108, 13},
+      {189, 233, 119, 58, 4},
+      {179, 111, 242, 82, 13}
+    },
+    { {253, 83, 136, 111, 13},
+      {206, 174, 111, 206, 1},
+      {191, 97, 28, 171, 15},
+      {135, 63, 103, 87, 3}
+    },
+    { {231, 105, 53, 36, 11},
+      {157, 23, 35, 211, 12},
+      {210, 74, 201, 110, 7},
+      {60, 188, 78, 139, 9}
+    },
+    { {24, 201, 137, 127, 9},
+      {30, 174, 151, 12, 9},
+      {159, 233, 25, 49, 8},
+      {147, 14, 151, 87, 8}
+    },
+    { {101, 96, 64, 176, 10},
+      {161, 20, 163, 192, 2},
+      {80, 208, 32, 106, 6},
+      {64, 60, 82, 136, 5}
+    },
+    { {56, 46, 157, 194, 13},
+      {23, 137, 109, 56, 11},
+      {180, 59, 151, 65, 12},
+      {209, 203, 105, 30, 8}
+    },
+    { {205, 242, 177, 37, 13},
+      {223, 132, 91, 214, 4},
+      {186, 72, 212, 251, 3},
+      {38, 189, 162, 31, 11}
+    },
+    { {9, 78, 179, 61, 6},
+      {26, 244, 202, 116, 12},
+      {107, 204, 215, 41, 0},
+      {50, 229, 50, 245, 8}
+    },
+    { {57, 223, 214, 61, 1},
+      {110, 239, 186, 116, 8},
+      {139, 198, 191, 185, 12},
+      {18, 229, 223, 119, 6}
+    },
+    { {249, 54, 192, 90, 7},
+      {103, 184, 232, 234, 1},
+      {229, 160, 54, 201, 15},
+      {133, 113, 113, 222, 6}
+    },
+    { {119, 243, 69, 1, 5},
+      {245, 15, 120, 197, 0},
+      {168, 10, 44, 254, 14},
+      {10, 49, 239, 10, 15}
+    },
+    { {229, 170, 108, 152, 3},
+      {165, 49, 188, 194, 14},
+      {193, 147, 101, 90, 7},
+      {116, 51, 216, 202, 5}
+    },
+    { {176, 232, 167, 19, 14},
+      {17, 221, 241, 6, 13},
+      {124, 142, 81, 112, 13},
+      {182, 8, 251, 184, 8}
+    },
+    { {221, 219, 120, 40, 6},
+      {226, 62, 94, 210, 12},
+      {97, 65, 237, 187, 11},
+      {52, 183, 167, 196, 7}
+    },
+    { {59, 9, 157, 107, 2},
+      {18, 187, 38, 93, 9},
+      {77, 107, 153, 13, 12},
+      {155, 166, 77, 212, 8}
+    },
+    { {64, 234, 217, 35, 3},
+      {53, 148, 30, 148, 9},
+      {204, 73, 181, 112, 2},
+      {146, 151, 130, 154, 12}
+    },
+    { {26, 247, 252, 44, 4},
+      {107, 175, 94, 49, 4},
+      {35, 67, 254, 245, 8},
+      {40, 199, 175, 93, 6}
+    },
+    { {60, 154, 211, 10, 11},
+      {246, 248, 57, 16, 9},
+      {213, 12, 181, 147, 12},
+      {144, 137, 193, 246, 15}
+    },
+    { {179, 6, 81, 36, 2},
+      {56, 24, 42, 115, 0},
+      {66, 72, 166, 12, 13},
+      {12, 229, 65, 129, 12}
+    },
+    { {50, 189, 243, 128, 9},
+      {117, 202, 49, 49, 14},
+      {144, 28, 251, 212, 12},
+      {120, 200, 197, 58, 14}
+    },
+    { {108, 225, 50, 82, 6},
+      {131, 86, 240, 152, 5},
+      {100, 164, 200, 115, 6},
+      {161, 144, 246, 172, 1}
+    },
+    { {87, 93, 59, 77, 8},
+      {216, 110, 5, 253, 12},
+      {27, 45, 203, 174, 10},
+      {59, 250, 7, 97, 11}
+    },
+    { {50, 250, 120, 150, 11},
+      {109, 28, 189, 17, 15},
+      {214, 145, 229, 244, 12},
+      {248, 139, 211, 139, 6}
+    },
+    { {201, 37, 74, 207, 11},
+      {47, 114, 5, 238, 3},
+      {223, 53, 42, 73, 3},
+      {199, 122, 4, 239, 4}
+    },
+    { {91, 227, 88, 153, 8},
+      {35, 46, 157, 213, 2},
+      {25, 145, 172, 125, 10},
+      {74, 187, 151, 76, 4}
+    },
+    { {162, 249, 225, 35, 2},
+      {113, 150, 50, 7, 13},
+      {76, 72, 121, 244, 5},
+      {190, 4, 198, 152, 14}
+    },
+    { {119, 181, 82, 205, 9},
+      {237, 106, 49, 253, 2},
+      {155, 52, 170, 222, 14},
+      {75, 248, 197, 107, 7}
+    },
+    { {176, 219, 205, 212, 10},
+      {120, 159, 189, 10, 10},
+      {82, 187, 61, 176, 13},
+      {85, 11, 223, 145, 14}
+    },
+    { {203, 147, 21, 157, 14},
+      {90, 51, 217, 215, 2},
+      {123, 154, 140, 157, 3},
+      {78, 185, 188, 197, 10}
+    },
+    { {126, 39, 103, 62, 11},
+      {191, 123, 171, 161, 5},
+      {215, 206, 110, 71, 14},
+      {168, 93, 93, 239, 13}
+    },
+    { {27, 68, 157, 3, 7},
+      {22, 157, 68, 117, 1},
+      {236, 11, 146, 45, 8},
+      {138, 226, 43, 150, 8}
+    },
+    { {214, 213, 57, 224, 1},
+      {212, 14, 22, 187, 6},
+      {128, 121, 202, 182, 11},
+      {109, 214, 135, 2, 11}
+    },
+    { {153, 17, 59, 93, 5},
+      {94, 106, 196, 94, 4},
+      {171, 173, 200, 137, 9},
+      {39, 162, 53, 103, 10}
+    },
+    { {237, 201, 222, 175, 0},
+      {170, 231, 54, 214, 11},
+      {15, 87, 185, 59, 7},
+      {214, 182, 206, 117, 5}
+    },
+    { {152, 79, 114, 58, 0},
+      {34, 110, 138, 50, 13},
+      {5, 196, 239, 33, 9},
+      {180, 197, 23, 100, 4}
+    },
+    { {146, 177, 194, 94, 11},
+      {109, 250, 145, 11, 1},
+      {215, 164, 56, 212, 9},
+      {141, 8, 149, 251, 6}
+    },
+    { {233, 83, 55, 170, 15},
+      {86, 119, 107, 210, 7},
+      {245, 94, 204, 169, 7},
+      {228, 189, 110, 230, 10}
+    },
+    { {184, 249, 145, 224, 11},
+      {87, 158, 51, 26, 10},
+      {208, 120, 153, 241, 13},
+      {85, 140, 199, 158, 10}
+    },
+    { {54, 190, 41, 6, 4},
+      {217, 8, 124, 33, 13},
+      {38, 9, 71, 214, 12},
+      {184, 67, 225, 9, 11}
+    },
+    { {109, 88, 75, 223, 15},
+      {254, 116, 229, 204, 11},
+      {255, 189, 33, 171, 6},
+      {211, 58, 114, 231, 15}
+    },
+    { {124, 73, 255, 32, 11},
+      {182, 223, 39, 144, 12},
+      {208, 79, 249, 35, 14},
+      {48, 158, 79, 182, 13}
+    },
+    { {204, 4, 237, 38, 9},
+      {190, 129, 7, 162, 5},
+      {150, 75, 114, 3, 3},
+      {164, 94, 8, 23, 13}
+    },
+    { {126, 191, 195, 88, 12},
+      {243, 234, 249, 169, 8},
+      {49, 172, 63, 215, 14},
+      {25, 89, 245, 124, 15}
+    },
+    { {35, 71, 74, 52, 11},
+      {44, 86, 175, 97, 0},
+      {210, 197, 46, 44, 4},
+      {8, 111, 86, 163, 4}
+    },
+    { {247, 2, 101, 153, 14},
+      {176, 57, 233, 199, 6},
+      {121, 154, 100, 14, 15},
+      {110, 57, 121, 192, 13}
+    },
+    { {183, 134, 11, 177, 9},
+      {148, 72, 191, 103, 2},
+      {152, 221, 6, 30, 13},
+      {78, 111, 209, 34, 9}
+    },
+    { {29, 237, 84, 211, 10},
+      {163, 31, 145, 124, 11},
+      {92, 178, 171, 123, 8},
+      {211, 232, 159, 140, 5}
+    },
+    { {19, 129, 28, 244, 14},
+      {8, 27, 215, 89, 2},
+      {114, 243, 136, 28, 8},
+      {73, 174, 189, 129, 0}
+    },
+    { {38, 136, 183, 166, 7},
+      {156, 209, 114, 17, 15},
+      {230, 94, 209, 22, 4},
+      {248, 132, 232, 179, 9}
+    },
+    { {218, 189, 5, 242, 12},
+      {83, 11, 211, 171, 11},
+      {52, 250, 11, 213, 11},
+      {221, 92, 189, 12, 10}
+    },
+    { {179, 196, 25, 242, 6},
+      {16, 28, 246, 123, 3},
+      {100, 249, 130, 60, 13},
+      {205, 230, 243, 128, 8}
+    },
+    { {3, 88, 126, 158, 12},
+      {104, 101, 197, 81, 15},
+      {55, 151, 225, 172, 0},
+      {248, 170, 58, 97, 6}
+    },
+    { {138, 226, 81, 223, 4},
+      {59, 36, 216, 31, 3},
+      {47, 184, 164, 117, 1},
+      {207, 129, 178, 77, 12}
+    },
+    { {116, 44, 226, 207, 6},
+      {169, 248, 96, 172, 15},
+      {111, 52, 115, 66, 14},
+      {243, 80, 97, 249, 5}
+    },
+    { {80, 87, 235, 180, 4},
+      {120, 206, 206, 160, 6},
+      {34, 221, 126, 160, 10},
+      {96, 87, 55, 49, 14}
+    },
+    { {234, 122, 109, 152, 13},
+      {119, 37, 237, 131, 14},
+      {177, 155, 101, 229, 7},
+      {124, 27, 122, 78, 14}
+    },
+    { {81, 124, 23, 242, 2},
+      {81, 93, 130, 248, 11},
+      {68, 254, 131, 232, 10},
+      {209, 244, 27, 168, 10}
+    },
+    { {116, 206, 76, 238, 0},
+      {168, 45, 62, 168, 11},
+      {7, 115, 39, 50, 14},
+      {209, 87, 203, 65, 5}
+    },
+    { {235, 112, 71, 178, 6},
+      {115, 85, 226, 195, 3},
+      {100, 222, 32, 237, 7},
+      {204, 52, 122, 172, 14}
+    },
+    { {44, 21, 121, 54, 0},
+      {250, 2, 166, 48, 5},
+      {6, 201, 234, 131, 4},
+      {160, 198, 84, 5, 15}
+    },
+    { {10, 102, 96, 115, 1},
+      {39, 4, 138, 45, 5},
+      {140, 224, 102, 101, 0},
+      {171, 69, 18, 14, 4}
+    },
+    { {15, 250, 22, 84, 3},
+      {207, 85, 152, 89, 8},
+      {194, 166, 133, 255, 0},
+      {25, 161, 154, 175, 3}
+    },
+    { {248, 13, 152, 242, 6},
+      {2, 154, 230, 186, 11},
+      {100, 241, 155, 1, 15},
+      {213, 214, 117, 148, 0}
+    },
+    { {17, 81, 213, 137, 2},
+      {112, 191, 0, 84, 2},
+      {73, 26, 184, 168, 8},
+      {66, 160, 15, 208, 14}
+    },
+    { {90, 127, 72, 72, 2},
+      {99, 62, 12, 169, 8},
+      {65, 33, 47, 229, 10},
+      {25, 83, 7, 204, 6}
+    },
+    { {220, 246, 137, 159, 6},
+      {219, 188, 220, 166, 3},
+      {111, 153, 22, 243, 11},
+      {198, 83, 179, 221, 11}
+    },
+    { {142, 116, 239, 41, 6},
+      {243, 245, 70, 39, 4},
+      {105, 79, 114, 231, 1},
+      {46, 70, 42, 252, 15}
+    },
+    { {122, 205, 165, 235, 5},
+      {22, 175, 114, 173, 15},
+      {173, 122, 91, 53, 14},
+      {251, 84, 239, 86, 8}
+    },
+    { {73, 74, 158, 70, 15},
+      {14, 213, 77, 216, 9},
+      {246, 39, 149, 41, 2},
+      {145, 187, 42, 183, 0}
+    },
+    { {92, 188, 59, 49, 3},
+      {215, 88, 150, 180, 12},
+      {200, 205, 195, 211, 10},
+      {50, 214, 145, 174, 11}
+    },
+    { {24, 172, 214, 61, 15},
+      {47, 249, 211, 52, 8},
+      {251, 198, 179, 81, 8},
+      {18, 204, 185, 255, 4}
+    },
+    { {128, 152, 198, 222, 6},
+      {104, 241, 208, 10, 11},
+      {103, 182, 49, 144, 1},
+      {213, 0, 184, 241, 6}
+    },
+    { {171, 158, 93, 173, 10},
+      {122, 49, 63, 119, 10},
+      {91, 91, 167, 157, 5},
+      {94, 239, 200, 197, 14}
+    },
+    { {187, 215, 181, 242, 15},
+      {86, 159, 251, 123, 7},
+      {244, 250, 222, 189, 13},
+      {237, 237, 255, 150, 10}
+    },
+    { {231, 64, 19, 227, 5},
+      {148, 68, 98, 223, 3},
+      {172, 124, 128, 46, 7},
+      {207, 180, 98, 34, 9}
+    },
+    { {185, 180, 142, 161, 12},
+      {67, 201, 119, 102, 2},
+      {56, 87, 18, 217, 13},
+      {70, 110, 233, 60, 2}
+    },
+    { {45, 174, 203, 210, 6},
+      {179, 208, 252, 104, 11},
+      {100, 189, 55, 91, 4},
+      {209, 99, 240, 188, 13}
+    },
+    { {14, 251, 136, 89, 3},
+      {199, 182, 156, 13, 8},
+      {201, 161, 29, 247, 0},
+      {27, 3, 150, 222, 3}
+    },
+    { {140, 253, 170, 193, 1},
+      {199, 198, 20, 46, 14},
+      {136, 53, 91, 243, 1},
+      {119, 66, 134, 62, 3}
+    },
+    { {80, 221, 255, 96, 6},
+      {112, 223, 86, 184, 12},
+      {96, 111, 251, 176, 10},
+      {49, 214, 175, 176, 14}
+    },
+    { {171, 67, 201, 91, 13},
+      {54, 166, 237, 79, 1},
+      {189, 169, 60, 45, 5},
+      {143, 43, 118, 86, 12}
+    },
+    { {80, 242, 159, 163, 14},
+      {81, 221, 95, 148, 3},
+      {124, 95, 148, 240, 10},
+      {194, 159, 171, 184, 10}
+    },
+    { {128, 166, 71, 246, 14},
+      {57, 81, 219, 42, 3},
+      {118, 254, 38, 80, 1},
+      {197, 77, 184, 169, 12}
+    },
+    { {60, 168, 157, 27, 10},
+      {147, 185, 181, 20, 9},
+      {93, 139, 145, 83, 12},
+      {146, 138, 217, 220, 9}
+    },
+    { {24, 77, 221, 97, 1},
+      {54, 143, 6, 60, 8},
+      {136, 107, 187, 33, 8},
+      {19, 198, 15, 22, 12}
+    },
+    { {83, 127, 71, 115, 5},
+      {117, 79, 202, 237, 9},
+      {172, 238, 47, 236, 10},
+      {155, 117, 63, 42, 14}
+    },
+    { {164, 149, 152, 181, 4},
+      {200, 130, 246, 54, 2},
+      {42, 209, 154, 146, 5},
+      {70, 198, 244, 17, 3}
+    },
+    { {58, 161, 233, 220, 1},
+      {63, 170, 180, 9, 6},
+      {131, 185, 120, 85, 12},
+      {105, 2, 213, 95, 12}
+    },
+    { {72, 193, 6, 108, 11},
+      {14, 119, 19, 136, 0},
+      {211, 102, 8, 49, 2},
+      {1, 28, 142, 231, 0}
+    },
+    { {227, 219, 6, 53, 1},
+      {76, 71, 186, 199, 8},
+      {138, 198, 13, 188, 7},
+      {30, 53, 222, 35, 2}
+    },
+    { {26, 241, 58, 17, 0},
+      {67, 78, 148, 21, 4},
+      {8, 133, 200, 245, 8},
+      {42, 130, 151, 44, 2}
+    },
+    { {137, 31, 189, 213, 1},
+      {94, 131, 140, 126, 14},
+      {138, 187, 223, 137, 1},
+      {119, 227, 28, 23, 10}
+    },
+    { {142, 68, 6, 133, 7},
+      {142, 85, 64, 39, 2},
+      {234, 22, 2, 39, 1},
+      {78, 64, 42, 167, 1}
+    },
+    { {135, 127, 42, 107, 5},
+      {197, 102, 78, 111, 13},
+      {173, 101, 79, 238, 1},
+      {191, 103, 38, 106, 3}
+    },
+    { {122, 152, 134, 35, 6},
+      {66, 217, 114, 133, 9},
+      {108, 70, 17, 149, 14},
+      {154, 20, 233, 180, 2}
+    },
+    { {228, 197, 141, 119, 10},
+      {152, 151, 183, 174, 1},
+      {94, 235, 26, 50, 7},
+      {135, 94, 222, 145, 9}
+    },
+    { {70, 156, 46, 177, 8},
+      {192, 65, 151, 165, 14},
+      {24, 215, 67, 150, 2},
+      {122, 94, 152, 32, 3}
+    },
+    { {165, 170, 62, 63, 8},
+      {137, 97, 191, 86, 13},
+      {31, 199, 197, 90, 5},
+      {182, 175, 216, 105, 1}
+    },
+    { {14, 105, 46, 93, 5},
+      {143, 103, 196, 13, 12},
+      {171, 167, 73, 103, 0},
+      {59, 2, 62, 111, 1}
+    },
+    { {6, 57, 165, 147, 9},
+      {213, 131, 129, 5, 15},
+      {156, 154, 89, 198, 0},
+      {250, 8, 28, 26, 11}
+    },
+    { {96, 63, 93, 167, 6},
+      {121, 19, 110, 180, 11},
+      {110, 91, 175, 192, 6},
+      {210, 215, 108, 137, 14}
+    },
+    { {72, 219, 238, 150, 9},
+      {110, 199, 157, 128, 15},
+      {150, 151, 125, 177, 2},
+      {240, 27, 158, 55, 6}
+    },
+    { {95, 215, 109, 233, 5},
+      {246, 47, 94, 237, 6},
+      {169, 123, 110, 191, 10},
+      {107, 119, 175, 70, 15}
+    },
+    { {101, 185, 180, 188, 6},
+      {201, 179, 242, 208, 14},
+      {99, 210, 217, 218, 6},
+      {112, 180, 252, 217, 3}
+    },
+    { {6, 179, 0, 213, 15},
+      {205, 18, 217, 13, 2},
+      {250, 176, 12, 214, 0},
+      {75, 9, 180, 139, 3}
+    },
+    { {76, 98, 251, 222, 11},
+      {191, 244, 141, 152, 7},
+      {215, 189, 244, 99, 2},
+      {225, 155, 18, 255, 13}
+    },
+    { {154, 177, 225, 193, 15},
+      {119, 154, 81, 15, 6},
+      {248, 56, 120, 213, 9},
+      {111, 8, 165, 158, 14}
+    },
+    { {116, 98, 52, 56, 13},
+      {133, 45, 235, 144, 4},
+      {177, 194, 196, 98, 14},
+      {32, 157, 123, 74, 1}
+    },
+    { {229, 34, 138, 114, 8},
+      {129, 192, 175, 202, 1},
+      {20, 229, 20, 74, 7},
+      {133, 63, 80, 56, 1}
+    },
+    { {20, 217, 9, 82, 15},
+      {212, 30, 213, 8, 9},
+      {244, 169, 9, 178, 8},
+      {145, 10, 183, 130, 11}
+    },
+    { {218, 24, 89, 233, 7},
+      {118, 56, 70, 159, 10},
+      {233, 121, 161, 133, 11},
+      {95, 150, 33, 198, 14}
+    },
+    { {38, 80, 144, 16, 9},
+      {196, 132, 161, 17, 0},
+      {144, 128, 144, 166, 4},
+      {8, 136, 82, 18, 3}
+    },
+    { {25, 235, 51, 121, 9},
+      {23, 110, 155, 92, 12},
+      {153, 236, 205, 121, 8},
+      {51, 173, 151, 110, 8}
+    },
+    { {105, 80, 30, 18, 12},
+      {66, 69, 229, 208, 1},
+      {52, 135, 128, 169, 6},
+      {128, 186, 122, 36, 2}
+    },
+    { {150, 139, 94, 59, 15},
+      {164, 123, 223, 23, 9},
+      {253, 199, 173, 22, 9},
+      {158, 143, 189, 226, 5}
+    },
+    { {218, 116, 48, 6, 5},
+      {79, 12, 64, 179, 5},
+      {166, 0, 194, 229, 11},
+      {172, 208, 35, 15, 2}
+    },
+    { {25, 179, 22, 144, 13},
+      {71, 75, 217, 80, 2},
+      {176, 150, 140, 217, 8},
+      {64, 169, 189, 46, 2}
+    },
+    { {25, 3, 122, 37, 8},
+      {42, 74, 15, 84, 4},
+      {26, 69, 236, 9, 8},
+      {34, 175, 5, 37, 4}
+    },
+    { {45, 131, 24, 137, 9},
+      {134, 34, 61, 84, 2},
+      {153, 17, 140, 27, 4},
+      {66, 171, 196, 70, 1}
+    },
+    { {90, 179, 165, 245, 1},
+      {95, 139, 154, 141, 6},
+      {138, 250, 92, 213, 10},
+      {107, 21, 157, 31, 10}
+    },
+    { {122, 166, 126, 219, 8},
+      {35, 105, 189, 189, 7},
+      {29, 183, 230, 85, 14},
+      {235, 219, 217, 108, 4}
+    },
+    { {74, 39, 236, 111, 9},
+      {47, 163, 15, 173, 5},
+      {159, 99, 126, 69, 2},
+      {171, 95, 12, 95, 4}
+    },
+    { {199, 32, 161, 106, 9},
+      {149, 160, 3, 203, 5},
+      {149, 104, 80, 78, 3},
+      {173, 60, 0, 90, 9}
+    },
+    { {70, 101, 77, 162, 0},
+      {177, 7, 6, 161, 3},
+      {4, 91, 42, 102, 2},
+      {200, 86, 14, 8, 13}
+    },
+    { {69, 170, 40, 84, 15},
+      {141, 16, 221, 200, 12},
+      {242, 161, 69, 90, 2},
+      {49, 59, 176, 139, 1}
+    },
+    { {174, 121, 83, 131, 6},
+      {243, 86, 96, 23, 11},
+      {108, 28, 169, 231, 5},
+      {222, 128, 102, 172, 15}
+    },
+    { {156, 98, 82, 80, 12},
+      {163, 76, 201, 26, 0},
+      {48, 164, 164, 99, 9},
+      {5, 137, 51, 44, 5}
+    },
+    { {12, 88, 52, 54, 3},
+      {206, 21, 130, 16, 13},
+      {198, 194, 193, 163, 0},
+      {176, 132, 26, 135, 3}
+    },
+    { {74, 45, 0, 174, 1},
+      {15, 34, 2, 161, 11},
+      {135, 80, 11, 69, 2},
+      {216, 84, 4, 79, 0}
+    },
+    { {116, 221, 28, 199, 10},
+      {200, 31, 53, 188, 11},
+      {94, 51, 139, 178, 14},
+      {211, 218, 207, 129, 3}
+    },
+    { {255, 184, 139, 185, 11},
+      {215, 248, 183, 199, 10},
+      {217, 221, 17, 223, 15},
+      {94, 62, 209, 254, 11}
+    },
+    { {72, 11, 173, 35, 1},
+      {22, 131, 14, 132, 13},
+      {140, 75, 93, 1, 2},
+      {178, 23, 12, 22, 8}
+    },
+    { {7, 41, 136, 152, 1},
+      {133, 162, 132, 65, 10},
+      {129, 145, 25, 78, 0},
+      {88, 34, 20, 90, 1}
+    },
+    { {230, 29, 184, 139, 11},
+      {196, 178, 37, 183, 15},
+      {221, 17, 219, 134, 7},
+      {254, 218, 68, 210, 3}
+    },
+    { {115, 138, 131, 230, 3},
+      {28, 216, 58, 201, 11},
+      {198, 124, 21, 28, 14},
+      {217, 53, 193, 179, 8}
+    },
+    { {39, 0, 88, 211, 10},
+      {160, 16, 165, 93, 3},
+      {92, 177, 160, 14, 4},
+      {203, 170, 80, 128, 5}
+    },
+    { {99, 133, 237, 25, 0},
+      {48, 163, 180, 229, 4},
+      {9, 139, 122, 28, 6},
+      {42, 114, 220, 80, 12}
+    },
+    { {43, 58, 207, 150, 12},
+      {123, 193, 237, 65, 11},
+      {54, 159, 53, 205, 4},
+      {216, 43, 120, 61, 14}
+    },
+    { {219, 208, 152, 69, 3},
+      {78, 156, 20, 223, 0},
+      {202, 33, 144, 189, 11},
+      {15, 178, 131, 151, 2}
+    },
+    { {157, 205, 210, 135, 6},
+      {170, 222, 80, 118, 11},
+      {110, 20, 187, 59, 9},
+      {214, 224, 167, 181, 5}
+    },
+    { {49, 244, 150, 171, 1},
+      {69, 237, 50, 116, 3},
+      {141, 86, 146, 248, 12},
+      {194, 228, 203, 122, 2}
+    },
+    { {31, 47, 77, 37, 3},
+      {191, 27, 14, 101, 8},
+      {202, 75, 47, 79, 8},
+      {26, 103, 13, 143, 13}
+    },
+    { {238, 22, 15, 225, 14},
+      {210, 81, 111, 175, 2},
+      {120, 127, 6, 135, 7},
+      {79, 95, 104, 164, 11}
+    },
+    { {10, 161, 221, 53, 1},
+      {63, 131, 150, 21, 0},
+      {138, 203, 184, 85, 0},
+      {10, 134, 156, 31, 12}
+    },
+    { {86, 173, 47, 172, 10},
+      {153, 123, 23, 161, 14},
+      {83, 95, 75, 86, 10},
+      {120, 94, 141, 233, 9}
+    },
+    { {211, 126, 245, 50, 15},
+      {117, 157, 203, 243, 13},
+      {244, 202, 247, 236, 11},
+      {188, 253, 59, 154, 14}
+    },
+    { {26, 77, 168, 98, 11},
+      {6, 158, 7, 41, 13},
+      {212, 97, 91, 37, 8},
+      {185, 78, 7, 150, 0}
+    },
+    { {14, 14, 83, 226, 12},
+      {178, 64, 75, 57, 11},
+      {52, 124, 167, 7, 0},
+      {217, 205, 32, 36, 13}
+    },
+    { {186, 19, 25, 227, 12},
+      {82, 10, 111, 31, 3},
+      {60, 121, 140, 133, 13},
+      {207, 143, 101, 4, 10}
+    },
+    { {166, 38, 10, 6, 2},
+      {137, 80, 44, 35, 1},
+      {70, 5, 6, 70, 5},
+      {140, 67, 64, 169, 1}
+    },
+    { {59, 165, 11, 14, 1},
+      {31, 106, 52, 97, 1},
+      {135, 13, 10, 93, 12},
+      {136, 98, 197, 111, 8}
+    },
+    { {38, 36, 208, 138, 6},
+      {161, 176, 96, 49, 3},
+      {101, 16, 178, 70, 4},
+      {200, 192, 96, 216, 5}
+    },
+    { {34, 170, 93, 184, 11},
+      {53, 49, 191, 17, 10},
+      {209, 219, 165, 84, 4},
+      {88, 143, 216, 202, 12}
+    },
+    { {204, 89, 30, 234, 11},
+      {198, 119, 7, 154, 11},
+      {213, 119, 137, 163, 3},
+      {213, 158, 14, 230, 3}
+    },
+    { {93, 163, 232, 36, 7},
+      {175, 154, 94, 192, 4},
+      {226, 65, 124, 91, 10},
+      {32, 55, 165, 159, 5}
+    },
+    { {49, 70, 31, 250, 13},
+      {20, 109, 239, 120, 3},
+      {181, 255, 134, 40, 12},
+      {193, 239, 123, 98, 8}
+    },
+    { {225, 228, 77, 220, 5},
+      {61, 37, 244, 234, 2},
+      {163, 187, 34, 120, 7},
+      {69, 114, 250, 75, 12}
+    },
+    { {44, 242, 109, 104, 5},
+      {247, 37, 126, 8, 4},
+      {161, 107, 100, 243, 4},
+      {33, 7, 234, 78, 15}
+    },
+    { {188, 184, 23, 132, 2},
+      {219, 89, 48, 18, 10},
+      {66, 30, 129, 211, 13},
+      {84, 128, 201, 173, 11}
+    },
+    { {229, 105, 162, 218, 12},
+      {129, 230, 225, 202, 15},
+      {53, 180, 89, 106, 7},
+      {245, 56, 118, 120, 1}
+    },
+    { {126, 187, 69, 235, 1},
+      {247, 43, 58, 141, 11},
+      {141, 122, 45, 215, 14},
+      {219, 21, 205, 78, 15}
+    },
+    { {95, 193, 180, 208, 10},
+      {130, 159, 145, 217, 6},
+      {80, 178, 216, 63, 10},
+      {105, 184, 159, 148, 1}
+    },
+    { {67, 231, 225, 87, 9},
+      {61, 134, 153, 237, 5},
+      {158, 168, 126, 124, 2},
+      {171, 121, 150, 27, 12}
+    },
+    { {74, 231, 170, 10, 11},
+      {7, 246, 29, 161, 5},
+      {213, 5, 94, 117, 2},
+      {168, 91, 134, 254, 0}
+    },
+    { {165, 185, 85, 105, 15},
+      {245, 51, 115, 94, 8},
+      {249, 106, 169, 218, 5},
+      {23, 172, 236, 202, 15}
+    },
+    { {224, 84, 118, 144, 13},
+      {100, 69, 225, 178, 6},
+      {176, 150, 226, 160, 7},
+      {100, 216, 122, 34, 6}
+    },
+    { {210, 45, 14, 153, 2},
+      {1, 123, 132, 167, 10},
+      {73, 151, 11, 68, 11},
+      {94, 82, 29, 232, 0}
+    },
+    { {24, 168, 223, 230, 1},
+      {63, 201, 22, 24, 11},
+      {134, 127, 177, 81, 8},
+      {209, 134, 137, 63, 12}
+    },
+    { {69, 219, 175, 11, 10},
+      {208, 247, 29, 196, 13},
+      {93, 15, 93, 186, 2},
+      {178, 59, 142, 240, 11}
+    },
+    { {120, 139, 137, 141, 8},
+      {26, 170, 61, 132, 10},
+      {27, 25, 29, 17, 14},
+      {82, 27, 197, 85, 8}
+    },
+    { {241, 221, 156, 23, 1},
+      {76, 143, 180, 246, 9},
+      {142, 131, 155, 184, 15},
+      {150, 242, 223, 19, 2}
+    },
+    { {168, 83, 82, 179, 8},
+      {98, 70, 171, 22, 3},
+      {28, 212, 172, 161, 5},
+      {198, 141, 86, 36, 6}
+    },
+    { {168, 106, 55, 142, 9},
+      {31, 101, 41, 18, 15},
+      {151, 30, 197, 97, 5},
+      {244, 137, 74, 111, 8}
+    },
+    { {189, 126, 84, 235, 14},
+      {227, 61, 107, 126, 11},
+      {125, 114, 167, 235, 13},
+      {215, 237, 107, 204, 7}
+    },
+    { {223, 220, 164, 141, 1},
+      {206, 173, 16, 231, 14},
+      {139, 18, 83, 191, 11},
+      {126, 112, 139, 87, 3}
+    },
+    { {164, 184, 123, 136, 7},
+      {245, 112, 116, 18, 14},
+      {225, 29, 225, 210, 5},
+      {116, 130, 224, 234, 15}
+    },
+    { {156, 22, 106, 229, 0},
+      {234, 72, 14, 46, 6},
+      {10, 117, 102, 131, 9},
+      {103, 71, 1, 37, 7}
+    },
+    { {7, 66, 172, 242, 15},
+      {132, 149, 207, 73, 7},
+      {244, 243, 84, 46, 0},
+      {233, 47, 58, 146, 1}
+    },
+    { {76, 120, 158, 87, 8},
+      {203, 197, 133, 156, 9},
+      {30, 167, 145, 227, 2},
+      {147, 154, 26, 61, 3}
+    },
+    { {154, 239, 33, 84, 12},
+      {27, 14, 217, 43, 12},
+      {50, 168, 79, 117, 9},
+      {61, 73, 183, 13, 8}
+    },
+    { {114, 33, 143, 98, 6},
+      {17, 219, 102, 137, 1},
+      {100, 111, 24, 68, 14},
+      {137, 22, 109, 184, 8}
+    },
+    { {144, 22, 79, 84, 2},
+      {120, 89, 140, 42, 0},
+      {66, 175, 38, 128, 9},
+      {5, 67, 25, 161, 14}
+    },
+    { {255, 38, 45, 47, 8},
+      {155, 41, 47, 231, 5},
+      {31, 75, 70, 79, 15},
+      {174, 127, 73, 77, 9}
+    },
+    { {155, 75, 33, 101, 11},
+      {30, 30, 11, 79, 12},
+      {218, 104, 77, 45, 9},
+      {63, 45, 7, 135, 8}
+    },
+    { {157, 250, 242, 161, 11},
+      {231, 220, 27, 86, 14},
+      {216, 84, 245, 251, 9},
+      {118, 173, 131, 190, 7}
+    },
+    { {88, 151, 203, 43, 2},
+      {114, 250, 30, 164, 1},
+      {77, 77, 62, 145, 10},
+      {130, 87, 133, 244, 14}
+    },
+    { {71, 47, 124, 245, 10},
+      {169, 19, 143, 253, 14},
+      {90, 243, 239, 78, 2},
+      {123, 255, 28, 137, 5}
+    },
+    { {231, 58, 247, 133, 1},
+      {253, 193, 40, 215, 14},
+      {138, 30, 245, 206, 7},
+      {126, 177, 72, 59, 15}
+    },
+    { {207, 215, 242, 172, 4},
+      {234, 230, 90, 243, 6},
+      {35, 84, 254, 191, 3},
+      {108, 245, 166, 117, 7}
+    },
+    { {34, 145, 90, 60, 13},
+      {108, 98, 247, 17, 0},
+      {179, 197, 168, 148, 4},
+      {8, 142, 244, 99, 6}
+    },
+    { {34, 133, 70, 209, 9},
+      {36, 67, 177, 45, 2},
+      {152, 182, 42, 20, 4},
+      {75, 72, 220, 34, 4}
+    },
+    { {114, 208, 93, 189, 9},
+      {124, 45, 183, 149, 2},
+      {155, 219, 160, 180, 14},
+      {74, 158, 219, 67, 14}
+    },
+    { {66, 217, 149, 82, 0},
+      {80, 135, 144, 153, 9},
+      {4, 170, 153, 180, 2},
+      {153, 144, 158, 16, 10}
+    },
+    { {138, 133, 121, 144, 1},
+      {54, 2, 148, 51, 6},
+      {128, 153, 234, 21, 1},
+      {108, 194, 148, 6, 12}
+    },
+    { {197, 198, 42, 24, 4},
+      {128, 100, 220, 226, 4},
+      {33, 133, 70, 58, 3},
+      {36, 115, 178, 96, 1}
+    },
+    { {233, 151, 88, 80, 13},
+      {102, 2, 253, 250, 0},
+      {176, 161, 174, 153, 7},
+      {5, 251, 244, 6, 6}
+    },
+    { {14, 234, 177, 70, 7},
+      {159, 148, 88, 25, 13},
+      {230, 40, 213, 119, 0},
+      {185, 129, 162, 159, 9}
+    },
+    { {145, 53, 173, 2, 13},
+      {85, 139, 69, 98, 5},
+      {180, 11, 90, 200, 9},
+      {164, 106, 45, 26, 10}
+    },
+    { {190, 141, 200, 78, 4},
+      {170, 170, 116, 43, 9},
+      {39, 33, 59, 23, 13},
+      {157, 66, 229, 85, 5}
+    },
+    { {173, 173, 184, 75, 2},
+      {131, 178, 52, 126, 13},
+      {77, 33, 219, 91, 5},
+      {183, 226, 196, 220, 1}
+    },
+    { {239, 18, 224, 176, 8},
+      {226, 128, 171, 195, 6},
+      {16, 208, 116, 143, 7},
+      {108, 61, 80, 20, 7}
+    },
+    { {110, 30, 54, 228, 4},
+      {202, 65, 106, 185, 14},
+      {34, 118, 199, 135, 6},
+      {121, 213, 104, 37, 3}
+    },
+    { {182, 167, 125, 25, 13},
+      {181, 43, 253, 55, 4},
+      {185, 139, 238, 86, 13},
+      {46, 203, 253, 74, 13}
+    },
+    { {23, 86, 83, 139, 13},
+      {244, 108, 73, 117, 3},
+      {189, 28, 166, 174, 8},
+      {202, 233, 35, 98, 15}
+    },
+    { {95, 18, 213, 36, 1},
+      {254, 137, 10, 209, 0},
+      {130, 74, 180, 143, 10},
+      {8, 181, 9, 23, 15}
+    },
+    { {70, 117, 172, 246, 3},
+      {205, 151, 134, 169, 7},
+      {198, 243, 90, 230, 2},
+      {233, 86, 30, 155, 3}
+    },
+    { {60, 106, 94, 42, 12},
+      {163, 109, 111, 16, 9},
+      {53, 71, 165, 99, 12},
+      {144, 143, 107, 108, 5}
+    },
+    { {36, 27, 3, 248, 15},
+      {212, 114, 235, 8, 10},
+      {241, 252, 13, 130, 4},
+      {81, 13, 116, 226, 11}
+    },
+    { {174, 183, 170, 241, 10},
+      {195, 210, 191, 47, 6},
+      {88, 245, 94, 215, 5},
+      {111, 79, 212, 188, 3}
+    },
+    { {128, 123, 11, 149, 5},
+      {93, 70, 204, 6, 10},
+      {170, 157, 13, 224, 1},
+      {86, 3, 54, 43, 10}
+    },
+    { {6, 123, 185, 142, 2},
+      {217, 182, 12, 17, 15},
+      {71, 25, 221, 230, 0},
+      {248, 131, 6, 217, 11}
+    },
+    { {187, 205, 97, 202, 11},
+      {54, 62, 49, 107, 15},
+      {213, 56, 107, 61, 13},
+      {253, 104, 199, 198, 12}
+    },
+    { {102, 111, 155, 27, 2},
+      {145, 246, 172, 181, 9},
+      {77, 141, 159, 102, 6},
+      {154, 211, 86, 248, 9}
+    },
+    { {220, 128, 108, 119, 5},
+      {174, 9, 214, 142, 5},
+      {174, 227, 96, 19, 11},
+      {167, 22, 185, 7, 5}
+    },
+    { {244, 76, 119, 37, 13},
+      {188, 77, 99, 182, 12},
+      {186, 78, 227, 34, 15},
+      {54, 220, 107, 35, 13}
+    },
+    { {114, 219, 75, 25, 1},
+      {116, 110, 188, 133, 8},
+      {137, 141, 45, 180, 14},
+      {26, 19, 215, 98, 14}
+    },
+    { {16, 18, 108, 127, 9},
+      {108, 41, 143, 12, 5},
+      {159, 227, 100, 128, 8},
+      {163, 15, 25, 67, 6}
+    },
+    { {162, 1, 124, 141, 13},
+      {44, 35, 101, 23, 6},
+      {187, 19, 232, 4, 5},
+      {110, 138, 108, 67, 4}
+    },
+    { {92, 43, 98, 199, 13},
+      {175, 74, 73, 140, 15},
+      {190, 52, 109, 67, 10},
+      {243, 25, 37, 47, 5}
+    },
+    { {246, 17, 249, 50, 13},
+      {244, 138, 231, 147, 5},
+      {180, 201, 248, 134, 15},
+      {172, 158, 117, 18, 15}
+    },
+    { {29, 202, 246, 89, 3},
+      {166, 253, 152, 92, 12},
+      {201, 166, 245, 59, 8},
+      {51, 161, 155, 246, 5}
+    },
+    { {246, 222, 90, 183, 0},
+      {232, 76, 190, 183, 11},
+      {14, 213, 167, 182, 15},
+      {222, 215, 211, 33, 7}
+    },
+    { {2, 227, 95, 133, 4},
+      {57, 71, 92, 21, 2},
+      {42, 31, 172, 116, 0},
+      {74, 131, 174, 41, 12}
+    },
+    { {154, 82, 200, 49, 13},
+      {102, 140, 207, 7, 0},
+      {184, 193, 52, 165, 9},
+      {14, 15, 51, 22, 6}
+    },
+    { {201, 156, 238, 248, 13},
+      {102, 225, 215, 234, 14},
+      {177, 247, 115, 153, 3},
+      {117, 126, 184, 118, 6}
+    },
+    { {164, 0, 185, 178, 3},
+      {148, 144, 166, 18, 7},
+      {196, 217, 208, 2, 5},
+      {228, 134, 80, 146, 9}
+    },
+    { {83, 189, 160, 149, 3},
+      {77, 154, 144, 229, 14},
+      {202, 144, 91, 220, 10},
+      {122, 112, 149, 155, 2}
+    },
+    { {229, 156, 80, 168, 12},
+      {224, 32, 115, 242, 10},
+      {49, 80, 163, 154, 7},
+      {84, 252, 224, 64, 7}
+    },
+    { {171, 95, 148, 193, 7},
+      {70, 151, 104, 127, 10},
+      {232, 50, 159, 173, 5},
+      {95, 225, 110, 150, 2}
+    },
+    { {154, 1, 159, 43, 13},
+      {22, 235, 71, 23, 1},
+      {189, 79, 152, 5, 9},
+      {142, 142, 45, 118, 8}
+    },
+    { {179, 111, 58, 61, 12},
+      {9, 110, 239, 119, 12},
+      {59, 197, 207, 108, 13},
+      {62, 239, 119, 105, 0}
+    },
+    { {192, 187, 244, 25, 3},
+      {101, 179, 152, 150, 12},
+      {201, 130, 253, 208, 3},
+      {54, 145, 156, 218, 6}
+    },
+    { {20, 123, 78, 197, 0},
+      {233, 79, 12, 12, 10},
+      {10, 55, 45, 226, 8},
+      {83, 3, 15, 41, 7}
+    },
+    { {90, 199, 71, 252, 14},
+      {58, 127, 219, 169, 2},
+      {115, 254, 46, 53, 10},
+      {73, 93, 191, 229, 12}
+    },
+    { {55, 33, 111, 157, 0},
+      {185, 107, 164, 69, 6},
+      {11, 159, 104, 78, 12},
+      {106, 34, 93, 105, 13}
+    },
+    { {1, 111, 252, 42, 3},
+      {37, 183, 14, 112, 13},
+      {197, 67, 255, 104, 0},
+      {176, 231, 14, 218, 4}
+    },
+    { {89, 15, 175, 61, 8},
+      {26, 235, 143, 228, 12},
+      {27, 207, 95, 9, 10},
+      {50, 127, 29, 117, 8}
+    },
+    { {153, 1, 84, 216, 10},
+      {34, 59, 129, 90, 2},
+      {81, 178, 168, 9, 9},
+      {69, 168, 29, 196, 4}
+    },
+    { {67, 238, 76, 167, 7},
+      {45, 21, 94, 229, 11},
+      {238, 83, 39, 124, 2},
+      {218, 119, 170, 139, 4}
+    },
+    { {54, 90, 193, 205, 0},
+      {248, 172, 40, 13, 10},
+      {11, 56, 53, 166, 12},
+      {91, 1, 67, 81, 15}
+    },
+    { {131, 166, 230, 183, 5},
+      {45, 193, 218, 103, 7},
+      {174, 214, 118, 92, 1},
+      {238, 101, 184, 59, 4}
+    },
+    { {19, 38, 191, 52, 9},
+      {29, 201, 143, 113, 4},
+      {146, 207, 214, 76, 8},
+      {40, 239, 25, 59, 8}
+    },
+    { {75, 112, 99, 4, 11},
+      {127, 84, 1, 193, 4},
+      {210, 12, 96, 237, 2},
+      {40, 56, 2, 175, 14}
+    },
+    { {138, 249, 189, 185, 10},
+      {83, 183, 151, 23, 14},
+      {89, 219, 217, 245, 1},
+      {126, 142, 158, 220, 10}
+    },
+    { {210, 150, 211, 86, 13},
+      {124, 200, 217, 187, 1},
+      {182, 172, 182, 148, 11},
+      {141, 217, 177, 51, 14}
+    },
+    { {191, 171, 59, 228, 2},
+      {155, 90, 62, 91, 14},
+      {66, 125, 205, 95, 13},
+      {125, 167, 197, 173, 9}
+    },
+    { {174, 86, 204, 98, 6},
+      {226, 149, 110, 43, 1},
+      {100, 99, 54, 167, 5},
+      {141, 71, 106, 148, 7}
+    },
+    { {178, 87, 177, 0, 1},
+      {84, 142, 40, 51, 4},
+      {128, 8, 222, 164, 13},
+      {44, 193, 71, 18, 10}
+    },
+    { {62, 59, 212, 245, 0},
+      {235, 139, 170, 29, 10},
+      {10, 242, 189, 199, 12},
+      {91, 133, 93, 29, 7}
+    },
+    { {81, 226, 98, 81, 13},
+      {37, 76, 217, 204, 4},
+      {184, 164, 100, 120, 10},
+      {35, 57, 179, 42, 4}
+    },
+    { {109, 172, 163, 64, 13},
+      {151, 192, 113, 232, 12},
+      {176, 44, 83, 91, 6},
+      {49, 120, 224, 62, 9}
+    },
+    { {140, 97, 186, 38, 3},
+      {143, 214, 6, 18, 5},
+      {198, 69, 216, 99, 1},
+      {164, 134, 6, 191, 1}
+    },
+    { {188, 245, 45, 34, 0},
+      {211, 15, 54, 34, 5},
+      {4, 75, 74, 243, 13},
+      {164, 70, 207, 12, 11}
+    },
+    { {211, 103, 251, 121, 3},
+      {53, 254, 142, 255, 4},
+      {201, 237, 254, 108, 11},
+      {47, 247, 23, 250, 12}
+    },
+    { {84, 87, 19, 84, 12},
+      {216, 78, 201, 184, 0},
+      {50, 172, 142, 162, 10},
+      {1, 217, 55, 33, 11}
+    },
+    { {252, 69, 102, 73, 14},
+      {162, 127, 97, 174, 4},
+      {121, 38, 106, 35, 15},
+      {39, 88, 111, 228, 5}
+    },
+    { {201, 116, 9, 180, 3},
+      {95, 20, 134, 226, 2},
+      {194, 217, 2, 233, 3},
+      {68, 118, 18, 143, 10}
+    },
+    { {219, 223, 58, 117, 6},
+      {74, 94, 222, 255, 12},
+      {106, 229, 207, 189, 11},
+      {63, 247, 183, 165, 2}
+    },
+    { {124, 198, 54, 99, 4},
+      {130, 77, 122, 188, 5},
+      {44, 102, 198, 51, 14},
+      {163, 213, 235, 36, 1}
+    },
+    { {199, 37, 21, 237, 7},
+      {157, 51, 66, 255, 2},
+      {235, 122, 138, 78, 3},
+      {79, 244, 44, 203, 9}
+    },
+    { {243, 129, 78, 141, 3},
+      {44, 123, 52, 199, 2},
+      {203, 23, 40, 28, 15},
+      {78, 50, 205, 227, 4}
+    },
+    { {1, 97, 236, 83, 14},
+      {33, 151, 197, 76, 5},
+      {124, 163, 120, 104, 0},
+      {163, 42, 62, 152, 4}
+    },
+    { {185, 10, 129, 53, 14},
+      {26, 152, 235, 70, 8},
+      {122, 200, 21, 9, 13},
+      {22, 45, 113, 149, 8}
+    },
+    { {206, 10, 5, 154, 5},
+      {150, 33, 200, 131, 11},
+      {165, 154, 5, 7, 3},
+      {220, 17, 56, 70, 9}
+    },
+    { {177, 143, 157, 57, 3},
+      {20, 187, 190, 118, 8},
+      {201, 203, 159, 24, 13},
+      {22, 231, 221, 210, 8}
+    },
+    { {148, 176, 8, 30, 13},
+      {205, 40, 213, 2, 1},
+      {183, 129, 0, 210, 9},
+      {132, 10, 177, 75, 3}
+    },
+    { {80, 66, 146, 213, 15},
+      {12, 220, 201, 156, 2},
+      {250, 180, 148, 32, 10},
+      {67, 153, 51, 179, 0}
+    },
+    { {35, 150, 114, 80, 11},
+      {100, 80, 185, 121, 4},
+      {208, 164, 230, 156, 4},
+      {41, 233, 208, 162, 6}
+    },
+    { {68, 239, 204, 54, 11},
+      {173, 151, 159, 160, 9},
+      {214, 195, 63, 114, 2},
+      {144, 95, 158, 155, 5}
+    },
+    { {31, 253, 132, 177, 6},
+      {195, 159, 210, 101, 10},
+      {104, 210, 27, 255, 8},
+      {90, 100, 191, 156, 3}
+    },
+    { {197, 49, 181, 191, 8},
+      {217, 163, 131, 214, 7},
+      {31, 218, 216, 202, 3},
+      {230, 188, 28, 89, 11}
+    },
+    { {22, 150, 178, 17, 4},
+      {192, 200, 216, 53, 4},
+      {40, 132, 214, 150, 8},
+      {42, 193, 177, 48, 3}
+    },
+    { {38, 79, 248, 144, 13},
+      {164, 134, 237, 49, 14},
+      {176, 145, 255, 38, 4},
+      {120, 203, 118, 18, 5}
+    },
+    { {246, 196, 223, 173, 7},
+      {188, 253, 118, 183, 2},
+      {235, 95, 178, 54, 15},
+      {78, 214, 235, 243, 13}
+    },
+    { {156, 24, 84, 188, 5},
+      {238, 41, 194, 18, 10},
+      {163, 210, 161, 131, 9},
+      {84, 132, 57, 71, 7}
+    },
+    { {19, 208, 219, 228, 10},
+      {120, 220, 23, 89, 2},
+      {82, 125, 176, 188, 8},
+      {73, 174, 131, 177, 14}
+    },
+    { {249, 179, 22, 59, 4},
+      {67, 107, 250, 214, 1},
+      {45, 198, 140, 217, 15},
+      {134, 181, 253, 108, 2}
+    },
+    { {81, 149, 114, 252, 7},
+      {108, 122, 210, 248, 6},
+      {227, 244, 234, 152, 10},
+      {97, 244, 181, 227, 6}
+    },
+    { {242, 39, 249, 70, 5},
+      {61, 138, 108, 187, 5},
+      {166, 41, 254, 68, 15},
+      {173, 211, 101, 27, 12}
+    },
+    { {102, 190, 189, 206, 13},
+      {221, 161, 125, 185, 15},
+      {183, 59, 215, 214, 6},
+      {249, 219, 232, 91, 11}
+    },
+    { {214, 222, 191, 213, 4},
+      {216, 205, 220, 191, 14},
+      {42, 191, 215, 182, 11},
+      {127, 211, 187, 49, 11}
+    },
+    { {42, 6, 160, 45, 8},
+      {10, 160, 43, 37, 4},
+      {27, 64, 86, 5, 4},
+      {42, 77, 64, 85, 0}
+    },
+    { {20, 53, 95, 118, 11},
+      {253, 91, 135, 56, 1},
+      {214, 239, 170, 194, 8},
+      {129, 206, 29, 171, 15}
+    },
+    { {10, 147, 60, 139, 0},
+      {66, 35, 28, 21, 7},
+      {13, 19, 204, 149, 0},
+      {234, 131, 140, 68, 2}
+    },
+    { {41, 181, 114, 31, 7},
+      {111, 114, 240, 116, 5},
+      {239, 132, 234, 217, 4},
+      {162, 224, 244, 239, 6}
+    },
+    { {10, 176, 119, 109, 10},
+      {123, 113, 19, 29, 4},
+      {91, 110, 224, 213, 0},
+      {43, 140, 136, 237, 14}
+    },
+    { {73, 99, 125, 47, 0},
+      {59, 39, 14, 212, 5},
+      {15, 75, 236, 105, 2},
+      {162, 183, 14, 77, 12}
+    },
+    { {129, 17, 157, 135, 11},
+      {92, 147, 5, 86, 3},
+      {222, 27, 152, 136, 1},
+      {198, 170, 12, 147, 10}
+    },
+    { {140, 179, 51, 58, 10},
+      {211, 114, 155, 18, 5},
+      {85, 204, 204, 211, 1},
+      {164, 141, 148, 236, 11}
+    },
+    { {178, 29, 155, 97, 0},
+      {80, 202, 38, 63, 8},
+      {8, 109, 155, 132, 13},
+      {31, 198, 69, 48, 10}
+    },
+    { {188, 118, 206, 213, 10},
+      {235, 221, 173, 46, 2},
+      {90, 183, 54, 227, 13},
+      {71, 75, 91, 189, 7}
+    },
+    { {160, 15, 75, 230, 8},
+      {56, 66, 47, 42, 11},
+      {22, 125, 47, 0, 5},
+      {213, 79, 68, 33, 12}
+    },
+    { {68, 168, 183, 24, 8},
+      {145, 225, 145, 144, 12},
+      {17, 142, 209, 82, 2},
+      {48, 152, 152, 120, 9}
+    },
+    { {192, 147, 189, 209, 12},
+      {80, 131, 221, 158, 6},
+      {56, 187, 220, 144, 3},
+      {103, 155, 188, 16, 10}
+    },
+    { {67, 88, 203, 57, 12},
+      {112, 228, 199, 197, 8},
+      {57, 205, 49, 172, 2},
+      {26, 62, 50, 112, 14}
+    },
+    { {138, 61, 137, 8, 12},
+      {83, 162, 69, 35, 8},
+      {49, 9, 27, 197, 1},
+      {28, 74, 36, 92, 10}
+    },
+    { {252, 190, 21, 102, 11},
+      {223, 25, 59, 186, 9},
+      {214, 106, 135, 211, 15},
+      {149, 221, 201, 143, 11}
+    },
+    { {203, 103, 181, 191, 5},
+      {31, 167, 202, 247, 7},
+      {175, 218, 222, 109, 3},
+      {238, 245, 62, 95, 8}
+    },
+    { {233, 7, 248, 189, 4},
+      {42, 162, 238, 246, 6},
+      {43, 209, 254, 9, 7},
+      {102, 247, 116, 85, 4}
+    },
+    { {75, 186, 42, 243, 10},
+      {67, 80, 159, 205, 15},
+      {92, 245, 69, 221, 2},
+      {251, 63, 144, 172, 2}
+    },
+    { {113, 234, 245, 7, 10},
+      {57, 157, 57, 212, 13},
+      {94, 10, 245, 120, 14},
+      {178, 185, 203, 153, 12}
+    },
+    { {147, 43, 182, 127, 6},
+      {9, 251, 202, 95, 13},
+      {111, 230, 221, 76, 9},
+      {191, 165, 61, 249, 0}
+    },
+    { {83, 241, 61, 70, 1},
+      {93, 15, 20, 217, 5},
+      {134, 43, 200, 252, 10},
+      {169, 178, 143, 11, 10}
+    },
+    { {99, 45, 7, 61, 3},
+      {29, 115, 162, 229, 8},
+      {203, 206, 11, 76, 6},
+      {26, 116, 92, 235, 8}
+    },
+    { {187, 21, 254, 209, 0},
+      {98, 203, 164, 127, 6},
+      {8, 183, 250, 141, 13},
+      {111, 226, 93, 52, 6}
+    },
+    { {249, 117, 16, 139, 12},
+      {67, 46, 97, 246, 3},
+      {61, 16, 138, 233, 15},
+      {198, 248, 103, 76, 2}
+    },
+    { {82, 137, 180, 183, 15},
+      {12, 155, 211, 149, 15},
+      {254, 210, 217, 20, 10},
+      {250, 156, 189, 147, 0}
+    },
+    { {27, 210, 12, 213, 13},
+      {78, 13, 221, 77, 2},
+      {186, 179, 4, 189, 8},
+      {75, 43, 187, 7, 2}
+    },
+    { {177, 242, 231, 215, 11},
+      {125, 221, 185, 78, 7},
+      {222, 190, 116, 248, 13},
+      {231, 41, 219, 187, 14}
+    },
+    { {59, 199, 234, 23, 8},
+      {42, 206, 189, 101, 5},
+      {30, 133, 126, 61, 12},
+      {170, 107, 215, 53, 4}
+    },
+    { {129, 160, 44, 14, 10},
+      {9, 49, 21, 66, 5},
+      {87, 3, 64, 88, 1},
+      {164, 42, 136, 201, 0}
+    },
+    { {175, 47, 221, 40, 8},
+      {179, 163, 47, 115, 8},
+      {17, 75, 191, 79, 5},
+      {28, 239, 76, 92, 13}
+    },
+    { {102, 160, 63, 60, 5},
+      {157, 97, 246, 145, 4},
+      {163, 207, 192, 86, 6},
+      {40, 150, 248, 107, 9}
+    },
+    { {97, 107, 54, 64, 2},
+      {1, 87, 40, 216, 12},
+      {64, 38, 205, 104, 6},
+      {49, 177, 78, 168, 0}
+    },
+    { {179, 110, 223, 102, 4},
+      {57, 205, 110, 123, 9},
+      {38, 111, 183, 108, 13},
+      {157, 231, 107, 57, 12}
+    },
+    { {221, 206, 234, 142, 13},
+      {174, 236, 93, 226, 15},
+      {183, 21, 119, 59, 11},
+      {244, 123, 163, 119, 5}
+    },
+    { {191, 161, 228, 191, 4},
+      {171, 171, 242, 71, 7},
+      {47, 210, 120, 95, 13},
+      {238, 36, 253, 93, 5}
+    },
+    { {181, 50, 205, 129, 2},
+      {241, 153, 44, 70, 2},
+      {72, 27, 52, 202, 13},
+      {70, 35, 73, 152, 15}
+    },
+    { {93, 75, 26, 56, 8},
+      {130, 110, 143, 208, 8},
+      {17, 197, 141, 43, 10},
+      {16, 191, 23, 100, 1}
+    },
+    { {178, 246, 24, 165, 12},
+      {73, 12, 127, 55, 2},
+      {58, 81, 134, 244, 13},
+      {78, 207, 227, 9, 2}
+    },
+    { {56, 237, 90, 165, 11},
+      {47, 94, 55, 52, 10},
+      {218, 85, 171, 113, 12},
+      {82, 206, 199, 175, 4}
+    },
+    { {73, 219, 225, 19, 5},
+      {118, 134, 216, 196, 13},
+      {172, 136, 125, 185, 2},
+      {178, 49, 182, 22, 14}
+    },
+    { {73, 170, 182, 189, 9},
+      {15, 225, 155, 212, 14},
+      {155, 214, 213, 89, 2},
+      {114, 189, 152, 127, 0}
+    },
+    { {84, 139, 234, 26, 2},
+      {160, 250, 156, 128, 13},
+      {69, 133, 125, 18, 10},
+      {176, 19, 149, 240, 5}
+    },
+    { {157, 15, 70, 19, 1},
+      {166, 75, 136, 102, 9},
+      {140, 134, 47, 11, 9},
+      {150, 97, 29, 38, 5}
+    },
+    { {102, 97, 19, 14, 1},
+      {157, 102, 32, 145, 1},
+      {135, 12, 136, 102, 6},
+      {136, 144, 70, 107, 9}
+    },
+    { {248, 9, 47, 37, 2},
+      {26, 91, 38, 134, 12},
+      {74, 79, 73, 1, 15},
+      {54, 22, 77, 165, 8}
+    },
+    { {11, 201, 149, 46, 14},
+      {26, 183, 83, 81, 9},
+      {119, 74, 153, 61, 0},
+      {152, 172, 174, 213, 8}
+    },
+    { {184, 19, 104, 249, 3},
+      {102, 58, 174, 14, 6},
+      {201, 241, 108, 129, 13},
+      {103, 7, 85, 198, 6}
+    },
+    { {247, 151, 168, 45, 7},
+      {204, 186, 126, 231, 4},
+      {235, 65, 94, 158, 15},
+      {46, 119, 229, 211, 3}
+    },
+    { {64, 198, 85, 224, 12},
+      {48, 5, 91, 184, 2},
+      {48, 122, 166, 48, 2},
+      {65, 221, 170, 0, 12}
+    },
+    { {119, 132, 246, 36, 5},
+      {172, 201, 114, 241, 4},
+      {162, 70, 242, 30, 14},
+      {40, 244, 233, 51, 5}
+    },
+    { {67, 149, 31, 37, 8},
+      {88, 67, 23, 245, 0},
+      {26, 79, 138, 156, 2},
+      {10, 254, 140, 33, 10}
+    },
+    { {45, 159, 144, 243, 0},
+      {194, 130, 186, 124, 11},
+      {12, 240, 159, 155, 4},
+      {211, 229, 212, 20, 3}
+    },
+    { {146, 221, 176, 205, 11},
+      {76, 190, 17, 63, 14},
+      {219, 48, 219, 180, 9},
+      {127, 200, 135, 211, 2}
+    },
+    { {246, 199, 216, 26, 12},
+      {160, 174, 253, 179, 1},
+      {53, 129, 190, 54, 15},
+      {140, 219, 247, 80, 5}
+    },
+    { {24, 194, 89, 137, 6},
+      {50, 60, 92, 20, 2},
+      {105, 25, 164, 49, 8},
+      {66, 131, 163, 196, 12}
+    },
+    { {191, 94, 230, 119, 1},
+      {238, 205, 170, 111, 13},
+      {142, 230, 119, 175, 13},
+      {191, 101, 91, 55, 7}
+    },
+    { {154, 185, 210, 41, 10},
+      {99, 250, 19, 23, 8},
+      {89, 68, 185, 213, 9},
+      {30, 140, 133, 252, 6}
+    },
+    { {85, 134, 127, 171, 1},
+      {180, 105, 30, 244, 7},
+      {141, 95, 230, 26, 10},
+      {226, 247, 137, 98, 13}
+    },
+    { {184, 210, 232, 62, 14},
+      {106, 188, 255, 2, 5},
+      {119, 193, 116, 177, 13},
+      {164, 15, 243, 213, 6}
+    },
+    { {8, 95, 31, 243, 10},
+      {82, 87, 143, 60, 11},
+      {92, 255, 143, 161, 0},
+      {211, 207, 30, 164, 10}
+    },
+    { {18, 244, 23, 56, 3},
+      {85, 125, 146, 49, 0},
+      {193, 206, 130, 244, 8},
+      {8, 196, 155, 234, 10}
+    },
+    { {166, 113, 141, 223, 14},
+      {217, 183, 229, 15, 3},
+      {127, 187, 24, 230, 5},
+      {207, 10, 126, 217, 11}
+    },
+    { {192, 142, 206, 109, 0},
+      {40, 225, 30, 174, 8},
+      {11, 103, 55, 16, 3},
+      {23, 87, 136, 113, 4}
+    },
+    { {109, 149, 12, 180, 7},
+      {206, 19, 246, 224, 2},
+      {226, 211, 10, 155, 6},
+      {64, 118, 252, 135, 3}
+    },
+    { {150, 47, 248, 18, 6},
+      {161, 154, 204, 51, 13},
+      {100, 129, 255, 70, 9},
+      {188, 195, 53, 152, 5}
+    },
+    { {100, 178, 210, 193, 10},
+      {225, 208, 57, 156, 2},
+      {88, 52, 180, 210, 6},
+      {67, 153, 192, 184, 7}
+    },
+    { {171, 232, 165, 221, 12},
+      {27, 165, 241, 79, 14},
+      {59, 186, 81, 125, 5},
+      {127, 40, 250, 93, 8}
+    },
+    { {1, 1, 118, 119, 7},
+      {44, 83, 194, 92, 5},
+      {238, 230, 232, 8, 0},
+      {163, 164, 60, 163, 4}
+    },
+    { {122, 87, 242, 127, 10},
+      {106, 254, 171, 189, 5},
+      {95, 228, 254, 165, 14},
+      {171, 221, 87, 245, 6}
+    },
+    { {49, 50, 151, 33, 7},
+      {85, 217, 106, 84, 0},
+      {232, 78, 148, 200, 12},
+      {2, 165, 105, 186, 10}
+    },
+    { {84, 80, 181, 69, 13},
+      {220, 141, 65, 156, 4},
+      {186, 42, 208, 162, 10},
+      {35, 152, 43, 19, 11}
+    },
+    { {11, 87, 84, 254, 5},
+      {110, 39, 202, 121, 3},
+      {167, 242, 174, 173, 0},
+      {201, 229, 62, 71, 6}
+    },
+    { {182, 45, 55, 60, 6},
+      {153, 123, 226, 51, 12},
+      {99, 206, 203, 70, 13},
+      {60, 196, 125, 233, 9}
+    },
+    { {148, 78, 188, 41, 1},
+      {132, 173, 14, 54, 12},
+      {137, 67, 215, 34, 9},
+      {54, 199, 11, 82, 1}
+    },
+    { {212, 209, 225, 203, 8},
+      {240, 174, 17, 142, 7},
+      {29, 56, 120, 178, 11},
+      {231, 24, 135, 80, 15}
+    },
+    { {41, 127, 114, 212, 15},
+      {111, 86, 233, 120, 14},
+      {242, 180, 239, 233, 4},
+      {113, 233, 118, 175, 6}
+    },
+    { {185, 41, 143, 89, 11},
+      {23, 251, 165, 78, 8},
+      {217, 175, 25, 73, 13},
+      {23, 42, 93, 254, 8}
+    },
+    { {156, 178, 65, 173, 13},
+      {255, 40, 91, 6, 2},
+      {187, 88, 36, 211, 9},
+      {70, 13, 161, 79, 15}
+    },
+    { {9, 10, 241, 177, 13},
+      {54, 128, 203, 84, 14},
+      {184, 216, 245, 9, 0},
+      {114, 173, 48, 22, 12}
+    },
+    { {16, 185, 135, 171, 7},
+      {85, 251, 82, 4, 11},
+      {237, 94, 25, 208, 8},
+      {210, 4, 173, 250, 10}
+    },
+    { {126, 194, 225, 64, 6},
+      {178, 156, 120, 137, 4},
+      {96, 40, 116, 55, 14},
+      {41, 17, 227, 148, 13}
+    },
+    { {67, 167, 86, 127, 1},
+      {45, 99, 154, 253, 1},
+      {143, 230, 174, 92, 2},
+      {139, 245, 156, 107, 4}
+    },
+    { {26, 3, 90, 19, 6},
+      {34, 90, 204, 21, 1},
+      {108, 133, 172, 5, 8},
+      {138, 131, 53, 164, 4}
+    },
+    { {29, 135, 214, 9, 13},
+      {166, 235, 89, 116, 0},
+      {185, 6, 190, 27, 8},
+      {2, 233, 173, 118, 5}
+    },
+    { {166, 252, 66, 185, 15},
+      {229, 116, 243, 39, 10},
+      {249, 212, 35, 246, 5},
+      {94, 76, 242, 234, 7}
+    },
+    { {107, 129, 183, 247, 6},
+      {26, 211, 242, 221, 7},
+      {110, 254, 216, 29, 6},
+      {235, 180, 252, 181, 8}
+    },
+    { {69, 254, 109, 129, 14},
+      {241, 21, 93, 228, 14},
+      {120, 27, 103, 250, 2},
+      {114, 123, 170, 136, 15}
+    },
+    { {53, 236, 43, 184, 7},
+      {149, 124, 246, 96, 14},
+      {225, 221, 67, 122, 12},
+      {112, 102, 243, 234, 9}
+    },
+    { {49, 88, 4, 149, 14},
+      {72, 29, 225, 68, 10},
+      {122, 146, 1, 168, 12},
+      {82, 40, 123, 129, 2}
+    },
+    { {152, 19, 34, 45, 15},
+      {78, 122, 75, 6, 4},
+      {251, 68, 76, 129, 9},
+      {38, 13, 37, 231, 2}
+    },
+    { {154, 159, 90, 231, 3},
+      {110, 90, 30, 63, 11},
+      {206, 117, 175, 149, 9},
+      {223, 199, 133, 167, 6}
+    },
+    { {212, 231, 111, 182, 1},
+      {189, 79, 158, 162, 7},
+      {134, 223, 110, 114, 11},
+      {228, 87, 159, 43, 13}
+    },
+    { {229, 90, 150, 106, 14},
+      {192, 245, 107, 218, 9},
+      {117, 102, 149, 170, 7},
+      {149, 189, 106, 240, 3}
+    },
+    { {79, 187, 212, 222, 13},
+      {239, 163, 217, 217, 11},
+      {183, 178, 189, 223, 2},
+      {217, 185, 188, 95, 7}
+    },
+    { {121, 157, 133, 152, 15},
+      {86, 187, 241, 224, 10},
+      {241, 154, 27, 153, 14},
+      {80, 120, 253, 214, 10}
+    },
+    { {9, 112, 158, 165, 9},
+      {79, 197, 7, 84, 2},
+      {154, 87, 144, 233, 0},
+      {66, 174, 10, 63, 2}
+    },
+    { {3, 87, 205, 203, 8},
+      {112, 167, 13, 109, 3},
+      {29, 59, 62, 172, 0},
+      {203, 107, 14, 80, 14}
+    },
+    { {212, 185, 186, 58, 5},
+      {197, 234, 214, 146, 13},
+      {165, 197, 217, 210, 11},
+      {180, 150, 181, 122, 3}
+    },
+    { {24, 64, 161, 74, 8},
+      {18, 172, 1, 8, 5},
+      {21, 40, 80, 33, 8},
+      {161, 8, 3, 84, 8}
+    },
+    { {118, 93, 35, 164, 0},
+      {216, 78, 34, 161, 14},
+      {2, 92, 75, 166, 14},
+      {120, 84, 71, 33, 11}
+    },
+    { {215, 210, 250, 82, 11},
+      {228, 220, 157, 219, 5},
+      {212, 165, 244, 190, 11},
+      {173, 187, 147, 178, 7}
+    },
+    { {112, 131, 115, 144, 14},
+      {48, 90, 249, 144, 6},
+      {112, 156, 236, 16, 14},
+      {96, 153, 245, 160, 12}
+    },
+    { {54, 219, 219, 178, 9},
+      {244, 206, 191, 17, 11},
+      {148, 221, 189, 182, 12},
+      {216, 143, 215, 50, 15}
+    },
+    { {238, 65, 132, 139, 9},
+      {134, 167, 33, 135, 3},
+      {157, 18, 24, 39, 7},
+      {206, 24, 78, 86, 1}
+    },
+    { {82, 197, 48, 152, 6},
+      {0, 62, 208, 177, 6},
+      {97, 144, 202, 52, 10},
+      {104, 208, 183, 192, 0}
+    },
+    { {252, 86, 183, 22, 2},
+      {218, 221, 168, 178, 5},
+      {70, 142, 214, 163, 15},
+      {164, 209, 91, 181, 11}
+    },
+    { {116, 165, 189, 128, 1},
+      {149, 139, 52, 176, 6},
+      {128, 27, 218, 82, 14},
+      {96, 210, 205, 26, 9}
+    },
+    { {149, 143, 205, 134, 4},
+      {184, 139, 92, 98, 11},
+      {38, 27, 63, 26, 9},
+      {212, 99, 173, 17, 13}
+    },
+    { {217, 178, 146, 205, 0},
+      {75, 232, 24, 222, 2},
+      {11, 52, 148, 217, 11},
+      {71, 177, 129, 125, 2}
+    },
+    { {167, 235, 71, 193, 10},
+      {177, 87, 57, 79, 10},
+      {88, 62, 45, 126, 5},
+      {95, 41, 206, 168, 13}
+    },
+    { {79, 1, 94, 2, 9},
+      {166, 67, 5, 209, 1},
+      {148, 7, 168, 15, 2},
+      {136, 186, 12, 38, 5}
+    },
+    { {106, 36, 9, 113, 10},
+      {19, 16, 167, 173, 0},
+      {88, 233, 2, 69, 6},
+      {11, 94, 80, 140, 8}
+    },
+    { {206, 68, 49, 8, 9},
+      {150, 36, 1, 179, 4},
+      {145, 8, 194, 39, 3},
+      {44, 216, 2, 70, 9}
+    },
+    { {49, 255, 30, 233, 10},
+      {65, 127, 63, 124, 10},
+      {89, 119, 143, 248, 12},
+      {83, 239, 207, 232, 2}
+    },
+    { {20, 10, 7, 54, 11},
+      {156, 89, 139, 0, 9},
+      {214, 206, 5, 2, 8},
+      {144, 13, 25, 163, 9}
+    },
+    { {70, 59, 86, 20, 0},
+      {233, 67, 136, 145, 8},
+      {2, 134, 173, 198, 2},
+      {24, 145, 28, 41, 7}
+    },
+    { {59, 6, 12, 183, 14},
+      {10, 25, 239, 101, 3},
+      {126, 211, 6, 13, 12},
+      {202, 111, 121, 133, 0}
+    },
+    { {183, 192, 126, 222, 10},
+      {168, 125, 181, 91, 7},
+      {87, 183, 224, 62, 13},
+      {237, 170, 219, 225, 5}
+    },
+    { {131, 167, 59, 199, 12},
+      {25, 66, 93, 127, 7},
+      {62, 61, 206, 92, 1},
+      {239, 235, 164, 41, 8}
+    },
+    { {169, 68, 61, 125, 8},
+      {26, 37, 167, 126, 4},
+      {27, 235, 194, 41, 5},
+      {39, 238, 90, 69, 8}
+    },
+    { {89, 62, 133, 40, 0},
+      {83, 169, 10, 224, 8},
+      {1, 74, 23, 201, 10},
+      {16, 117, 9, 92, 10}
+    },
+    { {91, 223, 9, 190, 3},
+      {94, 62, 158, 225, 11},
+      {199, 217, 15, 189, 10},
+      {216, 119, 151, 199, 10}
+    },
+    { {90, 199, 81, 168, 1},
+      {54, 46, 26, 177, 2},
+      {129, 88, 174, 53, 10},
+      {72, 213, 135, 70, 12}
+    },
+    { {172, 197, 14, 185, 6},
+      {130, 119, 246, 38, 2},
+      {105, 215, 10, 51, 5},
+      {70, 70, 254, 228, 1}
+    },
+    { {140, 158, 159, 124, 11},
+      {222, 241, 159, 58, 8},
+      {211, 239, 151, 147, 1},
+      {21, 207, 152, 247, 11}
+    },
+    { {94, 223, 124, 158, 10},
+      {234, 63, 157, 177, 15},
+      {87, 147, 239, 183, 10},
+      {248, 219, 159, 197, 7}
+    },
+    { {194, 247, 145, 150, 7},
+      {93, 150, 216, 179, 3},
+      {230, 152, 158, 244, 3},
+      {204, 209, 182, 155, 10}
+    },
+    { {104, 128, 250, 139, 3},
+      {38, 240, 52, 148, 7},
+      {205, 21, 240, 17, 6},
+      {226, 146, 192, 246, 4}
+    },
+    { {164, 118, 61, 185, 15},
+      {213, 53, 239, 54, 6},
+      {249, 219, 198, 226, 5},
+      {102, 207, 122, 202, 11}
+    },
+    { {232, 136, 149, 37, 11},
+      {30, 145, 51, 150, 8},
+      {218, 74, 145, 17, 7},
+      {22, 156, 200, 151, 8}
+    },
+    { {94, 137, 11, 42, 0},
+      {146, 106, 22, 129, 9},
+      {5, 77, 9, 23, 10},
+      {152, 22, 133, 100, 9}
+    },
+    { {168, 252, 52, 240, 6},
+      {67, 21, 242, 58, 14},
+      {96, 242, 195, 241, 5},
+      {117, 196, 250, 140, 2}
+    },
+    { {102, 80, 220, 156, 14},
+      {232, 181, 229, 145, 2},
+      {115, 147, 176, 166, 6},
+      {72, 154, 122, 209, 7}
+    },
+    { {217, 235, 112, 198, 6},
+      {43, 30, 88, 218, 15},
+      {102, 48, 237, 121, 11},
+      {245, 177, 167, 141, 4}
+    },
+    { {6, 57, 26, 27, 7},
+      {197, 114, 196, 21, 9},
+      {237, 133, 137, 198, 0},
+      {154, 130, 52, 234, 3}
+    },
+    { {100, 213, 236, 219, 14},
+      {224, 183, 245, 172, 7},
+      {125, 179, 122, 178, 6},
+      {227, 90, 254, 208, 7}
+    },
+    { {80, 23, 140, 98, 3},
+      {68, 155, 14, 168, 1},
+      {196, 99, 30, 128, 10},
+      {129, 87, 13, 146, 2}
+    },
+    { {128, 175, 91, 93, 8},
+      {57, 98, 157, 62, 8},
+      {27, 173, 175, 80, 1},
+      {23, 203, 148, 105, 12}
+    },
+    { {178, 110, 247, 189, 9},
+      {61, 237, 171, 55, 14},
+      {155, 222, 247, 100, 13},
+      {126, 205, 91, 123, 12}
+    },
+    { {210, 217, 41, 11, 11},
+      {84, 62, 21, 135, 13},
+      {221, 9, 73, 180, 11},
+      {190, 26, 135, 194, 10}
+    },
+    { {142, 230, 136, 246, 1},
+      {143, 132, 158, 43, 3},
+      {134, 241, 22, 119, 1},
+      {205, 71, 146, 31, 1}
+    },
+    { {144, 133, 126, 179, 5},
+      {36, 75, 214, 54, 7},
+      {172, 215, 234, 16, 9},
+      {230, 198, 189, 34, 4}
+    },
+    { {214, 244, 185, 51, 14},
+      {209, 156, 215, 183, 5},
+      {124, 201, 210, 246, 11},
+      {174, 222, 179, 152, 11}
+    },
+    { {68, 17, 154, 175, 12},
+      {200, 226, 71, 148, 3},
+      {63, 85, 152, 130, 2},
+      {194, 158, 36, 113, 3}
+    },
+    { {48, 177, 90, 93, 2},
+      {105, 122, 180, 28, 0},
+      {75, 165, 168, 208, 12},
+      {3, 130, 213, 233, 6}
+    },
+    { {66, 57, 254, 118, 6},
+      {105, 211, 198, 153, 13},
+      {102, 231, 249, 196, 2},
+      {185, 150, 60, 185, 6}
+    },
+    { {108, 223, 228, 140, 12},
+      {234, 167, 121, 160, 14},
+      {51, 18, 127, 179, 6},
+      {112, 89, 238, 85, 7}
+    },
+    { {110, 159, 250, 19, 0},
+      {226, 194, 188, 181, 13},
+      {12, 133, 255, 151, 6},
+      {186, 211, 212, 52, 7}
+    },
+    { {251, 180, 205, 219, 9},
+      {119, 169, 181, 239, 3},
+      {157, 187, 50, 221, 15},
+      {207, 122, 217, 94, 14}
+    },
+    { {106, 94, 54, 11, 12},
+      {66, 101, 105, 181, 13},
+      {61, 6, 199, 165, 6},
+      {186, 217, 106, 100, 2}
+    },
+    { {187, 128, 110, 3, 5},
+      {38, 73, 116, 71, 5},
+      {172, 7, 96, 29, 13},
+      {174, 34, 233, 38, 4}
+    },
+    { {151, 235, 197, 191, 10},
+      {185, 191, 155, 71, 11},
+      {95, 218, 61, 126, 9},
+      {222, 45, 159, 217, 13}
+    },
+    { {15, 117, 226, 80, 2},
+      {227, 214, 128, 105, 4},
+      {64, 164, 122, 239, 0},
+      {41, 96, 22, 188, 7}
+    },
+    { {11, 49, 73, 156, 8},
+      {123, 34, 133, 65, 2},
+      {19, 153, 40, 205, 0},
+      {72, 42, 20, 77, 14}
+    },
+    { {215, 174, 213, 193, 8},
+      {177, 137, 25, 255, 10},
+      {24, 58, 183, 94, 11},
+      {95, 249, 137, 24, 13}
+    },
+    { {210, 248, 182, 187, 9},
+      {69, 237, 147, 151, 15},
+      {157, 214, 209, 244, 11},
+      {254, 156, 155, 122, 2}
+    },
+    { {34, 55, 245, 42, 9},
+      {117, 163, 43, 49, 5},
+      {149, 74, 254, 196, 4},
+      {168, 205, 76, 90, 14}
+    },
+    { {68, 127, 202, 153, 4},
+      {225, 230, 204, 164, 10},
+      {41, 149, 63, 226, 2},
+      {82, 83, 54, 120, 7}
+    },
+    { {141, 146, 126, 41, 15},
+      {230, 113, 95, 86, 4},
+      {249, 71, 228, 155, 1},
+      {38, 175, 168, 230, 7}
+    },
+    { {13, 54, 100, 46, 5},
+      {239, 33, 74, 96, 5},
+      {167, 66, 102, 203, 0},
+      {160, 101, 40, 79, 7}
+    },
+    { {213, 191, 237, 221, 12},
+      {249, 171, 221, 238, 14},
+      {59, 187, 127, 218, 11},
+      {119, 123, 189, 89, 15}
+    },
+    { {139, 198, 212, 229, 1},
+      {46, 133, 26, 127, 2},
+      {138, 114, 182, 61, 1},
+      {79, 229, 138, 23, 4}
+    },
+    { {221, 244, 124, 110, 1},
+      {239, 45, 22, 250, 5},
+      {135, 99, 226, 251, 11},
+      {165, 246, 139, 79, 7}
+    },
+    { {69, 159, 45, 147, 1},
+      {212, 3, 156, 228, 15},
+      {140, 155, 79, 154, 2},
+      {242, 115, 156, 2, 11}
+    },
+    { {134, 21, 175, 172, 5},
+      {220, 227, 70, 35, 6},
+      {163, 95, 90, 134, 1},
+      {108, 70, 44, 115, 11}
+    },
+    { {52, 174, 42, 121, 9},
+      {133, 104, 191, 44, 12},
+      {153, 229, 71, 82, 12},
+      {51, 79, 209, 106, 1}
+    },
+    { {246, 135, 29, 191, 4},
+      {152, 43, 254, 183, 3},
+      {47, 219, 142, 22, 15},
+      {206, 215, 253, 65, 9}
+    },
+    { {22, 183, 193, 11, 4},
+      {241, 170, 88, 37, 1},
+      {45, 8, 62, 214, 8},
+      {138, 65, 165, 88, 15}
+    },
+    { {122, 54, 203, 160, 5},
+      {119, 200, 110, 161, 2},
+      {160, 93, 54, 197, 14},
+      {72, 87, 97, 62, 14}
+    },
+    { {127, 66, 16, 98, 10},
+      {130, 28, 43, 217, 1},
+      {84, 96, 132, 47, 14},
+      {137, 189, 67, 132, 1}
+    },
+    { {103, 112, 117, 206, 8},
+      {249, 37, 33, 217, 7},
+      {23, 58, 224, 238, 6},
+      {233, 184, 74, 73, 15}
+    },
+    { {167, 70, 60, 209, 12},
+      {128, 5, 237, 127, 6},
+      {56, 179, 198, 46, 5},
+      {111, 235, 122, 0, 1}
+    },
+    { {153, 117, 131, 110, 2},
+      {91, 254, 2, 106, 1},
+      {71, 108, 26, 233, 9},
+      {133, 100, 7, 253, 10}
+    },
+    { {81, 145, 211, 21, 9},
+      {124, 202, 145, 212, 0},
+      {154, 140, 184, 152, 10},
+      {2, 184, 149, 51, 14}
+    },
+    { {53, 76, 2, 185, 8},
+      {128, 108, 163, 100, 10},
+      {25, 212, 3, 42, 12},
+      {82, 108, 83, 96, 1}
+    },
+    { {208, 27, 128, 57, 5},
+      {68, 170, 202, 134, 8},
+      {169, 192, 29, 128, 11},
+      {22, 21, 53, 82, 2}
+    },
+    { {123, 39, 171, 229, 3},
+      {31, 218, 46, 237, 6},
+      {202, 125, 94, 77, 14},
+      {107, 119, 69, 191, 8}
+    },
+    { {168, 140, 171, 169, 4},
+      {18, 224, 118, 38, 14},
+      {41, 93, 83, 17, 5},
+      {118, 70, 224, 116, 8}
+    },
+    { {138, 112, 46, 100, 13},
+      {79, 69, 71, 11, 4},
+      {178, 103, 64, 229, 1},
+      {45, 14, 42, 47, 2}
+    },
+    { {17, 144, 216, 79, 13},
+      {108, 168, 85, 92, 1},
+      {191, 33, 176, 152, 8},
+      {131, 170, 161, 83, 6}
+    },
+    { {168, 56, 156, 230, 8},
+      {75, 129, 39, 26, 11},
+      {22, 115, 145, 193, 5},
+      {213, 142, 72, 29, 2}
+    },
+    { {99, 172, 245, 8, 11},
+      {53, 177, 49, 241, 12},
+      {209, 10, 243, 92, 6},
+      {56, 248, 200, 218, 12}
+    },
+    { {153, 224, 174, 41, 11},
+      {7, 253, 23, 70, 4},
+      {217, 71, 80, 121, 9},
+      {38, 46, 139, 254, 0}
+    },
+    { {232, 139, 97, 157, 3},
+      {62, 50, 184, 134, 14},
+      {203, 152, 109, 17, 7},
+      {118, 17, 212, 199, 12}
+    },
+    { {17, 175, 187, 184, 0},
+      {17, 234, 158, 112, 14},
+      {1, 221, 223, 88, 8},
+      {112, 231, 149, 120, 8}
+    },
+    { {98, 250, 27, 120, 14},
+      {81, 116, 255, 153, 8},
+      {113, 237, 133, 244, 6},
+      {25, 159, 242, 232, 10}
+    },
+    { {241, 171, 236, 42, 5},
+      {37, 171, 126, 194, 13},
+      {165, 67, 125, 88, 15},
+      {180, 55, 237, 90, 4}
+    },
+    { {164, 120, 185, 64, 2},
+      {209, 148, 36, 26, 12},
+      {64, 41, 209, 226, 5},
+      {53, 130, 66, 152, 11}
+    },
+    { {78, 147, 112, 26, 3},
+      {230, 50, 152, 145, 5},
+      {197, 128, 236, 151, 2},
+      {168, 145, 148, 198, 7}
+    },
+    { {93, 31, 190, 33, 6},
+      {194, 219, 78, 244, 12},
+      {104, 71, 223, 139, 10},
+      {50, 247, 45, 180, 3}
+    },
+    { {222, 153, 178, 148, 7},
+      {206, 218, 208, 147, 14},
+      {226, 148, 217, 151, 11},
+      {124, 144, 181, 183, 3}
+    },
+    { {119, 8, 209, 116, 7},
+      {188, 152, 226, 217, 8},
+      {226, 232, 177, 14, 14},
+      {25, 180, 113, 147, 13}
+    },
+    { {187, 192, 140, 154, 8},
+      {2, 173, 181, 67, 3},
+      {21, 147, 16, 61, 13},
+      {204, 42, 219, 84, 0}
+    },
+    { {234, 28, 8, 68, 4},
+      {74, 0, 100, 171, 8},
+      {34, 33, 3, 133, 7},
+      {29, 82, 96, 5, 2}
+    },
+    { {184, 154, 172, 7, 8},
+      {74, 137, 61, 6, 13},
+      {30, 3, 85, 145, 13},
+      {182, 11, 201, 21, 2}
+    },
+    { {151, 79, 121, 58, 13},
+      {180, 46, 207, 115, 13},
+      {181, 201, 239, 46, 9},
+      {188, 239, 55, 66, 13}
+    },
+    { {124, 55, 168, 31, 9},
+      {207, 170, 173, 164, 5},
+      {159, 129, 94, 195, 14},
+      {162, 91, 85, 95, 3}
+    },
+    { {132, 5, 69, 184, 11},
+      {180, 51, 131, 34, 2},
+      {209, 218, 42, 2, 1},
+      {68, 76, 28, 194, 13}
+    },
+    { {137, 136, 232, 242, 10},
+      {34, 144, 151, 74, 15},
+      {84, 241, 113, 25, 1},
+      {245, 46, 144, 148, 4}
+    },
+    { {122, 5, 47, 138, 7},
+      {22, 123, 100, 161, 7},
+      {229, 31, 74, 5, 14},
+      {232, 82, 109, 230, 8}
+    },
+    { {192, 107, 231, 168, 3},
+      {53, 247, 10, 130, 14},
+      {193, 94, 125, 96, 3},
+      {116, 21, 14, 250, 12}
+    },
+    { {225, 214, 143, 229, 13},
+      {92, 197, 127, 238, 2},
+      {186, 127, 22, 184, 7},
+      {71, 127, 234, 51, 10}
+    },
+    { {135, 193, 94, 208, 1},
+      {164, 71, 148, 91, 2},
+      {128, 183, 168, 62, 1},
+      {77, 162, 158, 34, 5}
+    },
+    { {177, 141, 71, 4, 14},
+      {56, 91, 113, 98, 8},
+      {114, 14, 43, 24, 13},
+      {20, 104, 237, 161, 12}
+    },
+    { {185, 96, 48, 55, 10},
+      {11, 28, 163, 86, 5},
+      {94, 192, 192, 105, 13},
+      {166, 172, 83, 141, 0}
+    },
+    { {57, 22, 249, 242, 5},
+      {118, 136, 238, 120, 7},
+      {164, 249, 246, 137, 12},
+      {225, 231, 113, 22, 14}
+    },
+    { {91, 245, 56, 225, 10},
+      {67, 30, 23, 253, 6},
+      {88, 113, 202, 253, 10},
+      {107, 254, 135, 140, 2}
+    },
+    { {69, 2, 140, 137, 3},
+      {132, 177, 12, 196, 2},
+      {201, 19, 20, 10, 2},
+      {66, 51, 8, 210, 1}
+    },
+    { {139, 247, 79, 21, 14},
+      {123, 87, 221, 103, 0},
+      {122, 143, 46, 253, 1},
+      {14, 107, 190, 173, 14}
+    },
+    { {52, 169, 38, 14, 14},
+      {137, 123, 113, 0, 13},
+      {119, 6, 73, 82, 12},
+      {176, 8, 237, 233, 1}
+    },
+    { {254, 161, 180, 87, 2},
+      {139, 155, 176, 159, 5},
+      {78, 162, 216, 87, 15},
+      {175, 144, 221, 157, 1}
+    },
+    { {170, 172, 74, 33, 2},
+      {35, 80, 54, 39, 8},
+      {72, 69, 35, 85, 5},
+      {30, 70, 192, 172, 4}
+    },
+    { {199, 149, 142, 146, 10},
+      {192, 211, 149, 227, 3},
+      {84, 151, 26, 158, 3},
+      {204, 122, 156, 176, 3}
+    },
+    { {77, 114, 150, 13, 7},
+      {207, 245, 72, 212, 0},
+      {235, 6, 148, 235, 2},
+      {2, 177, 42, 255, 3}
+    },
+    { {198, 113, 60, 138, 13},
+      {197, 39, 69, 147, 7},
+      {181, 19, 200, 230, 3},
+      {236, 154, 46, 74, 3}
+    },
+    { {26, 219, 8, 147, 10},
+      {66, 30, 157, 5, 11},
+      {92, 145, 13, 181, 8},
+      {218, 11, 151, 132, 2}
+    },
+    { {235, 178, 94, 21, 3},
+      {111, 81, 188, 215, 0},
+      {202, 135, 164, 221, 7},
+      {14, 179, 216, 175, 6}
+    },
+    { {26, 140, 101, 49, 13},
+      {54, 9, 211, 37, 12},
+      {184, 202, 99, 21, 8},
+      {58, 76, 185, 6, 12}
+    },
+    { {184, 194, 144, 210, 13},
+      {6, 140, 249, 26, 3},
+      {180, 176, 148, 49, 13},
+      {197, 137, 243, 22, 0}
+    },
+    { {237, 10, 185, 59, 12},
+      {146, 160, 239, 214, 13},
+      {61, 201, 213, 11, 7},
+      {182, 191, 112, 84, 9}
+    },
+    { {53, 64, 254, 171, 14},
+      {160, 253, 103, 84, 7},
+      {125, 87, 240, 42, 12},
+      {226, 174, 107, 240, 5}
+    },
+    { {77, 141, 169, 163, 10},
+      {146, 146, 23, 228, 15},
+      {92, 89, 91, 27, 2},
+      {242, 126, 132, 148, 9}
+    },
+    { {25, 111, 83, 7, 9},
+      {63, 78, 9, 116, 9},
+      {158, 12, 175, 105, 8},
+      {146, 233, 7, 47, 12}
+    },
+    { {170, 161, 45, 108, 8},
+      {27, 35, 55, 11, 4},
+      {19, 107, 72, 85, 5},
+      {45, 14, 204, 77, 8}
+    },
+    { {212, 51, 219, 225, 6},
+      {241, 218, 78, 158, 2},
+      {104, 125, 188, 194, 11},
+      {71, 151, 37, 184, 15}
+    },
+    { {41, 68, 117, 210, 10},
+      {50, 21, 161, 120, 7},
+      {84, 186, 226, 41, 4},
+      {225, 232, 90, 132, 12}
+    },
+    { {222, 189, 217, 145, 6},
+      {243, 154, 212, 183, 10},
+      {104, 153, 187, 215, 11},
+      {94, 210, 181, 156, 15}
+    },
+    { {123, 98, 241, 8, 1},
+      {55, 172, 40, 209, 4},
+      {129, 8, 244, 109, 14},
+      {40, 177, 67, 94, 12}
+    },
+    { {16, 243, 23, 219, 8},
+      {81, 111, 153, 28, 3},
+      {29, 190, 140, 240, 8},
+      {195, 137, 159, 104, 10}
+    },
+    { {184, 117, 135, 64, 5},
+      {87, 207, 96, 42, 0},
+      {160, 46, 26, 225, 13},
+      {5, 64, 111, 62, 10}
+    },
+    { {154, 182, 79, 175, 0},
+      {123, 105, 30, 39, 3},
+      {15, 95, 38, 213, 9},
+      {206, 71, 137, 109, 14}
+    },
+    { {212, 4, 243, 160, 1},
+      {180, 200, 2, 178, 6},
+      {128, 92, 242, 2, 11},
+      {100, 212, 1, 50, 13}
+    },
+    { {225, 106, 123, 127, 5},
+      {61, 100, 238, 222, 13},
+      {175, 237, 229, 104, 7},
+      {183, 183, 114, 107, 12}
+    },
+    { {12, 218, 188, 26, 8},
+      {194, 165, 157, 16, 13},
+      {21, 131, 213, 179, 0},
+      {176, 139, 154, 84, 3}
+    },
+    { {4, 96, 183, 149, 11},
+      {157, 213, 129, 20, 6},
+      {218, 158, 208, 98, 0},
+      {98, 136, 26, 187, 9}
+    },
+    { {28, 206, 196, 143, 3},
+      {174, 189, 24, 36, 11},
+      {207, 18, 55, 51, 8},
+      {210, 65, 139, 215, 5}
+    },
+    { {35, 222, 229, 165, 12},
+      {120, 133, 123, 101, 14},
+      {58, 90, 119, 188, 4},
+      {122, 109, 234, 17, 14}
+    },
+    { {99, 5, 255, 232, 5},
+      {52, 227, 102, 249, 6},
+      {161, 127, 250, 12, 6},
+      {105, 246, 108, 114, 12}
+    },
+    { {225, 195, 39, 185, 4},
+      {16, 103, 250, 198, 6},
+      {41, 222, 76, 56, 7},
+      {102, 53, 254, 96, 8}
+    },
+    { {140, 43, 164, 30, 0},
+      {139, 163, 136, 2, 13},
+      {7, 130, 93, 67, 1},
+      {180, 1, 28, 93, 1}
+    },
+    { {28, 217, 222, 180, 0},
+      {234, 207, 150, 16, 10},
+      {2, 215, 185, 179, 8},
+      {80, 134, 159, 53, 7}
+    },
+    { {85, 100, 240, 183, 1},
+      {173, 140, 130, 244, 7},
+      {142, 208, 242, 106, 10},
+      {226, 244, 19, 27, 5}
+    },
+    { {176, 199, 42, 118, 10},
+      {8, 94, 191, 42, 5},
+      {86, 229, 78, 48, 13},
+      {165, 79, 215, 161, 0}
+    },
+    { {231, 13, 80, 70, 9},
+      {172, 2, 33, 251, 9},
+      {150, 32, 171, 14, 7},
+      {157, 248, 68, 3, 5}
+    },
+    { {50, 149, 124, 126, 3},
+      {108, 59, 182, 57, 5},
+      {199, 227, 234, 148, 12},
+      {169, 198, 221, 195, 6}
+    },
+    { {71, 130, 81, 20, 11},
+      {188, 16, 153, 209, 0},
+      {210, 136, 164, 30, 2},
+      {8, 185, 144, 131, 13}
+    },
+    { {120, 242, 17, 22, 15},
+      {95, 28, 249, 144, 1},
+      {246, 136, 132, 241, 14},
+      {128, 153, 243, 143, 10}
+    },
+    { {144, 251, 64, 119, 10},
+      {105, 30, 155, 14, 9},
+      {94, 224, 45, 240, 9},
+      {151, 13, 151, 137, 6}
+    },
+    { {162, 111, 219, 64, 3},
+      {53, 214, 44, 59, 8},
+      {192, 45, 191, 100, 5},
+      {29, 195, 70, 186, 12}
+    },
+    { {36, 36, 50, 53, 7},
+      {141, 80, 226, 52, 4},
+      {234, 196, 194, 66, 4},
+      {34, 196, 112, 171, 1}
+    },
+    { {135, 138, 180, 213, 3},
+      {140, 145, 152, 95, 14},
+      {202, 178, 213, 30, 1},
+      {127, 161, 152, 147, 1}
+    },
+    { {238, 169, 194, 236, 0},
+      {171, 226, 50, 139, 10},
+      {3, 116, 57, 87, 7},
+      {93, 20, 196, 125, 5}
+    },
+    { {194, 91, 81, 134, 10},
+      {120, 22, 9, 147, 11},
+      {86, 24, 173, 164, 3},
+      {220, 153, 6, 129, 14}
+    },
+    { {154, 26, 220, 22, 4},
+      {106, 137, 204, 19, 9},
+      {38, 131, 181, 133, 9},
+      {156, 131, 57, 21, 6}
+    },
+    { {115, 131, 224, 101, 1},
+      {44, 138, 58, 205, 4},
+      {138, 96, 124, 28, 14},
+      {43, 53, 197, 19, 4}
+    },
+    { {25, 137, 191, 169, 14},
+      {18, 251, 87, 84, 14},
+      {121, 95, 217, 25, 8},
+      {114, 174, 173, 244, 8}
+    },
+    { {29, 136, 219, 124, 13},
+      {190, 232, 215, 88, 8},
+      {179, 237, 177, 27, 8},
+      {17, 174, 177, 119, 13}
+    },
+    { {58, 57, 201, 98, 1},
+      {119, 138, 38, 9, 9},
+      {132, 105, 57, 197, 12},
+      {153, 6, 69, 30, 14}
+    },
+    { {196, 95, 111, 141, 1},
+      {252, 103, 12, 166, 14},
+      {139, 31, 111, 162, 3},
+      {118, 83, 14, 99, 15}
+    },
+    { {127, 212, 244, 88, 13},
+      {230, 173, 241, 249, 4},
+      {177, 162, 242, 191, 14},
+      {41, 248, 251, 86, 7}
+    },
+    { {235, 94, 5, 198, 13},
+      {94, 5, 105, 235, 11},
+      {182, 58, 7, 173, 7},
+      {221, 121, 106, 7, 10}
+    },
+    { {0, 222, 87, 31, 10},
+      {120, 117, 153, 52, 9},
+      {95, 142, 167, 176, 0},
+      {146, 201, 154, 225, 14}
+    },
+    { {48, 182, 57, 119, 2},
+      {89, 24, 190, 60, 5},
+      {78, 233, 198, 208, 12},
+      {163, 199, 209, 137, 10}
+    },
+    { {217, 17, 79, 9, 9},
+      {118, 107, 5, 198, 0},
+      {153, 15, 40, 137, 11},
+      {6, 58, 13, 102, 14}
+    },
+    { {11, 138, 78, 254, 13},
+      {46, 97, 223, 73, 11},
+      {183, 247, 37, 29, 0},
+      {217, 47, 184, 103, 4}
+    },
+    { {150, 200, 148, 195, 5},
+      {132, 141, 80, 31, 11},
+      {172, 50, 145, 54, 9},
+      {223, 128, 171, 18, 1}
+    },
+    { {222, 86, 207, 27, 9},
+      {246, 237, 141, 167, 1},
+      {157, 143, 54, 167, 11},
+      {142, 91, 27, 118, 15}
+    },
+    { {233, 20, 44, 234, 11},
+      {70, 49, 39, 234, 7},
+      {213, 115, 66, 137, 7},
+      {229, 126, 72, 198, 2}
+    },
+    { {166, 193, 149, 63, 7},
+      {156, 183, 242, 23, 1},
+      {239, 202, 152, 54, 5},
+      {142, 132, 254, 211, 9}
+    },
+    { {112, 249, 99, 53, 11},
+      {125, 94, 179, 132, 12},
+      {218, 204, 105, 240, 14},
+      {50, 28, 215, 171, 14}
+    },
+    { {60, 210, 112, 229, 12},
+      {234, 12, 123, 28, 6},
+      {58, 112, 228, 179, 12},
+      {99, 141, 227, 5, 7}
+    },
+    { {67, 44, 58, 151, 8},
+      {9, 64, 133, 245, 15},
+      {30, 149, 195, 76, 2},
+      {250, 250, 16, 41, 0}
+    },
+    { {96, 54, 213, 83, 2},
+      {113, 145, 168, 188, 1},
+      {76, 170, 182, 192, 6},
+      {131, 209, 88, 152, 14}
+    },
+    { {135, 118, 248, 196, 14},
+      {233, 148, 77, 123, 6},
+      {114, 49, 246, 238, 1},
+      {109, 235, 34, 153, 7}
+    },
+    { {32, 85, 144, 158, 12},
+      {72, 166, 225, 48, 3},
+      {55, 144, 154, 160, 4},
+      {192, 200, 118, 81, 2}
+    },
+    { {51, 149, 147, 18, 0},
+      {80, 202, 176, 113, 1},
+      {4, 140, 154, 156, 12},
+      {136, 224, 213, 48, 10}
+    },
+    { {61, 129, 11, 57, 10},
+      {146, 122, 183, 68, 0},
+      {89, 205, 8, 27, 12},
+      {2, 46, 213, 228, 9}
+    },
+    { {39, 67, 30, 187, 2},
+      {128, 119, 174, 85, 3},
+      {77, 215, 140, 46, 4},
+      {202, 167, 94, 224, 1}
+    },
+    { {240, 133, 185, 233, 2},
+      {16, 186, 54, 190, 6},
+      {73, 121, 218, 16, 15},
+      {103, 214, 197, 208, 8}
+    },
+    { {163, 11, 146, 226, 0},
+      {0, 194, 42, 91, 11},
+      {4, 116, 157, 12, 5},
+      {221, 165, 68, 48, 0}
+    },
+    { {220, 20, 37, 232, 5},
+      {214, 41, 66, 170, 6},
+      {161, 122, 66, 131, 11},
+      {101, 84, 41, 70, 11}
+    },
+    { {180, 171, 135, 231, 11},
+      {157, 219, 59, 14, 11},
+      {222, 126, 29, 82, 13},
+      {215, 13, 205, 187, 9}
+    },
+    { {143, 183, 62, 39, 0},
+      {203, 67, 30, 119, 5},
+      {14, 71, 206, 223, 1},
+      {174, 231, 140, 45, 3}
+    },
+    { {255, 211, 18, 95, 2},
+      {202, 126, 184, 223, 1},
+      {79, 164, 140, 191, 15},
+      {143, 177, 215, 229, 3}
+    },
+    { {5, 76, 149, 162, 10},
+      {144, 149, 3, 112, 11},
+      {84, 90, 147, 42, 0},
+      {208, 236, 10, 144, 9}
+    },
+    { {29, 121, 189, 67, 6},
+      {211, 159, 68, 92, 13},
+      {108, 43, 217, 235, 8},
+      {179, 162, 47, 156, 11}
+    },
+    { {49, 220, 189, 155, 11},
+      {84, 189, 181, 116, 15},
+      {221, 155, 211, 184, 12},
+      {242, 234, 219, 210, 10}
+    },
+    { {93, 131, 76, 204, 2},
+      {170, 59, 28, 200, 2},
+      {67, 51, 44, 27, 10},
+      {65, 51, 141, 197, 5}
+    },
+    { {184, 110, 95, 128, 10},
+      {51, 93, 45, 50, 10},
+      {80, 31, 167, 97, 13},
+      {84, 203, 75, 172, 12}
+    },
+    { {221, 181, 2, 55, 14},
+      {203, 90, 211, 230, 1},
+      {126, 196, 10, 219, 11},
+      {134, 124, 181, 173, 3}
+    },
+    { {204, 212, 249, 32, 2},
+      {242, 148, 22, 178, 4},
+      {64, 73, 242, 179, 3},
+      {36, 214, 130, 148, 15}
+    },
+    { {222, 175, 20, 123, 3},
+      {135, 59, 154, 191, 9},
+      {205, 226, 143, 87, 11},
+      {159, 213, 157, 206, 1}
+    },
+    { {157, 32, 19, 22, 15},
+      {159, 88, 193, 82, 1},
+      {246, 140, 128, 75, 9},
+      {132, 168, 49, 175, 9}
+    },
+    { {124, 189, 240, 175, 1},
+      {239, 170, 50, 180, 15},
+      {143, 80, 251, 211, 14},
+      {242, 212, 197, 95, 7}
+    },
+    { {34, 195, 216, 114, 10},
+      {32, 150, 191, 25, 1},
+      {84, 225, 188, 52, 4},
+      {137, 143, 214, 144, 4}
+    },
+    { {69, 199, 100, 214, 12},
+      {168, 7, 217, 232, 7},
+      {54, 178, 110, 58, 2},
+      {225, 121, 190, 1, 5}
+    },
+    { {141, 147, 90, 116, 0},
+      {234, 66, 158, 90, 0},
+      {2, 229, 172, 155, 1},
+      {5, 167, 148, 37, 7}
+    },
+    { {177, 161, 236, 16, 8},
+      {33, 139, 181, 66, 4},
+      {16, 131, 120, 88, 13},
+      {36, 42, 221, 24, 4}
+    },
+    { {208, 121, 53, 51, 6},
+      {81, 31, 194, 150, 13},
+      {108, 202, 201, 224, 11},
+      {182, 148, 63, 136, 10}
+    },
+    { {74, 81, 93, 164, 6},
+      {122, 23, 70, 145, 2},
+      {98, 91, 168, 165, 2},
+      {72, 150, 46, 133, 14}
+    },
+    { {58, 45, 19, 35, 5},
+      {23, 74, 98, 53, 9},
+      {172, 76, 139, 69, 12},
+      {154, 196, 101, 46, 8}
+    },
+    { {236, 65, 230, 22, 1},
+      {174, 199, 160, 130, 5},
+      {134, 134, 120, 35, 7},
+      {164, 16, 94, 55, 5}
+    },
+    { {127, 172, 78, 24, 2},
+      {163, 121, 180, 225, 8},
+      {65, 135, 35, 95, 14},
+      {24, 114, 217, 236, 5}
+    },
+    { {115, 198, 100, 107, 13},
+      {36, 45, 123, 237, 5},
+      {189, 98, 102, 60, 14},
+      {171, 125, 235, 66, 4}
+    },
+    { {77, 251, 76, 21, 7},
+      {239, 23, 220, 196, 8},
+      {234, 131, 45, 251, 2},
+      {18, 51, 190, 143, 7}
+    },
+    { {229, 15, 78, 90, 11},
+      {164, 115, 173, 234, 9},
+      {213, 167, 47, 10, 7},
+      {149, 123, 92, 226, 5}
+    },
+    { {122, 161, 57, 166, 0},
+      {27, 10, 54, 145, 7},
+      {6, 89, 200, 85, 14},
+      {232, 150, 197, 13, 8}
+    },
+    { {18, 122, 254, 87, 13},
+      {109, 205, 205, 29, 13},
+      {190, 167, 245, 228, 8},
+      {187, 139, 59, 59, 6}
+    },
+    { {168, 230, 106, 159, 15},
+      {47, 116, 253, 38, 7},
+      {255, 149, 102, 113, 5},
+      {230, 75, 242, 239, 4}
+    },
+    { {89, 155, 96, 189, 8},
+      {106, 42, 155, 196, 14},
+      {27, 208, 109, 153, 10},
+      {114, 61, 149, 69, 6}
+    },
+    { {49, 234, 54, 102, 9},
+      {13, 77, 59, 88, 13},
+      {150, 102, 197, 120, 12},
+      {177, 173, 203, 43, 0}
+    },
+    { {55, 203, 228, 166, 3},
+      {172, 159, 58, 65, 15},
+      {198, 82, 125, 62, 12},
+      {248, 37, 207, 147, 5}
+    },
+    { {134, 60, 248, 42, 13},
+      {229, 160, 71, 51, 13},
+      {181, 65, 243, 198, 1},
+      {188, 206, 32, 90, 7}
+    },
+    { {14, 181, 149, 30, 6},
+      {219, 179, 208, 49, 1},
+      {103, 138, 154, 215, 0},
+      {136, 192, 188, 221, 11}
+    },
+    { {197, 251, 85, 118, 12},
+      {249, 7, 219, 218, 9},
+      {54, 234, 173, 250, 3},
+      {149, 189, 190, 9, 15}
+    },
+    { {123, 128, 210, 239, 5},
+      {46, 232, 114, 221, 3},
+      {175, 116, 176, 29, 14},
+      {203, 180, 225, 119, 4}
+    },
+    { {195, 179, 195, 50, 10},
+      {113, 210, 155, 195, 1},
+      {84, 204, 60, 220, 3},
+      {140, 61, 148, 184, 14}
+    },
+    { {103, 62, 26, 116, 11},
+      {205, 80, 175, 249, 8},
+      {210, 229, 135, 206, 6},
+      {25, 255, 80, 171, 3}
+    },
+    { {146, 201, 210, 150, 1},
+      {44, 206, 144, 19, 11},
+      {134, 148, 185, 52, 9},
+      {220, 128, 151, 51, 4}
+    },
+    { {127, 25, 25, 12, 11},
+      {222, 58, 37, 209, 8},
+      {211, 9, 137, 143, 14},
+      {24, 186, 69, 199, 11}
+    },
+    { {144, 112, 164, 195, 10},
+      {65, 157, 1, 14, 7},
+      {92, 50, 80, 224, 9},
+      {231, 8, 11, 152, 2}
+    },
+    { {113, 67, 83, 178, 1},
+      {52, 78, 170, 208, 3},
+      {132, 220, 172, 40, 14},
+      {192, 181, 87, 34, 12}
+    },
+    { {251, 75, 181, 78, 15},
+      {30, 191, 105, 219, 13},
+      {247, 42, 221, 45, 15},
+      {189, 185, 111, 215, 8}
+    },
+    { {197, 129, 104, 9, 8},
+      {160, 34, 21, 198, 4},
+      {25, 1, 104, 26, 3},
+      {38, 58, 132, 64, 5}
+    },
+    { {43, 241, 86, 121, 0},
+      {99, 103, 178, 93, 0},
+      {9, 230, 168, 253, 4},
+      {11, 164, 222, 108, 6}
+    },
+    { {139, 50, 134, 244, 8},
+      {75, 193, 139, 75, 2},
+      {18, 246, 20, 205, 1},
+      {77, 45, 24, 61, 2}
+    },
+    { {35, 88, 1, 235, 6},
+      {80, 52, 98, 77, 11},
+      {109, 120, 1, 172, 4},
+      {219, 36, 98, 192, 10}
+    },
+    { {42, 83, 143, 50, 8},
+      {82, 199, 175, 1, 1},
+      {20, 207, 28, 165, 4},
+      {136, 15, 94, 52, 10}
+    },
+    { {16, 109, 126, 84, 8},
+      {41, 79, 133, 56, 12},
+      {18, 167, 235, 96, 8},
+      {49, 202, 31, 41, 4}
+    },
+    { {70, 253, 197, 231, 10},
+      {249, 151, 19, 173, 11},
+      {94, 122, 59, 246, 2},
+      {219, 92, 142, 153, 15}
+    },
+    { {69, 106, 10, 93, 0},
+      {137, 100, 140, 204, 8},
+      {11, 165, 5, 106, 2},
+      {19, 51, 18, 105, 1}
+    },
+    { {217, 50, 39, 125, 10},
+      {91, 121, 139, 206, 4},
+      {91, 238, 68, 201, 11},
+      {39, 61, 25, 237, 10}
+    },
+    { {97, 59, 235, 152, 1},
+      {117, 226, 172, 192, 14},
+      {129, 157, 125, 200, 6},
+      {112, 51, 84, 122, 14}
+    },
+    { {191, 19, 181, 70, 0},
+      {218, 139, 40, 91, 5},
+      {6, 42, 220, 143, 13},
+      {173, 161, 77, 21, 11}
+    },
+    { {130, 186, 168, 203, 13},
+      {69, 160, 93, 15, 15},
+      {189, 49, 85, 212, 1},
+      {255, 11, 160, 90, 2}
+    },
+    { {81, 205, 99, 27, 3},
+      {52, 126, 144, 228, 13},
+      {205, 140, 107, 56, 10},
+      {178, 112, 151, 226, 12}
+    },
+    { {112, 171, 240, 76, 7},
+      {45, 186, 120, 152, 12},
+      {227, 32, 253, 80, 14},
+      {49, 145, 229, 219, 4}
+    },
+    { {170, 102, 185, 24, 7},
+      {23, 180, 236, 51, 4},
+      {225, 137, 214, 101, 5},
+      {44, 195, 114, 222, 8}
+    },
+    { {140, 20, 60, 97, 6},
+      {194, 17, 70, 62, 4},
+      {104, 99, 194, 131, 1},
+      {39, 198, 40, 132, 3}
+    },
+    { {241, 160, 157, 75, 0},
+      {17, 169, 52, 222, 1},
+      {13, 43, 144, 88, 15},
+      {135, 178, 201, 88, 8}
+    },
+    { {95, 27, 95, 220, 4},
+      {250, 107, 204, 217, 10},
+      {35, 191, 173, 143, 10},
+      {89, 179, 61, 101, 15}
+    },
+    { {104, 72, 189, 153, 8},
+      {18, 165, 165, 148, 14},
+      {25, 155, 209, 33, 6},
+      {114, 154, 90, 84, 8}
+    },
+    { {235, 245, 28, 134, 10},
+      {75, 23, 53, 243, 3},
+      {86, 19, 138, 253, 7},
+      {204, 250, 206, 141, 2}
+    },
+    { {201, 92, 23, 53, 15},
+      {94, 85, 195, 246, 8},
+      {250, 206, 131, 169, 3},
+      {22, 252, 58, 167, 10}
+    },
+    { {164, 229, 178, 170, 9},
+      {133, 230, 51, 50, 7},
+      {149, 84, 218, 114, 5},
+      {228, 204, 198, 122, 1}
+    },
+    { {137, 187, 40, 109, 9},
+      {79, 34, 31, 78, 12},
+      {155, 97, 77, 217, 1},
+      {55, 47, 132, 79, 2}
+    },
+    { {252, 83, 211, 81, 9},
+      {246, 206, 169, 158, 0},
+      {152, 172, 188, 163, 15},
+      {7, 153, 87, 54, 15}
+    },
+    { {132, 250, 176, 250, 11},
+      {197, 180, 155, 26, 15},
+      {213, 240, 213, 242, 1},
+      {245, 141, 146, 218, 3}
+    },
+    { {135, 156, 9, 173, 7},
+      {220, 48, 86, 103, 10},
+      {235, 89, 3, 158, 1},
+      {94, 102, 160, 195, 11}
+    },
+    { {84, 19, 120, 184, 10},
+      {224, 58, 143, 144, 6},
+      {81, 209, 236, 130, 10},
+      {96, 159, 21, 192, 7}
+    },
+    { {93, 207, 118, 108, 5},
+      {174, 111, 90, 248, 12},
+      {163, 102, 239, 59, 10},
+      {49, 245, 175, 103, 5}
+    },
+    { {15, 128, 112, 181, 8},
+      {170, 0, 147, 85, 6},
+      {26, 208, 224, 31, 0},
+      {106, 172, 144, 5, 5}
+    },
+    { {208, 181, 28, 15, 14},
+      {73, 59, 85, 182, 1},
+      {127, 3, 138, 208, 11},
+      {134, 218, 173, 201, 2}
+    },
+    { {132, 202, 160, 119, 12},
+      {136, 132, 219, 14, 13},
+      {62, 224, 85, 50, 1},
+      {183, 13, 178, 17, 1}
+    },
+    { {237, 211, 180, 253, 12},
+      {202, 167, 251, 222, 6},
+      {59, 242, 220, 187, 7},
+      {103, 189, 254, 85, 3}
+    },
+    { {54, 161, 151, 8, 4},
+      {145, 235, 112, 17, 0},
+      {33, 14, 152, 86, 12},
+      {8, 128, 237, 120, 9}
+    },
+    { {140, 65, 87, 242, 7},
+      {182, 87, 194, 26, 3},
+      {228, 254, 168, 35, 1},
+      {197, 132, 62, 166, 13}
+    },
+    { {236, 146, 34, 145, 13},
+      {198, 64, 249, 134, 6},
+      {184, 148, 68, 147, 7},
+      {102, 25, 240, 38, 3}
+    },
+    { {44, 51, 74, 17, 10},
+      {227, 82, 173, 4, 0},
+      {88, 133, 44, 195, 4},
+      {2, 11, 84, 172, 7}
+    },
+    { {149, 119, 148, 119, 8},
+      {201, 143, 139, 126, 1},
+      {30, 226, 158, 234, 9},
+      {135, 237, 31, 25, 3}
+    },
+    { {79, 158, 57, 137, 13},
+      {214, 32, 93, 245, 14},
+      {185, 25, 199, 159, 2},
+      {122, 251, 160, 70, 11}
+    },
+    { {181, 203, 34, 59, 11},
+      {132, 126, 187, 70, 13},
+      {221, 196, 77, 58, 13},
+      {182, 45, 215, 226, 1}
+    },
+    { {238, 226, 189, 59, 11},
+      {151, 181, 191, 151, 5},
+      {221, 203, 212, 119, 7},
+      {174, 159, 218, 222, 9}
+    },
+    { {133, 212, 25, 195, 12},
+      {208, 4, 85, 126, 3},
+      {60, 57, 130, 186, 1},
+      {199, 234, 162, 0, 11}
+    },
+    { {186, 35, 215, 19, 11},
+      {55, 219, 169, 23, 1},
+      {220, 142, 188, 69, 13},
+      {142, 137, 93, 190, 12}
+    },
+    { {141, 72, 238, 157, 1},
+      {174, 229, 132, 70, 14},
+      {139, 151, 113, 43, 1},
+      {118, 34, 26, 119, 5}
+    },
+    { {120, 69, 116, 14, 9},
+      {46, 47, 33, 176, 5},
+      {151, 2, 234, 33, 14},
+      {160, 216, 79, 71, 4}
+    },
+    { {100, 231, 234, 47, 8},
+      {169, 230, 63, 164, 5},
+      {31, 69, 126, 114, 6},
+      {162, 95, 198, 121, 5}
+    },
+    { {100, 118, 246, 62, 4},
+      {233, 229, 234, 176, 5},
+      {39, 198, 246, 226, 6},
+      {160, 213, 122, 121, 7}
+    },
+    { {14, 238, 158, 149, 0},
+      {139, 197, 156, 53, 10},
+      {10, 151, 151, 119, 0},
+      {90, 195, 154, 61, 1}
+    },
+    { {220, 175, 168, 110, 11},
+      {143, 186, 31, 170, 13},
+      {215, 97, 95, 83, 11},
+      {181, 95, 133, 223, 1}
+    },
+    { {135, 109, 56, 242, 14},
+      {129, 22, 199, 123, 15},
+      {116, 241, 203, 110, 1},
+      {253, 238, 54, 136, 1}
+    },
+    { {59, 235, 39, 76, 5},
+      {31, 111, 120, 73, 12},
+      {163, 46, 77, 125, 12},
+      {57, 33, 239, 111, 8}
+    },
+    { {184, 191, 89, 23, 4},
+      {123, 10, 252, 54, 9},
+      {46, 137, 175, 209, 13},
+      {150, 195, 245, 13, 14}
+    },
+    { {171, 32, 236, 13, 0},
+      {43, 161, 36, 71, 4},
+      {11, 3, 112, 77, 5},
+      {46, 34, 72, 93, 4}
+    },
+    { {13, 85, 26, 83, 3},
+      {198, 86, 132, 124, 1},
+      {204, 165, 138, 171, 0},
+      {131, 226, 22, 166, 3}
+    },
+    { {164, 73, 46, 167, 8},
+      {136, 71, 39, 6, 15},
+      {30, 87, 73, 34, 5},
+      {246, 14, 78, 33, 1}
+    },
+    { {93, 108, 92, 103, 6},
+      {171, 29, 70, 252, 9},
+      {110, 99, 163, 107, 10},
+      {147, 246, 43, 141, 5}
+    },
+    { {153, 4, 153, 70, 10},
+      {26, 152, 5, 122, 1},
+      {86, 41, 146, 9, 9},
+      {133, 234, 1, 149, 8}
+    },
+    { {10, 157, 128, 226, 6},
+      {66, 146, 82, 41, 11},
+      {100, 112, 27, 149, 0},
+      {217, 68, 164, 148, 2}
+    },
+    { {105, 134, 183, 41, 15},
+      {22, 241, 123, 244, 4},
+      {249, 78, 214, 25, 6},
+      {34, 253, 232, 246, 8}
+    },
+    { {143, 173, 130, 44, 13},
+      {143, 226, 83, 99, 8},
+      {179, 68, 27, 95, 1},
+      {28, 108, 164, 127, 1}
+    },
+    { {226, 67, 95, 38, 3},
+      {60, 87, 46, 147, 1},
+      {198, 79, 172, 36, 7},
+      {140, 151, 78, 163, 12}
+    },
+    { {209, 155, 215, 78, 11},
+      {124, 251, 25, 218, 9},
+      {215, 46, 189, 152, 11},
+      {149, 185, 141, 243, 14}
+    },
+    { {196, 218, 25, 133, 15},
+      {220, 20, 93, 150, 10},
+      {250, 25, 133, 178, 3},
+      {86, 155, 162, 131, 11}
+    },
+    { {26, 193, 30, 251, 4},
+      {2, 111, 214, 29, 3},
+      {45, 247, 136, 53, 8},
+      {203, 134, 191, 100, 0}
+    },
+    { {17, 45, 28, 17, 1},
+      {5, 11, 132, 116, 8},
+      {136, 131, 139, 72, 8},
+      {18, 226, 29, 10, 0}
+    },
+    { {45, 76, 8, 144, 6},
+      {130, 20, 228, 96, 10},
+      {96, 145, 3, 43, 4},
+      {80, 98, 114, 132, 1}
+    },
+    { {108, 235, 79, 250, 4},
+      {179, 103, 254, 136, 11},
+      {37, 255, 45, 115, 6},
+      {209, 23, 254, 108, 13}
+    },
+    { {171, 203, 198, 115, 11},
+      {38, 215, 187, 79, 9},
+      {220, 230, 61, 61, 5},
+      {159, 45, 222, 182, 4}
+    },
+    { {40, 32, 233, 173, 13},
+      {63, 160, 103, 4, 6},
+      {187, 89, 112, 65, 4},
+      {98, 14, 96, 95, 12}
+    },
+    { {127, 250, 209, 178, 2},
+      {243, 156, 186, 209, 11},
+      {68, 216, 181, 255, 14},
+      {216, 181, 211, 156, 15}
+    },
+    { {27, 102, 106, 88, 7},
+      {39, 124, 204, 105, 4},
+      {225, 165, 102, 109, 8},
+      {41, 99, 51, 238, 4}
+    },
+    { {164, 137, 72, 44, 7},
+      {172, 50, 118, 2, 8},
+      {227, 65, 41, 18, 5},
+      {20, 6, 228, 195, 5}
+    },
+    { {141, 42, 28, 71, 0},
+      {139, 1, 12, 94, 9},
+      {14, 35, 133, 75, 1},
+      {151, 163, 8, 13, 1}
+    },
+    { {125, 182, 84, 216, 0},
+      {227, 41, 184, 248, 2},
+      {1, 178, 166, 219, 14},
+      {65, 241, 217, 76, 7}
+    },
+    { {179, 222, 10, 136, 11},
+      {68, 124, 61, 99, 10},
+      {209, 21, 7, 188, 13},
+      {92, 107, 195, 226, 2}
+    },
+    { {214, 120, 202, 34, 1},
+      {229, 204, 6, 131, 9},
+      {132, 69, 49, 230, 11},
+      {156, 22, 3, 58, 7}
+    },
+    { {136, 97, 82, 97, 11},
+      {39, 86, 3, 30, 0},
+      {216, 100, 168, 97, 1},
+      {7, 140, 6, 174, 4}
+    },
+    { {0, 238, 90, 84, 7},
+      {45, 84, 220, 56, 8},
+      {226, 165, 167, 112, 0},
+      {17, 195, 178, 171, 4}
+    },
+    { {84, 105, 30, 139, 4},
+      {129, 111, 68, 148, 11},
+      {45, 23, 137, 98, 10},
+      {210, 146, 47, 104, 1}
+    },
+    { {128, 254, 13, 106, 8},
+      {81, 37, 31, 42, 9},
+      {21, 107, 7, 240, 1},
+      {149, 79, 138, 72, 10}
+    },
+    { {195, 127, 154, 209, 2},
+      {65, 214, 140, 255, 10},
+      {72, 181, 159, 236, 3},
+      {95, 243, 22, 184, 2}
+    },
+    { {57, 235, 155, 203, 12},
+      {19, 238, 125, 92, 11},
+      {61, 61, 157, 121, 12},
+      {211, 171, 231, 124, 8}
+    },
+    { {156, 205, 246, 33, 8},
+      {162, 207, 19, 54, 12},
+      {24, 70, 251, 51, 9},
+      {54, 204, 143, 52, 5}
+    },
+    { {83, 192, 184, 251, 11},
+      {4, 188, 151, 221, 7},
+      {221, 241, 208, 60, 10},
+      {235, 190, 147, 210, 0}
+    },
+    { {159, 93, 81, 153, 0},
+      {242, 46, 128, 119, 10},
+      {9, 152, 171, 175, 9},
+      {94, 224, 23, 68, 15}
+    },
+    { {208, 152, 110, 185, 3},
+      {100, 121, 150, 134, 14},
+      {201, 215, 97, 144, 11},
+      {118, 22, 153, 226, 6}
+    },
+    { {21, 133, 42, 206, 6},
+      {136, 122, 84, 104, 7},
+      {103, 53, 74, 26, 8},
+      {225, 98, 165, 225, 1}
+    },
+    { {144, 212, 121, 19, 3},
+      {116, 28, 148, 54, 5},
+      {204, 137, 226, 176, 9},
+      {166, 194, 147, 130, 14}
+    },
+    { {44, 22, 172, 202, 12},
+      {194, 161, 109, 40, 7},
+      {53, 51, 86, 131, 4},
+      {225, 75, 104, 84, 3}
+    },
+    { {112, 226, 233, 181, 14},
+      {57, 156, 255, 132, 6},
+      {122, 217, 116, 112, 14},
+      {98, 31, 243, 153, 12}
+    },
+    { {36, 160, 106, 178, 15},
+      {165, 80, 247, 0, 7},
+      {244, 213, 96, 82, 4},
+      {224, 14, 240, 170, 5}
+    },
+    { {114, 1, 237, 44, 10},
+      {56, 187, 39, 129, 4},
+      {83, 75, 120, 4, 14},
+      {40, 30, 77, 209, 12}
+    },
+    { {76, 99, 9, 66, 8},
+      {147, 6, 13, 136, 1},
+      {20, 41, 12, 99, 2},
+      {129, 27, 6, 12, 9}
+    },
+    { {6, 185, 203, 230, 13},
+      {253, 194, 87, 9, 11},
+      {182, 125, 57, 214, 0},
+      {217, 14, 164, 59, 15}
+    },
+    { {215, 246, 104, 218, 12},
+      {225, 44, 221, 235, 7},
+      {53, 177, 102, 254, 11},
+      {237, 123, 179, 72, 7}
+    },
+    { {129, 109, 246, 113, 1},
+      {37, 199, 130, 126, 12},
+      {136, 230, 251, 104, 1},
+      {55, 228, 30, 58, 4}
+    },
+    { {88, 117, 65, 240, 5},
+      {119, 14, 194, 168, 2},
+      {160, 248, 42, 225, 10},
+      {65, 84, 55, 14, 14}
+    },
+    { {74, 115, 6, 33, 0},
+      {67, 71, 10, 133, 0},
+      {8, 70, 12, 229, 2},
+      {10, 21, 14, 44, 2}
+    },
+    { {72, 9, 86, 13, 1},
+      {46, 99, 0, 148, 8},
+      {139, 6, 169, 1, 2},
+      {18, 144, 12, 103, 4}
+    },
+    { {59, 153, 72, 245, 11},
+      {110, 26, 183, 77, 10},
+      {218, 241, 41, 157, 12},
+      {91, 46, 213, 135, 6}
+    },
+    { {54, 150, 213, 148, 6},
+      {248, 153, 248, 49, 2},
+      {98, 154, 182, 150, 12},
+      {72, 193, 249, 145, 15}
+    },
+    { {81, 34, 220, 136, 12},
+      {33, 169, 77, 208, 2},
+      {49, 19, 180, 72, 10},
+      {64, 187, 41, 88, 4}
+    },
+    { {168, 69, 58, 219, 0},
+      {2, 102, 164, 62, 7},
+      {13, 181, 202, 33, 5},
+      {231, 194, 86, 100, 0}
+    },
+    { {180, 120, 208, 7, 12},
+      {233, 140, 97, 22, 9},
+      {62, 0, 177, 226, 13},
+      {150, 136, 99, 25, 7}
+    },
+    { {213, 175, 225, 90, 1},
+      {181, 170, 152, 234, 13},
+      {133, 168, 127, 90, 11},
+      {181, 113, 149, 90, 13}
+    },
+    { {4, 255, 169, 156, 13},
+      {221, 166, 221, 32, 14},
+      {179, 153, 95, 242, 0},
+      {112, 75, 182, 91, 11}
+    },
+    { {178, 170, 134, 106, 1},
+      {5, 233, 58, 11, 9},
+      {133, 102, 21, 84, 13},
+      {157, 5, 201, 122, 0}
+    },
+    { {33, 202, 57, 14, 7},
+      {28, 52, 124, 80, 13},
+      {231, 9, 197, 56, 4},
+      {176, 163, 226, 195, 8}
+    },
+    { {217, 149, 56, 136, 0},
+      {66, 42, 20, 242, 6},
+      {1, 17, 202, 153, 11},
+      {100, 242, 133, 68, 2}
+    },
+    { {158, 66, 134, 121, 2},
+      {130, 253, 138, 15, 0},
+      {73, 230, 20, 39, 9},
+      {15, 5, 27, 244, 1}
+    },
+    { {35, 126, 230, 40, 15},
+      {101, 245, 107, 97, 12},
+      {241, 70, 119, 236, 4},
+      {56, 109, 106, 250, 6}
+    },
+    { {223, 217, 194, 111, 1},
+      {238, 238, 18, 207, 9},
+      {143, 100, 57, 191, 11},
+      {159, 52, 135, 119, 7}
+    },
+    { {134, 37, 95, 146, 14},
+      {177, 83, 197, 51, 3},
+      {116, 159, 170, 70, 1},
+      {204, 202, 60, 168, 13}
+    },
+    { {89, 24, 159, 35, 8},
+      {82, 201, 7, 212, 9},
+      {28, 79, 145, 137, 10},
+      {146, 190, 9, 52, 10}
+    },
+    { {83, 168, 9, 113, 7},
+      {21, 24, 214, 205, 8},
+      {232, 233, 1, 92, 10},
+      {27, 54, 177, 138, 8}
+    },
+    { {8, 171, 22, 118, 15},
+      {15, 83, 219, 24, 9},
+      {246, 230, 141, 81, 0},
+      {145, 141, 188, 175, 0}
+    },
+    { {249, 140, 152, 28, 13},
+      {14, 168, 245, 242, 8},
+      {179, 129, 147, 25, 15},
+      {20, 250, 241, 87, 0}
+    },
+    { {249, 136, 239, 149, 11},
+      {62, 217, 181, 198, 14},
+      {218, 159, 113, 25, 15},
+      {118, 58, 217, 183, 12}
+    },
+    { {31, 2, 254, 30, 14},
+      {170, 249, 205, 81, 5},
+      {119, 135, 244, 15, 8},
+      {168, 171, 57, 245, 5}
+    },
+    { {104, 234, 254, 163, 13},
+      {39, 197, 127, 148, 15},
+      {188, 87, 245, 113, 6},
+      {242, 159, 234, 62, 4}
+    },
+    { {126, 145, 79, 240, 6},
+      {242, 91, 246, 137, 2},
+      {96, 255, 40, 151, 14},
+      {73, 22, 253, 164, 15}
+    },
+    { {44, 149, 20, 92, 13},
+      {206, 35, 241, 56, 0},
+      {179, 162, 138, 147, 4},
+      {1, 200, 252, 71, 3}
+    },
+    { {62, 147, 44, 208, 8},
+      {194, 11, 189, 9, 6},
+      {16, 179, 76, 151, 12},
+      {105, 11, 221, 4, 3}
+    },
+    { {183, 92, 175, 40, 3},
+      {212, 253, 38, 99, 12},
+      {193, 79, 83, 174, 13},
+      {60, 102, 75, 242, 11}
+    },
+    { {186, 245, 114, 60, 11},
+      {111, 126, 179, 51, 4},
+      {211, 196, 234, 245, 13},
+      {44, 204, 215, 239, 6}
+    },
+    { {121, 203, 18, 140, 13},
+      {14, 110, 121, 208, 10},
+      {179, 20, 141, 57, 14},
+      {80, 185, 231, 103, 0}
+    },
+    { {64, 87, 46, 30, 0},
+      {72, 103, 140, 160, 5},
+      {7, 135, 78, 160, 2},
+      {160, 83, 30, 97, 2}
+    },
+    { {82, 212, 150, 97, 15},
+      {68, 221, 83, 189, 0},
+      {248, 102, 146, 180, 10},
+      {11, 220, 171, 178, 2}
+    },
+    { {177, 112, 92, 13, 10},
+      {105, 61, 37, 86, 0},
+      {91, 3, 160, 232, 13},
+      {6, 170, 75, 201, 6}
+    },
+    { {99, 49, 219, 103, 3},
+      {125, 210, 38, 221, 1},
+      {206, 109, 184, 204, 6},
+      {139, 182, 68, 187, 14}
+    },
+    { {16, 154, 188, 196, 1},
+      {76, 137, 28, 24, 14},
+      {130, 51, 213, 144, 8},
+      {113, 131, 137, 19, 2}
+    },
+    { {96, 60, 124, 104, 15},
+      {101, 49, 103, 184, 12},
+      {241, 99, 227, 192, 6},
+      {49, 222, 104, 202, 6}
+    },
+    { {115, 50, 161, 255, 11},
+      {93, 184, 171, 205, 7},
+      {223, 248, 84, 204, 14},
+      {235, 61, 81, 219, 10}
+    },
+    { {61, 143, 96, 230, 4},
+      {170, 10, 122, 104, 15},
+      {38, 112, 111, 27, 12},
+      {241, 101, 229, 5, 5}
+    },
+    { {202, 97, 172, 50, 9},
+      {7, 135, 135, 131, 5},
+      {148, 195, 88, 101, 3},
+      {172, 30, 30, 30, 0}
+    },
+    { {132, 25, 50, 28, 14},
+      {200, 114, 193, 18, 12},
+      {115, 132, 201, 130, 1},
+      {52, 136, 52, 225, 3}
+    },
+    { {171, 167, 29, 138, 7},
+      {23, 51, 124, 115, 3},
+      {229, 27, 142, 93, 5},
+      {204, 227, 236, 206, 8}
+    },
+    { {220, 105, 76, 91, 7},
+      {167, 63, 196, 142, 9},
+      {237, 163, 41, 99, 11},
+      {151, 18, 63, 206, 5}
+    },
+    { {244, 156, 252, 224, 5},
+      {228, 137, 118, 186, 14},
+      {160, 115, 243, 146, 15},
+      {117, 214, 233, 18, 7}
+    },
+    { {200, 69, 243, 60, 3},
+      {62, 246, 130, 178, 4},
+      {195, 204, 250, 33, 3},
+      {36, 212, 22, 247, 12}
+    },
+    { {104, 74, 251, 82, 12},
+      {50, 196, 237, 152, 13},
+      {52, 173, 245, 33, 6},
+      {177, 155, 114, 52, 12}
+    },
+    { {214, 20, 91, 29, 3},
+      {252, 120, 132, 183, 0},
+      {203, 141, 162, 134, 11},
+      {14, 210, 17, 227, 15}
+    },
+    { {16, 253, 223, 173, 12},
+      {121, 239, 87, 52, 10},
+      {59, 95, 187, 240, 8},
+      {82, 206, 175, 121, 14}
+    },
+    { {31, 139, 72, 20, 8},
+      {170, 10, 157, 65, 8},
+      {18, 129, 45, 31, 8},
+      {24, 43, 149, 5, 5}
+    },
+    { {156, 50, 163, 233, 3},
+      {215, 248, 10, 14, 6},
+      {201, 124, 84, 195, 9},
+      {103, 5, 1, 254, 11}
+    },
+    { {157, 108, 124, 56, 7},
+      {167, 61, 198, 114, 12},
+      {225, 195, 227, 107, 9},
+      {52, 230, 59, 206, 5}
+    },
+    { {183, 3, 177, 221, 5},
+      {156, 170, 232, 95, 6},
+      {171, 184, 220, 14, 13},
+      {111, 161, 117, 83, 9}
+    },
+    { {111, 221, 59, 152, 0},
+      {210, 102, 180, 241, 14},
+      {1, 157, 203, 191, 6},
+      {120, 242, 214, 100, 11}
+    },
+    { {178, 62, 176, 218, 4},
+      {65, 168, 232, 59, 15},
+      {37, 176, 215, 196, 13},
+      {253, 193, 113, 88, 2}
+    },
+    { {115, 173, 103, 162, 0},
+      {49, 75, 50, 225, 15},
+      {4, 94, 107, 92, 14},
+      {248, 116, 205, 40, 12}
+    },
+    { {83, 97, 3, 190, 8},
+      {25, 110, 131, 193, 3},
+      {23, 220, 8, 108, 10},
+      {200, 60, 23, 105, 8}
+    },
+    { {214, 122, 66, 252, 3},
+      {237, 124, 138, 139, 10},
+      {195, 244, 37, 230, 11},
+      {93, 21, 19, 235, 7}
+    },
+    { {31, 40, 119, 191, 6},
+      {187, 121, 194, 85, 15},
+      {111, 222, 225, 79, 8},
+      {250, 164, 57, 237, 13}
+    },
+    { {45, 103, 170, 137, 12},
+      {131, 230, 109, 100, 6},
+      {57, 21, 94, 107, 4},
+      {98, 107, 102, 124, 1}
+    },
+    { {168, 55, 137, 133, 0},
+      {91, 130, 44, 38, 2},
+      {10, 25, 30, 193, 5},
+      {70, 67, 68, 29, 10}
+    },
+    { {47, 235, 63, 25, 12},
+      {147, 103, 253, 85, 12},
+      {57, 143, 205, 127, 4},
+      {58, 171, 254, 108, 9}
+    },
+    { {41, 160, 212, 118, 5},
+      {47, 129, 242, 88, 1},
+      {166, 226, 176, 89, 4},
+      {129, 164, 248, 31, 4}
+    },
+    { {65, 177, 230, 167, 15},
+      {109, 211, 83, 196, 7},
+      {254, 86, 120, 216, 2},
+      {226, 60, 172, 187, 6}
+    },
+    { {248, 93, 126, 140, 7},
+      {110, 127, 100, 178, 14},
+      {227, 23, 235, 161, 15},
+      {116, 210, 111, 231, 6}
+    },
+    { {133, 48, 143, 35, 4},
+      {209, 193, 70, 70, 1},
+      {44, 79, 16, 202, 1},
+      {134, 38, 40, 56, 11}
+    },
+    { {121, 131, 156, 71, 5},
+      {14, 139, 124, 220, 1},
+      {174, 35, 156, 25, 14},
+      {131, 179, 237, 23, 0}
+    },
+    { {75, 124, 102, 113, 8},
+      {99, 69, 131, 237, 12},
+      {24, 230, 99, 237, 2},
+      {59, 124, 26, 44, 6}
+    },
+    { {231, 237, 2, 5, 2},
+      {137, 86, 48, 231, 8},
+      {74, 4, 11, 126, 7},
+      {30, 112, 198, 169, 1}
+    },
+    { {57, 33, 5, 61, 13},
+      {31, 43, 227, 68, 0},
+      {187, 202, 8, 73, 12},
+      {2, 44, 125, 79, 8}
+    },
+    { {46, 92, 218, 7, 3},
+      {238, 212, 36, 53, 9},
+      {206, 5, 179, 167, 4},
+      {154, 194, 66, 183, 7}
+    },
+    { {191, 65, 151, 115, 14},
+      {146, 223, 227, 95, 1},
+      {124, 238, 152, 47, 13},
+      {143, 172, 127, 180, 9}
+    },
+    { {229, 242, 167, 113, 14},
+      {209, 213, 251, 206, 4},
+      {120, 238, 84, 250, 7},
+      {39, 61, 250, 184, 11}
+    },
+    { {189, 13, 222, 45, 14},
+      {170, 251, 103, 118, 8},
+      {123, 71, 187, 11, 13},
+      {22, 238, 109, 245, 5}
+    },
+    { {104, 73, 143, 23, 14},
+      {26, 215, 229, 132, 9},
+      {126, 143, 25, 33, 6},
+      {146, 26, 126, 181, 8}
+    },
+    { {183, 56, 155, 230, 11},
+      {221, 216, 39, 91, 11},
+      {214, 125, 145, 206, 13},
+      {221, 174, 65, 187, 11}
+    },
+    { {41, 127, 247, 175, 7},
+      {127, 247, 106, 116, 15},
+      {239, 94, 255, 233, 4},
+      {242, 229, 110, 255, 14}
+    },
+    { {177, 201, 139, 131, 7},
+      {20, 222, 116, 70, 11},
+      {236, 29, 25, 56, 13},
+      {214, 34, 231, 178, 8}
+    },
+    { {112, 239, 122, 3, 2},
+      {33, 94, 60, 180, 13},
+      {76, 5, 239, 112, 14},
+      {178, 211, 199, 168, 4}
+    },
+    { {155, 66, 34, 76, 0},
+      {10, 108, 8, 75, 4},
+      {3, 36, 68, 45, 9},
+      {45, 33, 3, 101, 0}
+    },
+    { {45, 220, 24, 13, 15},
+      {206, 52, 117, 116, 8},
+      {251, 1, 131, 187, 4},
+      {18, 234, 226, 199, 3}
+    },
+    { {10, 189, 5, 237, 15},
+      {95, 51, 83, 45, 10},
+      {251, 122, 11, 213, 0},
+      {91, 76, 172, 207, 10}
+    },
+    { {225, 190, 133, 89, 1},
+      {85, 161, 184, 238, 8},
+      {137, 170, 23, 216, 7},
+      {23, 113, 216, 90, 10}
+    },
+    { {145, 183, 86, 114, 7},
+      {101, 91, 218, 122, 1},
+      {228, 230, 174, 216, 9},
+      {133, 229, 189, 170, 6}
+    },
+    { {45, 22, 243, 125, 11},
+      {254, 240, 171, 124, 4},
+      {219, 236, 246, 139, 4},
+      {35, 237, 80, 247, 15}
+    },
+    { {39, 176, 238, 193, 6},
+      {225, 209, 116, 77, 6},
+      {104, 55, 112, 222, 4},
+      {107, 34, 232, 184, 7}
+    },
+    { {108, 133, 130, 249, 13},
+      {134, 226, 243, 172, 2},
+      {185, 244, 26, 19, 6},
+      {67, 92, 244, 118, 1}
+    },
+    { {115, 83, 40, 110, 3},
+      {76, 62, 46, 201, 5},
+      {199, 97, 76, 172, 14},
+      {169, 55, 71, 195, 2}
+    },
+    { {97, 193, 148, 57, 1},
+      {4, 167, 178, 212, 0},
+      {137, 194, 152, 56, 6},
+      {2, 180, 222, 82, 0}
+    },
+    { {123, 144, 243, 154, 9},
+      {118, 232, 177, 209, 7},
+      {149, 156, 240, 157, 14},
+      {232, 184, 209, 118, 14}
+    },
+    { {199, 152, 208, 205, 5},
+      {236, 160, 80, 223, 10},
+      {171, 48, 177, 158, 3},
+      {95, 176, 160, 83, 7}
+    },
+    { {40, 109, 39, 77, 11},
+      {31, 119, 33, 44, 12},
+      {219, 46, 75, 97, 4},
+      {51, 72, 78, 239, 8}
+    },
+    { {217, 203, 12, 182, 4},
+      {10, 15, 222, 194, 11},
+      {38, 211, 13, 57, 11},
+      {212, 55, 191, 5, 0}
+    },
+    { {74, 39, 247, 51, 6},
+      {51, 211, 202, 181, 5},
+      {108, 206, 254, 69, 2},
+      {170, 213, 60, 188, 12}
+    },
+    { {58, 192, 163, 225, 10},
+      {18, 220, 51, 13, 6},
+      {88, 124, 80, 53, 12},
+      {107, 12, 195, 180, 8}
+    },
+    { {7, 221, 220, 229, 7},
+      {236, 151, 86, 125, 10},
+      {234, 115, 187, 190, 0},
+      {91, 230, 174, 147, 7}
+    },
+    { {136, 88, 155, 155, 11},
+      {86, 244, 133, 22, 11},
+      {221, 157, 145, 161, 1},
+      {214, 138, 18, 246, 10}
+    },
+    { {138, 23, 163, 27, 11},
+      {86, 242, 137, 39, 5},
+      {221, 140, 94, 133, 1},
+      {174, 73, 20, 246, 10}
+    },
+    { {238, 5, 82, 209, 7},
+      {166, 82, 224, 191, 2},
+      {232, 180, 170, 7, 7},
+      {79, 208, 116, 166, 5}
+    },
+    { {187, 95, 31, 51, 1},
+      {86, 79, 174, 119, 9},
+      {140, 207, 143, 173, 13},
+      {158, 231, 95, 38, 10}
+    },
+    { {208, 60, 187, 190, 2},
+      {89, 248, 134, 178, 15},
+      {71, 221, 211, 192, 11},
+      {244, 214, 17, 249, 10}
+    },
+    { {152, 244, 149, 172, 6},
+      {91, 189, 82, 50, 2},
+      {99, 90, 146, 241, 9},
+      {68, 196, 171, 221, 10}
+    },
+    { {197, 139, 251, 112, 15},
+      {180, 210, 223, 218, 12},
+      {240, 237, 253, 26, 3},
+      {53, 191, 180, 178, 13}
+    },
+    { {122, 253, 6, 239, 8},
+      {75, 111, 51, 173, 11},
+      {31, 118, 11, 245, 14},
+      {219, 92, 207, 109, 2}
+    },
+    { {81, 109, 127, 193, 5},
+      {53, 79, 68, 252, 14},
+      {168, 63, 235, 104, 10},
+      {115, 242, 47, 42, 12}
+    },
+    { {187, 149, 178, 239, 2},
+      {74, 250, 50, 127, 7},
+      {79, 116, 218, 157, 13},
+      {239, 228, 197, 245, 2}
+    },
+    { {74, 73, 174, 244, 10},
+      {10, 215, 135, 137, 14},
+      {82, 247, 89, 37, 2},
+      {121, 30, 30, 181, 0}
+    },
+    { {121, 22, 119, 209, 9},
+      {118, 73, 169, 252, 6},
+      {152, 190, 230, 137, 14},
+      {99, 249, 89, 38, 14}
+    },
+    { {171, 195, 19, 250, 3},
+      {22, 118, 186, 91, 3},
+      {197, 252, 140, 61, 5},
+      {205, 165, 214, 230, 8}
+    },
+    { {97, 72, 188, 236, 1},
+      {12, 165, 38, 216, 14},
+      {131, 115, 209, 40, 6},
+      {113, 182, 74, 83, 0}
+    },
+    { {189, 91, 56, 250, 15},
+      {198, 62, 239, 90, 15},
+      {245, 241, 205, 171, 13},
+      {245, 175, 119, 198, 3}
+    },
+    { {167, 203, 22, 91, 5},
+      {132, 103, 248, 95, 9},
+      {173, 166, 141, 62, 5},
+      {159, 161, 254, 98, 1}
+    },
+    { {122, 215, 157, 221, 12},
+      {90, 175, 253, 189, 2},
+      {59, 187, 158, 181, 14},
+      {75, 219, 255, 85, 10}
+    },
+    { {30, 33, 123, 48, 10},
+      {179, 90, 135, 17, 4},
+      {80, 205, 232, 71, 8},
+      {40, 142, 21, 172, 13}
+    },
+    { {7, 106, 159, 128, 15},
+      {149, 213, 77, 81, 10},
+      {240, 31, 149, 110, 0},
+      {88, 171, 42, 186, 9}
+    },
+    { {66, 20, 244, 73, 5},
+      {100, 161, 64, 189, 4},
+      {169, 34, 242, 132, 2},
+      {43, 208, 40, 82, 6}
+    },
+    { {90, 77, 21, 204, 4},
+      {26, 47, 64, 185, 10},
+      {35, 58, 139, 37, 10},
+      {89, 208, 47, 69, 8}
+    },
+    { {42, 237, 24, 136, 14},
+      {3, 54, 117, 49, 10},
+      {113, 17, 139, 117, 4},
+      {88, 202, 230, 204, 0}
+    },
+    { {74, 162, 225, 254, 13},
+      {63, 160, 219, 137, 7},
+      {183, 248, 116, 85, 2},
+      {233, 29, 176, 95, 12}
+    },
+    { {132, 142, 174, 178, 2},
+      {128, 209, 158, 34, 15},
+      {68, 215, 87, 18, 1},
+      {244, 71, 152, 176, 1}
+    },
+    { {51, 40, 220, 225, 13},
+      {37, 137, 103, 93, 10},
+      {184, 115, 177, 76, 12},
+      {91, 174, 105, 26, 4}
+    },
+    { {58, 219, 131, 61, 10},
+      {90, 254, 187, 5, 8},
+      {91, 204, 29, 181, 12},
+      {26, 13, 215, 245, 10}
+    },
+    { {115, 169, 29, 159, 13},
+      {29, 43, 245, 213, 11},
+      {191, 155, 137, 92, 14},
+      {218, 186, 253, 75, 8}
+    },
+    { {4, 109, 218, 103, 10},
+      {169, 214, 7, 60, 9},
+      {94, 101, 187, 98, 0},
+      {147, 206, 6, 185, 5}
+    },
+    { {58, 203, 120, 189, 13},
+      {46, 46, 255, 21, 14},
+      {187, 209, 237, 53, 12},
+      {122, 143, 247, 71, 4}
+    },
+    { {206, 153, 231, 26, 12},
+      {242, 227, 209, 131, 13},
+      {53, 142, 121, 151, 3},
+      {188, 24, 188, 116, 15}
+    },
+    { {165, 37, 165, 84, 6},
+      {153, 147, 224, 106, 4},
+      {98, 170, 90, 74, 5},
+      {37, 96, 124, 153, 9}
+    },
+    { {240, 63, 168, 232, 1},
+      {69, 170, 46, 170, 14},
+      {129, 113, 95, 192, 15},
+      {117, 87, 69, 90, 2}
+    },
+    { {118, 229, 192, 251, 1},
+      {165, 174, 178, 173, 3},
+      {141, 240, 58, 118, 14},
+      {203, 84, 215, 90, 5}
+    },
+    { {227, 99, 237, 110, 12},
+      {57, 167, 111, 203, 5},
+      {55, 107, 124, 108, 7},
+      {173, 63, 110, 89, 12}
+    },
+    { {116, 249, 37, 224, 5},
+      {213, 15, 114, 136, 14},
+      {160, 122, 73, 242, 14},
+      {113, 20, 239, 10, 11}
+    },
+    { {198, 217, 168, 122, 2},
+      {192, 182, 150, 139, 13},
+      {69, 225, 89, 182, 3},
+      {189, 22, 150, 208, 3}
+    },
+    { {13, 96, 234, 117, 11},
+      {175, 212, 135, 76, 4},
+      {218, 229, 112, 107, 0},
+      {35, 46, 18, 191, 5}
+    },
+    { {51, 227, 74, 122, 13},
+      {37, 110, 255, 73, 1},
+      {181, 229, 44, 124, 12},
+      {137, 47, 247, 106, 4}
+    },
+    { {113, 122, 201, 96, 4},
+      {113, 140, 110, 200, 8},
+      {32, 105, 53, 232, 14},
+      {17, 55, 99, 24, 14}
+    },
+    { {152, 138, 48, 249, 12},
+      {2, 40, 219, 30, 14},
+      {57, 240, 197, 17, 9},
+      {119, 141, 177, 68, 0}
+    },
+    { {46, 163, 26, 179, 12},
+      {131, 66, 255, 21, 3},
+      {60, 213, 140, 87, 4},
+      {202, 143, 244, 44, 1}
+    },
+    { {172, 182, 25, 142, 10},
+      {219, 48, 61, 50, 3},
+      {87, 25, 134, 211, 5},
+      {196, 203, 192, 205, 11}
+    },
+    { {240, 101, 182, 107, 5},
+      {5, 239, 98, 190, 5},
+      {173, 102, 218, 96, 15},
+      {167, 212, 111, 122, 0}
+    },
+    { {168, 198, 88, 212, 0},
+      {42, 4, 188, 58, 2},
+      {2, 177, 166, 49, 5},
+      {69, 195, 210, 5, 4}
+    },
+    { {204, 173, 140, 128, 11},
+      {135, 147, 21, 162, 10},
+      {208, 19, 27, 83, 3},
+      {84, 90, 140, 158, 1}
+    },
+    { {163, 169, 133, 130, 14},
+      {17, 147, 113, 67, 11},
+      {116, 26, 25, 92, 5},
+      {220, 40, 236, 152, 8}
+    },
+    { {236, 44, 102, 29, 0},
+      {171, 97, 160, 166, 12},
+      {11, 134, 99, 67, 7},
+      {54, 80, 88, 109, 5}
+    },
+    { {25, 228, 167, 179, 8},
+      {19, 205, 147, 100, 7},
+      {28, 222, 82, 121, 8},
+      {226, 108, 155, 60, 8}
+    },
+    { {141, 26, 103, 29, 6},
+      {250, 113, 200, 70, 12},
+      {107, 142, 101, 139, 1},
+      {54, 33, 56, 229, 15}
+    },
+    { {178, 43, 3, 194, 13},
+      {21, 74, 105, 11, 11},
+      {180, 60, 13, 68, 13},
+      {221, 9, 101, 42, 8}
+    },
+    { {233, 107, 129, 42, 2},
+      {19, 182, 42, 194, 9},
+      {69, 72, 29, 105, 7},
+      {148, 53, 70, 220, 8}
+    },
+    { {175, 188, 151, 185, 4},
+      {211, 225, 242, 119, 10},
+      {41, 222, 147, 223, 5},
+      {94, 228, 248, 124, 11}
+    },
+    { {46, 29, 146, 160, 8},
+      {194, 194, 35, 49, 10},
+      {16, 84, 155, 135, 4},
+      {88, 204, 68, 52, 3}
+    },
+    { {20, 26, 214, 160, 3},
+      {228, 217, 10, 16, 10},
+      {192, 86, 181, 130, 8},
+      {80, 133, 9, 178, 7}
+    },
+    { {181, 12, 21, 252, 0},
+      {152, 41, 162, 122, 10},
+      {3, 250, 131, 10, 13},
+      {85, 228, 89, 65, 9}
+    },
+    { {95, 40, 182, 146, 9},
+      {135, 201, 129, 209, 15},
+      {148, 150, 209, 79, 10},
+      {248, 184, 25, 62, 1}
+    },
+    { {5, 73, 160, 42, 15},
+      {132, 182, 67, 64, 13},
+      {245, 64, 89, 42, 0},
+      {176, 44, 38, 210, 1}
+    },
+    { {170, 29, 19, 140, 15},
+      {94, 114, 97, 51, 10},
+      {243, 28, 139, 133, 5},
+      {92, 200, 100, 231, 10}
+    },
+    { {214, 197, 212, 242, 6},
+      {160, 159, 210, 187, 3},
+      {100, 242, 186, 54, 11},
+      {205, 212, 191, 144, 5}
+    },
+    { {175, 39, 99, 231, 15},
+      {191, 82, 107, 111, 7},
+      {254, 124, 110, 79, 5},
+      {239, 109, 100, 175, 13}
+    },
+    { {13, 30, 84, 39, 10},
+      {234, 17, 11, 116, 9},
+      {94, 66, 167, 139, 0},
+      {146, 237, 8, 133, 7}
+    },
+    { {105, 13, 29, 67, 9},
+      {22, 3, 37, 252, 9},
+      {156, 43, 139, 9, 6},
+      {147, 250, 76, 6, 8}
+    },
+    { {142, 118, 82, 211, 11},
+      {231, 84, 137, 63, 3},
+      {220, 180, 166, 231, 1},
+      {207, 201, 18, 174, 7}
+    },
+    { {183, 231, 13, 198, 11},
+      {157, 31, 61, 107, 3},
+      {214, 59, 14, 126, 13},
+      {205, 107, 207, 139, 9}
+    },
+    { {91, 61, 61, 135, 11},
+      {95, 27, 5, 245, 15},
+      {222, 27, 203, 205, 10},
+      {250, 250, 13, 143, 10}
+    },
+    { {79, 134, 142, 113, 6},
+      {130, 209, 222, 237, 0},
+      {104, 231, 22, 31, 2},
+      {11, 119, 184, 180, 1}
+    },
+    { {177, 31, 187, 167, 12},
+      {88, 202, 111, 118, 15},
+      {62, 93, 223, 136, 13},
+      {246, 239, 101, 49, 10}
+    },
+    { {128, 174, 197, 152, 2},
+      {49, 177, 152, 34, 10},
+      {65, 154, 55, 80, 1},
+      {84, 65, 152, 216, 12}
+    },
+    { {213, 231, 198, 181, 15},
+      {173, 223, 219, 230, 2},
+      {250, 214, 62, 122, 11},
+      {70, 125, 191, 187, 5}
+    },
+    { {93, 45, 129, 118, 3},
+      {159, 154, 130, 232, 9},
+      {198, 232, 27, 75, 10},
+      {145, 116, 21, 159, 9}
+    },
+    { {203, 168, 201, 76, 1},
+      {63, 160, 20, 203, 8},
+      {131, 41, 49, 93, 3},
+      {29, 50, 128, 95, 12}
+    },
+    { {103, 230, 75, 17, 3},
+      {181, 84, 188, 229, 0},
+      {200, 141, 38, 126, 6},
+      {10, 115, 210, 170, 13}
+    },
+    { {250, 67, 80, 92, 14},
+      {42, 62, 233, 155, 0},
+      {115, 160, 172, 37, 15},
+      {13, 153, 119, 197, 4}
+    },
+    { {240, 150, 174, 222, 7},
+      {76, 249, 252, 170, 7},
+      {231, 183, 86, 144, 15},
+      {229, 83, 249, 243, 2}
+    },
+    { {71, 218, 157, 211, 11},
+      {212, 149, 157, 221, 11},
+      {220, 187, 149, 190, 2},
+      {219, 187, 154, 146, 11}
+    },
+    { {154, 5, 75, 133, 14},
+      {58, 90, 69, 39, 2},
+      {122, 29, 42, 5, 9},
+      {78, 74, 37, 165, 12}
+    },
+    { {120, 108, 53, 241, 11},
+      {23, 29, 163, 188, 14},
+      {216, 250, 195, 97, 14},
+      {115, 220, 91, 142, 8}
+    },
+    { {147, 175, 244, 140, 6},
+      {41, 187, 88, 115, 14},
+      {99, 18, 255, 92, 9},
+      {124, 225, 173, 217, 4}
+    },
+    { {42, 176, 175, 52, 11},
+      {95, 209, 183, 1, 4},
+      {210, 207, 80, 213, 4},
+      {40, 14, 216, 191, 10}
+    },
+    { {240, 11, 250, 99, 1},
+      {36, 202, 46, 158, 13},
+      {140, 101, 253, 0, 15},
+      {183, 151, 69, 50, 4}
+    },
+    { {76, 166, 198, 133, 5},
+      {175, 193, 88, 164, 2},
+      {170, 22, 54, 83, 2},
+      {66, 81, 168, 63, 5}
+    },
+    { {186, 20, 227, 14, 1},
+      {126, 232, 32, 35, 5},
+      {135, 12, 114, 133, 13},
+      {172, 64, 65, 119, 14}
+    },
+    { {33, 208, 242, 145, 8},
+      {96, 196, 177, 84, 6},
+      {24, 148, 240, 184, 4},
+      {98, 168, 210, 48, 6}
+    },
+    { {195, 163, 48, 100, 2},
+      {9, 18, 26, 219, 4},
+      {66, 96, 204, 92, 3},
+      {45, 181, 132, 137, 0}
+    },
+    { {55, 157, 233, 153, 7},
+      {244, 186, 244, 101, 14},
+      {233, 153, 123, 158, 12},
+      {122, 98, 245, 210, 15}
+    },
+    { {34, 132, 160, 94, 1},
+      {12, 160, 176, 41, 5},
+      {135, 160, 82, 20, 4},
+      {169, 64, 208, 83, 0}
+    },
+    { {111, 213, 214, 14, 1},
+      {238, 231, 48, 241, 1},
+      {135, 6, 186, 191, 6},
+      {136, 240, 206, 119, 7}
+    },
+    { {203, 84, 111, 171, 13},
+      {118, 101, 71, 231, 7},
+      {189, 95, 98, 173, 3},
+      {238, 126, 42, 102, 14}
+    },
+    { {156, 42, 145, 229, 8},
+      {155, 136, 11, 30, 10},
+      {26, 120, 149, 67, 9},
+      {87, 141, 1, 29, 9}
+    },
+    { {61, 210, 148, 126, 15},
+      {206, 189, 251, 88, 1},
+      {247, 226, 148, 187, 12},
+      {129, 173, 251, 215, 3}
+    },
+    { {100, 83, 228, 51, 13},
+      {228, 135, 235, 132, 5},
+      {188, 194, 124, 162, 6},
+      {162, 29, 126, 18, 7}
+    },
+    { {43, 198, 86, 24, 12},
+      {34, 101, 249, 113, 0},
+      {49, 134, 166, 61, 4},
+      {8, 233, 250, 100, 4}
+    },
+    { {37, 39, 183, 207, 14},
+      {153, 243, 105, 124, 7},
+      {127, 62, 222, 74, 4},
+      {227, 233, 108, 249, 9}
+    },
+    { {22, 36, 199, 38, 13},
+      {189, 201, 67, 33, 1},
+      {182, 78, 50, 70, 8},
+      {136, 76, 41, 59, 13}
+    },
+    { {202, 176, 164, 248, 14},
+      {67, 177, 211, 139, 6},
+      {113, 242, 80, 213, 3},
+      {109, 28, 184, 220, 2}
+    },
+    { {193, 236, 138, 99, 14},
+      {1, 212, 87, 238, 9},
+      {124, 101, 19, 120, 3},
+      {151, 126, 162, 184, 0}
+    },
+    { {82, 142, 30, 232, 13},
+      {4, 105, 95, 185, 10},
+      {177, 119, 135, 20, 10},
+      {89, 223, 169, 98, 0}
+    },
+    { {254, 163, 79, 210, 9},
+      {183, 75, 189, 139, 3},
+      {148, 191, 44, 87, 15},
+      {205, 27, 221, 46, 13}
+    },
+    { {92, 145, 249, 82, 6},
+      {242, 154, 212, 152, 5},
+      {100, 169, 248, 147, 10},
+      {161, 146, 181, 148, 15}
+    },
+    { {42, 103, 218, 12, 8},
+      {43, 230, 45, 49, 0},
+      {19, 5, 190, 101, 4},
+      {8, 203, 70, 125, 4}
+    },
+    { {111, 147, 7, 201, 2},
+      {210, 115, 56, 205, 2},
+      {73, 62, 12, 159, 6},
+      {75, 49, 204, 228, 11}
+    },
+    { {27, 127, 101, 218, 0},
+      {115, 47, 136, 105, 15},
+      {5, 186, 111, 237, 8},
+      {249, 97, 31, 76, 14}
+    },
+    { {96, 94, 48, 82, 3},
+      {68, 20, 168, 184, 13},
+      {196, 160, 199, 160, 6},
+      {177, 209, 82, 130, 2}
+    },
+    { {187, 3, 116, 51, 0},
+      {34, 11, 170, 87, 5},
+      {12, 194, 236, 13, 13},
+      {174, 165, 93, 4, 4}
+    },
+    { {245, 150, 230, 89, 11},
+      {228, 249, 185, 238, 4},
+      {217, 166, 118, 154, 15},
+      {39, 121, 217, 242, 7}
+    },
+    { {146, 81, 227, 36, 14},
+      {120, 222, 67, 3, 4},
+      {114, 76, 120, 164, 9},
+      {44, 12, 39, 177, 14}
+    },
+    { {37, 129, 147, 161, 3},
+      {148, 210, 50, 84, 2},
+      {200, 92, 152, 26, 4},
+      {66, 164, 196, 178, 9}
+    },
+    { {179, 35, 202, 164, 8},
+      {41, 202, 47, 67, 2},
+      {18, 85, 60, 76, 13},
+      {76, 47, 69, 57, 4}
+    },
+    { {141, 73, 29, 60, 1},
+      {158, 39, 134, 82, 8},
+      {131, 203, 137, 43, 1},
+      {20, 166, 30, 71, 9}
+    },
+    { {227, 51, 36, 195, 13},
+      {69, 3, 105, 207, 7},
+      {188, 50, 76, 204, 7},
+      {239, 57, 108, 10, 2}
+    },
+    { {184, 54, 252, 47, 7},
+      {111, 185, 110, 54, 5},
+      {239, 67, 246, 193, 13},
+      {166, 199, 105, 223, 6}
+    },
+    { {237, 209, 46, 107, 4},
+      {194, 103, 118, 206, 5},
+      {45, 103, 72, 187, 7},
+      {167, 54, 238, 100, 3}
+    },
+    { {235, 71, 59, 247, 10},
+      {26, 86, 175, 255, 7},
+      {94, 253, 206, 45, 7},
+      {239, 255, 86, 165, 8}
+    },
+    { {20, 242, 111, 82, 9},
+      {245, 77, 157, 8, 5},
+      {148, 175, 100, 242, 8},
+      {161, 11, 155, 42, 15}
+    },
+    { {205, 127, 26, 185, 15},
+      {199, 118, 207, 246, 10},
+      {249, 213, 143, 235, 3},
+      {86, 255, 54, 238, 3}
+    },
+    { {198, 53, 226, 175, 3},
+      {237, 242, 2, 167, 7},
+      {207, 84, 122, 198, 3},
+      {238, 84, 4, 251, 7}
+    },
+    { {215, 249, 12, 215, 3},
+      {205, 31, 148, 207, 11},
+      {206, 179, 9, 254, 11},
+      {223, 50, 159, 139, 3}
+    },
+    { {83, 21, 215, 208, 12},
+      {112, 203, 193, 249, 2},
+      {48, 190, 186, 140, 10},
+      {73, 248, 61, 48, 14}
+    },
+    { {86, 18, 116, 213, 1},
+      {236, 9, 136, 157, 6},
+      {138, 178, 228, 134, 10},
+      {107, 145, 25, 3, 7}
+    },
+    { {181, 26, 186, 149, 2},
+      {200, 216, 172, 86, 14},
+      {74, 149, 213, 138, 13},
+      {118, 163, 81, 177, 3}
+    },
+    { {98, 62, 7, 58, 4},
+      {81, 97, 234, 161, 9},
+      {37, 206, 7, 196, 6},
+      {152, 85, 120, 104, 10}
+    },
+    { {235, 252, 157, 72, 14},
+      {83, 181, 117, 251, 8},
+      {113, 43, 147, 253, 7},
+      {29, 250, 234, 220, 10}
+    },
+    { {129, 51, 86, 47, 14},
+      {105, 115, 75, 86, 1},
+      {127, 70, 172, 200, 1},
+      {134, 173, 44, 233, 6}
+    },
+    { {125, 43, 146, 2, 6},
+      {131, 218, 104, 208, 9},
+      {100, 4, 157, 75, 14},
+      {144, 177, 101, 188, 1}
+    },
+    { {144, 85, 192, 202, 6},
+      {96, 190, 64, 42, 3},
+      {101, 48, 58, 160, 9},
+      {197, 64, 39, 208, 6}
+    },
+    { {205, 132, 181, 92, 15},
+      {158, 177, 209, 250, 4},
+      {243, 170, 210, 27, 3},
+      {37, 248, 184, 215, 9}
+    },
+    { {11, 54, 92, 9, 4},
+      {99, 33, 76, 117, 0},
+      {41, 3, 166, 205, 0},
+      {10, 227, 40, 76, 6}
+    },
+    { {190, 98, 7, 5, 10},
+      {155, 93, 41, 7, 0},
+      {90, 14, 4, 103, 13},
+      {14, 9, 75, 173, 9}
+    },
+    { {39, 38, 95, 35, 12},
+      {177, 65, 111, 117, 1},
+      {60, 79, 166, 78, 4},
+      {138, 239, 104, 40, 13}
+    },
+    { {100, 138, 166, 99, 10},
+      {128, 209, 59, 140, 13},
+      {92, 102, 85, 18, 6},
+      {179, 29, 200, 176, 1}
+    },
+    { {254, 101, 69, 2, 13},
+      {183, 15, 97, 163, 1},
+      {180, 10, 42, 103, 15},
+      {140, 88, 111, 14, 13}
+    },
+    { {167, 99, 68, 48, 13},
+      {165, 7, 235, 67, 0},
+      {176, 194, 44, 110, 5},
+      {12, 45, 126, 10, 5}
+    },
+    { {217, 192, 126, 10, 8},
+      {34, 109, 21, 210, 5},
+      {21, 7, 224, 57, 11},
+      {164, 186, 139, 100, 4}
+    },
+    { {29, 104, 212, 20, 13},
+      {175, 141, 193, 80, 8},
+      {178, 130, 177, 107, 8},
+      {16, 168, 59, 31, 5}
+    },
+    { {203, 197, 40, 112, 3},
+      {6, 22, 150, 235, 4},
+      {192, 225, 74, 61, 3},
+      {45, 118, 150, 134, 0}
+    },
+    { {228, 40, 28, 188, 9},
+      {141, 33, 167, 146, 10},
+      {147, 211, 129, 66, 7},
+      {84, 158, 88, 75, 1}
+    },
+    { {225, 221, 170, 221, 6},
+      {72, 246, 244, 238, 14},
+      {107, 181, 91, 184, 7},
+      {119, 114, 246, 241, 2}
+    },
+    { {244, 239, 90, 230, 13},
+      {173, 78, 127, 186, 11},
+      {182, 117, 175, 114, 15},
+      {213, 223, 231, 43, 5}
+    },
+    { {122, 159, 45, 115, 15},
+      {86, 27, 255, 173, 13},
+      {252, 235, 79, 149, 14},
+      {187, 95, 253, 134, 10}
+    },
+    { {189, 215, 111, 86, 6},
+      {250, 95, 252, 106, 5},
+      {102, 175, 110, 187, 13},
+      {165, 99, 255, 165, 15}
+    },
+    { {79, 139, 34, 80, 4},
+      {130, 66, 216, 201, 12},
+      {32, 164, 77, 31, 2},
+      {57, 49, 180, 36, 1}
+    },
+    { {104, 156, 225, 61, 6},
+      {122, 176, 242, 164, 12},
+      {107, 200, 115, 145, 6},
+      {50, 84, 240, 213, 14}
+    },
+    { {23, 125, 226, 145, 13},
+      {229, 206, 193, 101, 14},
+      {184, 148, 123, 238, 8},
+      {122, 104, 55, 58, 7}
+    },
+    { {101, 27, 125, 109, 2},
+      {248, 51, 46, 220, 12},
+      {75, 107, 237, 138, 6},
+      {51, 183, 76, 193, 15}
+    },
+    { {230, 30, 244, 128, 14},
+      {224, 145, 105, 179, 14},
+      {112, 18, 247, 134, 7},
+      {124, 217, 104, 144, 7}
+    },
+    { {10, 131, 197, 183, 14},
+      {58, 147, 219, 5, 3},
+      {126, 218, 60, 21, 0},
+      {202, 13, 188, 149, 12}
+    },
+    { {113, 216, 247, 205, 5},
+      {124, 237, 112, 220, 14},
+      {171, 62, 241, 184, 14},
+      {115, 176, 235, 115, 14}
+    },
+    { {119, 102, 40, 235, 6},
+      {129, 60, 110, 237, 7},
+      {109, 113, 70, 110, 14},
+      {235, 119, 99, 200, 1}
+    },
+    { {164, 71, 35, 16, 2},
+      {144, 86, 168, 34, 4},
+      {64, 140, 78, 34, 5},
+      {36, 65, 86, 160, 9}
+    },
+    { {141, 28, 30, 136, 7},
+      {198, 113, 68, 114, 10},
+      {225, 23, 131, 139, 1},
+      {84, 226, 40, 230, 3}
+    },
+    { {174, 5, 207, 117, 0},
+      {186, 195, 166, 47, 0},
+      {10, 239, 58, 7, 5},
+      {15, 70, 92, 53, 13}
+    },
+    { {242, 185, 238, 5, 10},
+      {105, 219, 53, 135, 12},
+      {90, 7, 121, 212, 15},
+      {62, 26, 205, 185, 6}
+    },
+    { {150, 184, 220, 80, 14},
+      {225, 153, 213, 27, 8},
+      {112, 163, 177, 214, 9},
+      {29, 138, 185, 152, 7}
+    },
+    { {191, 140, 179, 54, 4},
+      {154, 200, 242, 115, 13},
+      {38, 204, 211, 31, 13},
+      {188, 228, 241, 53, 9}
+    },
+    { {77, 139, 178, 107, 7},
+      {134, 242, 90, 220, 13},
+      {237, 100, 221, 27, 2},
+      {179, 181, 164, 246, 1}
+    },
+    { {48, 111, 43, 129, 9},
+      {21, 78, 45, 36, 14},
+      {152, 29, 79, 96, 12},
+      {114, 75, 71, 42, 8}
+    },
+    { {134, 223, 39, 101, 6},
+      {216, 87, 90, 47, 12},
+      {106, 110, 79, 182, 1},
+      {63, 69, 174, 161, 11}
+    },
+    { {201, 63, 168, 244, 10},
+      {75, 146, 143, 234, 14},
+      {82, 241, 95, 201, 3},
+      {117, 127, 20, 157, 2}
+    },
+    { {178, 101, 205, 76, 0},
+      {57, 175, 36, 43, 0},
+      {3, 43, 58, 100, 13},
+      {13, 66, 79, 89, 12}
+    },
+    { {230, 107, 232, 211, 7},
+      {165, 150, 236, 143, 15},
+      {236, 177, 125, 102, 7},
+      {255, 19, 118, 154, 5}
+    },
+    { {172, 157, 252, 25, 5},
+      {230, 163, 244, 54, 12},
+      {169, 131, 251, 147, 5},
+      {54, 194, 252, 86, 7}
+    },
+    { {177, 19, 196, 190, 12},
+      {104, 171, 235, 66, 3},
+      {55, 210, 60, 136, 13},
+      {196, 45, 125, 81, 6}
+    },
+    { {211, 223, 9, 161, 13},
+      {84, 14, 95, 231, 10},
+      {184, 89, 15, 188, 11},
+      {94, 127, 167, 2, 10}
+    },
+    { {238, 69, 143, 67, 7},
+      {150, 215, 100, 175, 1},
+      {236, 47, 26, 39, 7},
+      {143, 82, 110, 182, 9}
+    },
+    { {103, 202, 12, 176, 9},
+      {132, 5, 191, 193, 10},
+      {144, 211, 5, 62, 6},
+      {88, 63, 218, 2, 1}
+    },
+    { {179, 49, 95, 108, 5},
+      {125, 107, 102, 91, 0},
+      {163, 111, 168, 204, 13},
+      {13, 166, 109, 107, 14}
+    },
+    { {51, 113, 11, 210, 2},
+      {81, 94, 164, 73, 3},
+      {68, 189, 8, 236, 12},
+      {201, 34, 87, 168, 10}
+    },
+    { {155, 233, 139, 184, 6},
+      {19, 254, 214, 67, 10},
+      {97, 221, 25, 125, 9},
+      {92, 38, 183, 252, 8}
+    },
+    { {65, 191, 62, 12, 5},
+      {77, 99, 92, 240, 12},
+      {163, 7, 207, 216, 2},
+      {48, 243, 172, 107, 2}
+    },
+    { {39, 180, 57, 11, 8},
+      {209, 32, 53, 117, 5},
+      {29, 9, 194, 222, 4},
+      {170, 234, 192, 72, 11}
+    },
+    { {22, 194, 235, 111, 10},
+      {184, 252, 31, 13, 5},
+      {95, 109, 116, 54, 8},
+      {171, 15, 131, 241, 13}
+    },
+    { {180, 216, 190, 76, 8},
+      {200, 237, 53, 26, 12},
+      {19, 39, 209, 178, 13},
+      {53, 138, 203, 113, 3}
+    },
+    { {157, 108, 51, 41, 10},
+      {147, 124, 3, 118, 12},
+      {89, 76, 195, 107, 9},
+      {54, 236, 3, 236, 9}
+    },
+    { {62, 93, 56, 87, 15},
+      {206, 30, 229, 61, 13},
+      {254, 161, 203, 167, 12},
+      {187, 202, 119, 135, 3}
+    },
+    { {180, 100, 140, 48, 10},
+      {129, 157, 167, 34, 0},
+      {80, 195, 18, 98, 13},
+      {4, 78, 91, 152, 1}
+    },
+    { {93, 101, 141, 153, 11},
+      {151, 191, 133, 228, 2},
+      {217, 155, 26, 107, 10},
+      {66, 122, 31, 222, 9}
+    },
+    { {75, 57, 30, 253, 8},
+      {75, 99, 135, 221, 10},
+      {27, 247, 137, 205, 2},
+      {91, 190, 28, 109, 2}
+    },
+    { {159, 102, 246, 244, 7},
+      {175, 221, 202, 123, 6},
+      {226, 246, 246, 111, 9},
+      {109, 229, 59, 191, 5}
+    },
+    { {99, 251, 122, 188, 8},
+      {105, 102, 191, 209, 14},
+      {19, 213, 237, 252, 6},
+      {120, 191, 214, 105, 6}
+    },
+    { {48, 213, 149, 195, 13},
+      {84, 143, 113, 60, 3},
+      {188, 58, 154, 176, 12},
+      {195, 200, 239, 18, 10}
+    },
+    { {44, 228, 218, 91, 8},
+      {163, 228, 181, 60, 1},
+      {29, 165, 178, 115, 4},
+      {131, 202, 210, 124, 5}
+    },
+    { {123, 79, 47, 122, 4},
+      {18, 111, 238, 233, 13},
+      {37, 239, 79, 45, 14},
+      {185, 119, 127, 100, 8}
+    },
+    { {80, 165, 170, 211, 11},
+      {5, 218, 149, 172, 7},
+      {220, 181, 90, 80, 10},
+      {227, 90, 149, 186, 0}
+    },
+    { {53, 99, 219, 99, 9},
+      {181, 206, 47, 92, 1},
+      {156, 109, 188, 106, 12},
+      {131, 175, 71, 58, 13}
+    },
+    { {202, 17, 193, 89, 1},
+      {118, 162, 128, 143, 0},
+      {137, 168, 56, 133, 3},
+      {15, 16, 20, 86, 14}
+    },
+    { {119, 153, 15, 22, 8},
+      {216, 75, 181, 193, 9},
+      {22, 143, 9, 158, 14},
+      {152, 58, 221, 33, 11}
+    },
+    { {6, 232, 6, 138, 11},
+      {133, 117, 17, 1, 11},
+      {213, 22, 1, 118, 0},
+      {216, 8, 138, 234, 1}
+    },
+    { {88, 242, 76, 249, 1},
+      {103, 45, 158, 140, 2},
+      {137, 243, 36, 241, 10},
+      {67, 23, 155, 78, 6}
+    },
+    { {87, 131, 120, 211, 4},
+      {160, 10, 220, 221, 7},
+      {44, 177, 236, 30, 10},
+      {235, 179, 181, 0, 5}
+    },
+    { {102, 199, 182, 12, 6},
+      {136, 247, 120, 177, 4},
+      {99, 6, 222, 54, 6},
+      {40, 209, 238, 241, 1}
+    },
+    { {120, 143, 69, 72, 0},
+      {50, 43, 56, 168, 8},
+      {1, 42, 47, 17, 14},
+      {17, 81, 205, 68, 12}
+    },
+    { {233, 239, 208, 58, 13},
+      {39, 166, 251, 242, 9},
+      {181, 192, 191, 121, 7},
+      {148, 253, 246, 94, 4}
+    },
+    { {39, 212, 15, 163, 10},
+      {208, 85, 55, 101, 3},
+      {92, 95, 2, 190, 4},
+      {202, 110, 202, 160, 11}
+    },
+    { {125, 42, 249, 128, 10},
+      {179, 152, 45, 208, 14},
+      {80, 25, 245, 75, 14},
+      {112, 187, 65, 156, 13}
+    },
+    { {86, 144, 82, 117, 6},
+      {232, 88, 210, 157, 0},
+      {106, 228, 160, 150, 10},
+      {11, 148, 177, 161, 7}
+    },
+    { {30, 225, 231, 61, 2},
+      {187, 255, 146, 5, 4},
+      {75, 206, 120, 119, 8},
+      {42, 4, 159, 253, 13}
+    },
+    { {254, 157, 166, 210, 9},
+      {198, 203, 177, 171, 15},
+      {148, 182, 91, 151, 15},
+      {253, 88, 221, 54, 3}
+    },
+    { {75, 222, 118, 252, 11},
+      {110, 117, 155, 249, 14},
+      {211, 246, 231, 189, 2},
+      {121, 253, 154, 231, 6}
+    },
+    { {50, 21, 75, 223, 8},
+      {120, 106, 165, 45, 3},
+      {31, 189, 42, 132, 12},
+      {203, 74, 85, 97, 14}
+    },
+    { {141, 94, 72, 11, 6},
+      {226, 52, 76, 102, 9},
+      {109, 1, 39, 171, 1},
+      {150, 99, 34, 196, 7}
+    },
+    { {85, 153, 228, 23, 12},
+      {232, 139, 209, 196, 13},
+      {62, 130, 121, 154, 10},
+      {178, 56, 189, 17, 7}
+    },
+    { {127, 178, 100, 131, 2},
+      {227, 25, 56, 197, 7},
+      {76, 18, 100, 223, 14},
+      {234, 49, 201, 140, 7}
+    },
+    { {6, 201, 57, 111, 3},
+      {156, 54, 22, 29, 13},
+      {207, 105, 201, 54, 0},
+      {187, 134, 134, 195, 9}
+    },
+    { {66, 202, 124, 45, 2},
+      {40, 53, 30, 149, 12},
+      {75, 67, 229, 52, 2},
+      {58, 151, 138, 193, 4}
+    },
+    { {78, 192, 248, 186, 12},
+      {162, 164, 215, 145, 7},
+      {53, 209, 240, 55, 2},
+      {232, 158, 178, 84, 5}
+    },
+    { {45, 113, 131, 30, 11},
+      {223, 246, 161, 64, 1},
+      {215, 140, 24, 235, 4},
+      {128, 40, 86, 255, 11}
+    },
+    { {128, 130, 234, 70, 4},
+      {40, 192, 92, 10, 5},
+      {38, 37, 116, 16, 1},
+      {165, 3, 160, 49, 4}
+    },
+    { {172, 206, 58, 52, 3},
+      {142, 84, 190, 50, 12},
+      {194, 197, 199, 51, 5},
+      {52, 199, 210, 167, 1}
+    },
+    { {88, 160, 32, 181, 13},
+      {15, 8, 211, 132, 6},
+      {186, 208, 64, 81, 10},
+      {98, 28, 177, 15, 0}
+    },
+    { {114, 159, 129, 35, 8},
+      {80, 138, 59, 165, 9},
+      {28, 72, 31, 148, 14},
+      {154, 93, 197, 16, 10}
+    },
+    { {123, 5, 90, 20, 12},
+      {42, 74, 229, 241, 0},
+      {50, 133, 170, 13, 14},
+      {8, 250, 117, 37, 4}
+    },
+    { {150, 248, 124, 233, 1},
+      {229, 45, 22, 31, 14},
+      {137, 115, 225, 246, 9},
+      {127, 134, 139, 74, 7}
+    },
+    { {41, 99, 28, 75, 10},
+      {3, 55, 45, 92, 1},
+      {93, 35, 140, 105, 4},
+      {131, 171, 78, 204, 0}
+    },
+    { {157, 226, 24, 237, 14},
+      {139, 60, 95, 94, 2},
+      {123, 113, 132, 123, 9},
+      {71, 175, 163, 205, 1}
+    },
+    { {58, 230, 175, 66, 4},
+      {19, 205, 124, 41, 5},
+      {36, 47, 86, 117, 12},
+      {169, 67, 235, 60, 8}
+    },
+    { {180, 56, 174, 163, 3},
+      {197, 217, 38, 6, 15},
+      {204, 87, 81, 194, 13},
+      {246, 6, 73, 186, 3}
+    },
+    { {208, 70, 61, 144, 7},
+      {20, 29, 204, 178, 6},
+      {224, 155, 198, 32, 11},
+      {100, 211, 59, 130, 8}
+    },
+    { {187, 32, 151, 39, 0},
+      {27, 201, 34, 87, 1},
+      {14, 78, 144, 77, 13},
+      {142, 164, 73, 61, 8}
+    },
+    { {229, 143, 37, 62, 0},
+      {152, 35, 186, 226, 13},
+      {7, 202, 79, 26, 7},
+      {180, 117, 220, 65, 9}
+    },
+    { {194, 117, 158, 53, 4},
+      {73, 199, 198, 183, 0},
+      {42, 199, 154, 228, 3},
+      {14, 214, 62, 57, 2}
+    },
+    { {10, 66, 188, 132, 7},
+      {14, 149, 76, 17, 6},
+      {226, 19, 212, 37, 0},
+      {104, 131, 42, 151, 0}
+    },
+    { {173, 67, 236, 130, 11},
+      {166, 151, 45, 66, 7},
+      {212, 19, 124, 43, 5},
+      {228, 43, 78, 150, 5}
+    },
+    { {61, 136, 115, 251, 11},
+      {182, 120, 179, 92, 15},
+      {221, 252, 225, 27, 12},
+      {243, 172, 209, 230, 13}
+    },
+    { {102, 161, 166, 184, 11},
+      {133, 243, 179, 129, 6},
+      {209, 214, 88, 86, 6},
+      {104, 28, 220, 250, 1}
+    },
+    { {221, 141, 175, 200, 4},
+      {146, 235, 84, 234, 14},
+      {33, 63, 91, 27, 11},
+      {117, 114, 173, 116, 9}
+    },
+    { {21, 7, 218, 203, 3},
+      {164, 250, 12, 124, 3},
+      {205, 53, 190, 10, 8},
+      {195, 227, 5, 242, 5}
+    },
+    { {137, 254, 190, 99, 3},
+      {71, 213, 30, 126, 13},
+      {204, 103, 215, 249, 1},
+      {183, 231, 138, 190, 2}
+    },
+    { {25, 7, 189, 144, 10},
+      {18, 155, 141, 112, 6},
+      {80, 155, 222, 9, 8},
+      {96, 235, 29, 148, 8}
+    },
+    { {98, 241, 188, 178, 14},
+      {65, 151, 247, 145, 7},
+      {116, 211, 216, 244, 6},
+      {232, 158, 254, 152, 2}
+    },
+    { {14, 147, 144, 200, 10},
+      {194, 178, 25, 25, 2},
+      {81, 48, 156, 151, 0},
+      {73, 137, 132, 212, 3}
+    },
+    { {102, 251, 212, 124, 10},
+      {233, 183, 187, 153, 8},
+      {83, 226, 189, 246, 6},
+      {25, 157, 222, 217, 7}
+    },
+    { {203, 127, 203, 186, 5},
+      {119, 230, 206, 227, 11},
+      {165, 221, 63, 237, 3},
+      {220, 119, 54, 126, 14}
+    },
+    { {72, 77, 150, 114, 5},
+      {6, 199, 194, 184, 9},
+      {164, 230, 155, 33, 2},
+      {145, 212, 62, 54, 0}
+    },
+    { {182, 201, 156, 184, 13},
+      {132, 175, 247, 19, 10},
+      {177, 211, 153, 54, 13},
+      {92, 142, 255, 82, 1}
+    },
+    { {214, 73, 19, 109, 6},
+      {152, 126, 66, 159, 8},
+      {107, 108, 137, 38, 11},
+      {31, 148, 39, 225, 9}
+    },
+    { {13, 229, 2, 166, 2},
+      {139, 86, 18, 96, 3},
+      {70, 84, 10, 123, 0},
+      {192, 100, 134, 173, 1}
+    },
+    { {249, 154, 61, 119, 4},
+      {90, 9, 254, 222, 13},
+      {46, 235, 197, 153, 15},
+      {183, 183, 249, 5, 10}
+    },
+    { {124, 20, 82, 167, 4},
+      {234, 72, 98, 180, 3},
+      {46, 84, 162, 131, 14},
+      {194, 212, 97, 37, 7}
+    },
+    { {57, 81, 76, 89, 15},
+      {102, 63, 229, 76, 0},
+      {249, 163, 40, 169, 12},
+      {3, 42, 127, 198, 6}
+    },
+    { {202, 63, 57, 87, 14},
+      {91, 18, 205, 191, 13},
+      {126, 169, 207, 197, 3},
+      {191, 219, 52, 141, 10}
+    },
+    { {219, 212, 95, 243, 10},
+      {114, 93, 151, 255, 3},
+      {92, 255, 162, 189, 11},
+      {207, 254, 155, 164, 14}
+    },
+    { {113, 246, 139, 38, 2},
+      {89, 220, 62, 224, 1},
+      {70, 77, 22, 248, 14},
+      {128, 119, 195, 185, 10}
+    },
+    { {61, 34, 41, 13, 7},
+      {159, 56, 108, 68, 4},
+      {235, 9, 68, 75, 12},
+      {34, 35, 97, 207, 9}
+    },
+    { {154, 77, 130, 207, 12},
+      {10, 238, 65, 47, 11},
+      {63, 52, 27, 37, 9},
+      {223, 72, 39, 117, 0}
+    },
+    { {16, 141, 72, 139, 2},
+      {32, 58, 20, 36, 11},
+      {77, 17, 43, 16, 8},
+      {210, 66, 133, 192, 4}
+    },
+    { {66, 66, 157, 48, 14},
+      {16, 149, 207, 145, 0},
+      {112, 203, 148, 36, 2},
+      {8, 159, 58, 144, 8}
+    },
+    { {191, 242, 183, 46, 9},
+      {223, 237, 59, 83, 5},
+      {151, 78, 212, 255, 13},
+      {172, 173, 203, 127, 11}
+    },
+    { {137, 69, 178, 16, 8},
+      {2, 198, 129, 114, 4},
+      {16, 132, 218, 41, 1},
+      {36, 232, 22, 52, 0}
+    },
+    { {156, 83, 206, 106, 1},
+      {230, 239, 14, 10, 1},
+      {133, 103, 60, 163, 9},
+      {133, 7, 15, 118, 7}
+    },
+    { {246, 110, 46, 178, 11},
+      {133, 93, 175, 163, 15},
+      {212, 215, 71, 102, 15},
+      {252, 95, 91, 170, 1}
+    },
+    { {123, 135, 22, 82, 6},
+      {2, 91, 248, 249, 1},
+      {100, 166, 142, 29, 14},
+      {137, 241, 253, 164, 0}
+    },
+    { {117, 48, 198, 172, 7},
+      {237, 249, 98, 192, 2},
+      {227, 86, 48, 202, 14},
+      {64, 52, 105, 251, 7}
+    },
+    { {219, 148, 76, 224, 4},
+      {98, 9, 86, 235, 2},
+      {32, 115, 34, 157, 11},
+      {77, 118, 169, 4, 6}
+    },
+    { {64, 156, 92, 188, 6},
+      {104, 49, 214, 176, 10},
+      {99, 211, 163, 144, 2},
+      {80, 214, 184, 193, 6}
+    },
+    { {96, 119, 25, 168, 12},
+      {81, 38, 111, 176, 2},
+      {49, 89, 142, 224, 6},
+      {64, 223, 102, 72, 10}
+    },
+    { {100, 136, 107, 16, 1},
+      {180, 64, 180, 128, 12},
+      {128, 141, 97, 18, 6},
+      {48, 18, 208, 34, 13}
+    },
+    { {33, 158, 169, 148, 0},
+      {88, 128, 188, 96, 14},
+      {2, 153, 87, 152, 4},
+      {112, 99, 208, 17, 10}
+    },
+    { {146, 100, 250, 242, 11},
+      {37, 220, 135, 59, 7},
+      {212, 245, 242, 100, 9},
+      {237, 206, 19, 186, 4}
+    },
+    { {214, 14, 81, 55, 9},
+      {188, 8, 139, 183, 9},
+      {158, 200, 167, 6, 11},
+      {158, 221, 17, 3, 13}
+    },
+    { {6, 232, 25, 146, 12},
+      {145, 4, 213, 17, 11},
+      {52, 153, 129, 118, 0},
+      {216, 138, 178, 8, 9}
+    },
+    { {101, 196, 213, 201, 3},
+      {180, 181, 48, 252, 2},
+      {201, 58, 178, 58, 6},
+      {67, 240, 202, 210, 13}
+    },
+    { {91, 1, 85, 227, 4},
+      {50, 11, 66, 221, 3},
+      {44, 122, 168, 13, 10},
+      {203, 180, 45, 4, 12}
+    },
+    { {93, 64, 143, 102, 1},
+      {158, 205, 6, 200, 1},
+      {134, 111, 16, 43, 10},
+      {129, 54, 11, 55, 9}
+    },
+    { {61, 239, 243, 168, 13},
+      {183, 238, 123, 112, 14},
+      {177, 92, 255, 123, 12},
+      {112, 237, 231, 126, 13}
+    },
+    { {83, 37, 200, 86, 6},
+      {41, 154, 196, 233, 1},
+      {102, 161, 58, 76, 10},
+      {137, 114, 53, 153, 4}
+    },
+    { {18, 10, 174, 82, 10},
+      {0, 217, 141, 9, 13},
+      {84, 167, 85, 4, 8},
+      {185, 11, 25, 176, 0}
+    },
+    { {155, 29, 191, 200, 11},
+      {86, 251, 5, 123, 14},
+      {209, 63, 219, 141, 9},
+      {125, 234, 13, 246, 10}
+    },
+    { {207, 183, 171, 86, 8},
+      {219, 194, 157, 235, 5},
+      {22, 173, 94, 223, 3},
+      {173, 123, 148, 61, 11}
+    },
+    { {42, 141, 220, 32, 7},
+      {38, 147, 118, 49, 8},
+      {224, 67, 187, 21, 4},
+      {24, 198, 236, 150, 4}
+    },
+    { {142, 106, 174, 19, 3},
+      {135, 213, 140, 7, 13},
+      {204, 135, 85, 103, 1},
+      {190, 3, 26, 190, 1}
+    },
+    { {171, 253, 77, 159, 3},
+      {127, 55, 180, 103, 11},
+      {207, 155, 43, 253, 5},
+      {222, 98, 222, 207, 14}
+    },
+    { {45, 9, 17, 6, 12},
+      {154, 2, 97, 80, 9},
+      {54, 8, 137, 11, 4},
+      {144, 168, 100, 5, 9}
+    },
+    { {168, 207, 127, 12, 12},
+      {58, 103, 125, 50, 12},
+      {51, 15, 239, 49, 5},
+      {52, 203, 238, 101, 12}
+    },
+    { {166, 83, 153, 76, 7},
+      {220, 182, 108, 27, 0},
+      {227, 41, 156, 166, 5},
+      {13, 131, 102, 211, 11}
+    },
+    { {135, 166, 224, 109, 0},
+      {169, 160, 26, 111, 4},
+      {11, 96, 118, 94, 1},
+      {47, 101, 128, 89, 5}
+    },
+    { {59, 232, 221, 151, 0},
+      {59, 141, 180, 85, 11},
+      {14, 155, 177, 125, 12},
+      {218, 162, 219, 29, 12}
+    },
+    { {209, 178, 226, 250, 9},
+      {101, 232, 155, 202, 7},
+      {149, 244, 116, 216, 11},
+      {229, 61, 145, 122, 6}
+    },
+    { {0, 188, 184, 78, 7},
+      {77, 176, 84, 56, 13},
+      {231, 33, 211, 208, 0},
+      {177, 194, 160, 219, 2}
+    },
+    { {166, 167, 158, 98, 11},
+      {133, 211, 63, 59, 1},
+      {212, 103, 158, 86, 5},
+      {141, 207, 204, 186, 1}
+    },
+    { {200, 134, 91, 1, 3},
+      {54, 80, 28, 182, 0},
+      {200, 13, 166, 17, 3},
+      {6, 211, 128, 166, 12}
+    },
+    { {12, 255, 119, 177, 9},
+      {247, 71, 155, 52, 14},
+      {152, 222, 239, 243, 0},
+      {114, 205, 158, 46, 15}
+    },
+    { {142, 29, 220, 148, 3},
+      {238, 147, 132, 51, 10},
+      {194, 147, 187, 135, 1},
+      {92, 194, 28, 151, 7}
+    },
+    { {18, 244, 200, 158, 7},
+      {109, 188, 212, 33, 3},
+      {231, 145, 50, 244, 8},
+      {200, 66, 179, 219, 6}
+    },
+    { {221, 245, 180, 168, 13},
+      {199, 175, 83, 242, 6},
+      {177, 82, 218, 251, 11},
+      {100, 252, 175, 94, 3}
+    },
+    { {97, 194, 86, 250, 10},
+      {32, 117, 187, 216, 3},
+      {85, 246, 164, 56, 6},
+      {193, 189, 218, 224, 4}
+    },
+    { {34, 2, 81, 216, 5},
+      {52, 32, 232, 25, 2},
+      {161, 184, 164, 4, 4},
+      {73, 129, 112, 66, 12}
+    },
+    { {160, 222, 24, 47, 2},
+      {72, 52, 62, 54, 9},
+      {79, 65, 135, 176, 5},
+      {150, 199, 194, 193, 2}
+    },
+    { {203, 116, 62, 141, 0},
+      {75, 101, 4, 247, 6},
+      {11, 23, 194, 237, 3},
+      {110, 242, 10, 109, 2}
+    },
+    { {32, 93, 174, 186, 9},
+      {68, 231, 167, 32, 15},
+      {149, 215, 91, 160, 4},
+      {240, 78, 94, 114, 2}
+    },
+    { {182, 151, 72, 253, 13},
+      {236, 42, 255, 47, 2},
+      {187, 241, 46, 150, 13},
+      {79, 79, 245, 67, 7}
+    },
+    { {244, 165, 139, 213, 6},
+      {153, 218, 244, 174, 2},
+      {106, 189, 26, 82, 15},
+      {71, 82, 245, 185, 9}
+    },
+    { {137, 147, 208, 12, 15},
+      {110, 178, 89, 82, 0},
+      {243, 0, 188, 153, 1},
+      {4, 169, 164, 215, 6}
+    },
+    { {43, 161, 206, 80, 15},
+      {39, 211, 245, 73, 0},
+      {240, 167, 56, 93, 4},
+      {9, 42, 252, 190, 4}
+    },
+    { {84, 31, 38, 148, 10},
+      {200, 91, 137, 160, 14},
+      {82, 150, 79, 130, 10},
+      {112, 89, 29, 161, 3}
+    },
+    { {250, 73, 70, 153, 5},
+      {38, 111, 224, 135, 10},
+      {169, 150, 41, 37, 15},
+      {94, 16, 127, 102, 4}
+    },
+    { {143, 119, 77, 200, 6},
+      {243, 55, 76, 107, 2},
+      {97, 59, 46, 239, 1},
+      {77, 99, 46, 204, 15}
+    },
+    { {21, 73, 52, 191, 10},
+      {136, 63, 131, 84, 15},
+      {95, 210, 201, 42, 8},
+      {242, 172, 31, 193, 1}
+    },
+    { {160, 179, 125, 121, 0},
+      {113, 35, 190, 30, 4},
+      {9, 235, 236, 208, 5},
+      {39, 135, 220, 72, 14}
+    },
+    { {94, 29, 64, 6, 12},
+      {234, 10, 65, 161, 9},
+      {54, 0, 43, 135, 10},
+      {152, 88, 37, 5, 7}
+    },
+    { {247, 121, 227, 64, 9},
+      {245, 206, 33, 203, 12},
+      {144, 44, 121, 238, 15},
+      {61, 56, 71, 58, 15}
+    },
+    { {126, 60, 103, 41, 12},
+      {243, 105, 99, 165, 12},
+      {57, 78, 99, 199, 14},
+      {58, 92, 105, 108, 15}
+    },
+    { {38, 10, 20, 204, 8},
+      {136, 33, 41, 25, 10},
+      {19, 50, 133, 6, 4},
+      {89, 137, 72, 65, 1}
+    },
+    { {210, 180, 127, 62, 15},
+      {125, 121, 215, 179, 5},
+      {247, 207, 226, 212, 11},
+      {172, 222, 185, 235, 14}
+    },
+    { {52, 74, 22, 15, 2},
+      {136, 125, 40, 20, 9},
+      {79, 6, 133, 34, 12},
+      {146, 129, 75, 225, 1}
+    },
+    { {240, 88, 87, 246, 9},
+      {124, 77, 163, 154, 11},
+      {150, 254, 161, 160, 15},
+      {213, 156, 91, 35, 14}
+    },
+    { {200, 222, 73, 90, 3},
+      {118, 52, 156, 170, 9},
+      {197, 169, 39, 177, 3},
+      {149, 83, 146, 198, 14}
+    },
+    { {41, 152, 52, 89, 7},
+      {70, 49, 240, 92, 12},
+      {233, 162, 193, 153, 4},
+      {51, 160, 248, 198, 2}
+    },
+    { {192, 28, 220, 163, 10},
+      {96, 145, 7, 182, 11},
+      {92, 83, 179, 128, 3},
+      {214, 222, 8, 144, 6}
+    },
+    { {17, 134, 214, 198, 15},
+      {44, 217, 89, 120, 3},
+      {246, 54, 182, 24, 8},
+      {193, 233, 169, 179, 4}
+    },
+    { {199, 106, 99, 224, 0},
+      {177, 68, 10, 203, 14},
+      {0, 124, 101, 110, 3},
+      {125, 53, 2, 40, 13}
+    },
+    { {250, 63, 143, 86, 4},
+      {91, 203, 236, 171, 9},
+      {38, 175, 31, 197, 15},
+      {157, 83, 125, 61, 10}
+    },
+    { {30, 208, 47, 67, 7},
+      {214, 93, 84, 13, 5},
+      {236, 47, 64, 183, 8},
+      {171, 2, 171, 166, 11}
+    },
+    { {167, 132, 152, 85, 15},
+      {140, 144, 245, 127, 0},
+      {250, 161, 146, 30, 5},
+      {15, 234, 240, 147, 1}
+    },
+    { {12, 209, 94, 200, 6},
+      {226, 119, 84, 24, 2},
+      {97, 55, 168, 179, 0},
+      {65, 130, 174, 228, 7}
+    },
+    { {222, 242, 230, 20, 0},
+      {235, 205, 152, 131, 4},
+      {2, 134, 116, 247, 11},
+      {44, 17, 155, 61, 7}
+    },
+    { {172, 114, 24, 123, 12},
+      {195, 36, 239, 30, 1},
+      {61, 225, 132, 227, 5},
+      {135, 143, 114, 76, 3}
+    },
+    { {103, 201, 15, 119, 7},
+      {156, 87, 246, 205, 9},
+      {238, 239, 9, 62, 6},
+      {155, 54, 254, 163, 9}
+    },
+    { {7, 91, 205, 34, 11},
+      {244, 151, 15, 65, 9},
+      {212, 75, 61, 174, 0},
+      {152, 47, 14, 146, 15}
+    },
+    { {201, 190, 213, 237, 13},
+      {127, 161, 91, 254, 10},
+      {187, 122, 183, 217, 3},
+      {87, 253, 168, 95, 14}
+    },
+    { {106, 147, 24, 117, 4},
+      {74, 2, 254, 157, 0},
+      {42, 225, 140, 149, 6},
+      {11, 151, 244, 5, 2}
+    },
+    { {107, 212, 146, 123, 3},
+      {70, 244, 178, 253, 1},
+      {205, 228, 146, 189, 6},
+      {139, 244, 210, 246, 2}
+    },
+    { {118, 132, 7, 115, 8},
+      {144, 73, 179, 173, 1},
+      {28, 238, 2, 22, 14},
+      {139, 92, 217, 32, 9}
+    },
+    { {181, 12, 26, 120, 15},
+      {132, 120, 231, 122, 8},
+      {241, 229, 131, 10, 13},
+      {21, 238, 113, 226, 1}
+    },
+    { {153, 76, 54, 246, 14},
+      {10, 93, 195, 122, 15},
+      {118, 246, 195, 41, 9},
+      {245, 236, 59, 165, 0}
+    },
+    { {33, 245, 36, 87, 11},
+      {77, 23, 177, 108, 5},
+      {222, 162, 74, 248, 4},
+      {163, 104, 222, 139, 2}
+    },
+    { {97, 170, 231, 238, 4},
+      {57, 225, 122, 200, 15},
+      {39, 126, 117, 88, 6},
+      {241, 53, 232, 121, 12}
+    },
+    { {36, 1, 140, 232, 5},
+      {132, 163, 102, 8, 2},
+      {161, 115, 24, 2, 4},
+      {65, 6, 108, 82, 1}
+    },
+    { {97, 41, 206, 35, 10},
+      {33, 211, 39, 196, 9},
+      {92, 71, 57, 72, 6},
+      {146, 62, 76, 184, 4}
+    },
+    { {164, 226, 123, 199, 10},
+      {185, 84, 61, 30, 7},
+      {94, 61, 228, 114, 5},
+      {231, 139, 194, 169, 13}
+    },
+    { {182, 249, 62, 111, 6},
+      {201, 127, 118, 31, 13},
+      {111, 103, 201, 246, 13},
+      {191, 134, 239, 233, 3}
+    },
+    { {184, 158, 66, 250, 4},
+      {98, 104, 250, 42, 11},
+      {37, 244, 39, 145, 13},
+      {213, 69, 241, 100, 6}
+    },
+    { {205, 168, 178, 163, 12},
+      {131, 192, 83, 214, 15},
+      {60, 84, 209, 91, 3},
+      {246, 188, 160, 60, 1}
+    },
+    { {76, 57, 177, 159, 7},
+      {223, 178, 192, 148, 15},
+      {239, 152, 217, 195, 2},
+      {242, 144, 52, 223, 11}
+    },
+    { {185, 129, 38, 244, 2},
+      {10, 91, 178, 74, 6},
+      {66, 246, 72, 25, 13},
+      {101, 36, 221, 165, 0}
+    },
+    { {14, 11, 250, 182, 8},
+      {170, 194, 143, 17, 15},
+      {22, 213, 253, 7, 0},
+      {248, 143, 20, 53, 5}
+    },
+    { {242, 177, 157, 60, 6},
+      {89, 187, 246, 147, 0},
+      {99, 203, 152, 212, 15},
+      {12, 150, 253, 217, 10}
+    },
+    { {62, 75, 92, 90, 2},
+      {162, 63, 172, 25, 9},
+      {69, 163, 173, 39, 12},
+      {153, 131, 95, 196, 5}
+    },
+    { {53, 13, 105, 45, 8},
+      {184, 42, 39, 100, 12},
+      {27, 73, 107, 10, 12},
+      {50, 110, 69, 65, 13}
+    },
+    { {180, 35, 142, 37, 5},
+      {141, 203, 110, 6, 0},
+      {170, 71, 28, 66, 13},
+      {6, 7, 109, 59, 1}
+    },
+    { {69, 98, 201, 154, 0},
+      {177, 164, 140, 192, 3},
+      {5, 153, 52, 106, 2},
+      {192, 51, 18, 88, 13}
+    },
+    { {180, 56, 177, 59, 0},
+      {209, 168, 162, 22, 13},
+      {13, 200, 209, 194, 13},
+      {182, 132, 81, 88, 11}
+    },
+    { {131, 20, 145, 146, 14},
+      {80, 144, 193, 115, 3},
+      {116, 152, 146, 140, 1},
+      {204, 232, 48, 144, 10}
+    },
+    { {255, 9, 118, 5, 7},
+      {174, 91, 96, 215, 12},
+      {234, 6, 233, 15, 15},
+      {62, 176, 109, 167, 5}
+    },
+    { {76, 85, 220, 22, 13},
+      {238, 135, 197, 176, 1},
+      {182, 131, 186, 163, 2},
+      {128, 218, 62, 23, 7}
+    },
+    { {104, 114, 128, 201, 15},
+      {71, 180, 105, 140, 2},
+      {249, 48, 20, 225, 6},
+      {67, 25, 98, 222, 2}
+    },
+    { {118, 171, 174, 160, 4},
+      {129, 203, 126, 129, 14},
+      {32, 87, 93, 86, 14},
+      {120, 23, 237, 56, 1}
+    },
+    { {145, 170, 76, 41, 14},
+      {33, 57, 95, 70, 8},
+      {121, 67, 37, 88, 9},
+      {22, 47, 169, 200, 4}
+    },
+    { {172, 153, 124, 202, 8},
+      {226, 35, 53, 26, 15},
+      {21, 51, 233, 147, 5},
+      {245, 138, 204, 68, 7}
+    },
+    { {14, 211, 209, 214, 1},
+      {254, 134, 152, 25, 3},
+      {134, 184, 188, 183, 0},
+      {201, 129, 150, 23, 15}
+    },
+    { {186, 245, 248, 135, 3},
+      {111, 158, 52, 55, 7},
+      {206, 17, 250, 245, 13},
+      {238, 194, 199, 159, 6}
+    },
+    { {24, 203, 208, 54, 12},
+      {42, 142, 219, 16, 9},
+      {54, 192, 189, 49, 8},
+      {144, 141, 183, 21, 4}
+    },
+    { {230, 136, 49, 122, 7},
+      {148, 48, 242, 155, 13},
+      {229, 232, 193, 22, 7},
+      {189, 148, 240, 194, 9}
+    },
+    { {38, 93, 140, 24, 7},
+      {196, 183, 228, 33, 8},
+      {225, 131, 27, 166, 4},
+      {24, 66, 126, 210, 3}
+    },
+    { {37, 253, 177, 16, 7},
+      {213, 150, 240, 112, 12},
+      {224, 136, 219, 250, 4},
+      {48, 224, 246, 154, 11}
+    },
+    { {46, 105, 226, 33, 9},
+      {167, 198, 35, 5, 12},
+      {152, 68, 121, 103, 4},
+      {58, 12, 70, 62, 5}
+    },
+    { {148, 212, 15, 127, 5},
+      {220, 109, 214, 46, 1},
+      {175, 239, 2, 178, 9},
+      {135, 70, 187, 99, 11}
+    },
+    { {104, 227, 24, 161, 2},
+      {3, 22, 62, 148, 2},
+      {72, 81, 140, 113, 6},
+      {66, 151, 198, 140, 0}
+    },
+    { {115, 38, 168, 12, 2},
+      {9, 184, 44, 225, 4},
+      {67, 1, 86, 76, 14},
+      {40, 115, 65, 217, 0}
+    },
+    { {8, 225, 19, 56, 4},
+      {19, 102, 210, 16, 0},
+      {33, 204, 136, 113, 0},
+      {0, 132, 182, 108, 8}
+    },
+    { {30, 74, 153, 58, 11},
+      {150, 188, 143, 17, 9},
+      {213, 201, 149, 39, 8},
+      {152, 143, 19, 214, 9}
+    },
+    { {56, 123, 230, 193, 11},
+      {103, 223, 41, 12, 14},
+      {216, 54, 125, 225, 12},
+      {115, 9, 79, 190, 6}
+    },
+    { {23, 164, 136, 165, 2},
+      {137, 152, 22, 101, 2},
+      {74, 81, 18, 94, 8},
+      {74, 102, 129, 153, 1}
+    },
+    { {100, 67, 135, 200, 8},
+      {144, 231, 41, 136, 2},
+      {17, 62, 28, 34, 6},
+      {65, 25, 78, 112, 9}
+    },
+    { {110, 7, 130, 143, 7},
+      {142, 242, 104, 165, 3},
+      {239, 20, 30, 7, 6},
+      {202, 81, 100, 247, 1}
+    },
+    { {184, 128, 233, 2, 2},
+      {50, 152, 52, 2, 5},
+      {68, 9, 112, 17, 13},
+      {164, 2, 193, 148, 12}
+    },
+    { {62, 14, 185, 83, 2},
+      {146, 152, 172, 61, 13},
+      {76, 169, 215, 7, 12},
+      {187, 195, 81, 148, 9}
+    },
+    { {143, 140, 17, 176, 2},
+      {146, 16, 146, 115, 10},
+      {64, 216, 131, 31, 1},
+      {92, 228, 144, 132, 9}
+    },
+    { {27, 141, 195, 155, 13},
+      {54, 234, 209, 101, 11},
+      {189, 156, 59, 29, 8},
+      {218, 104, 181, 118, 12}
+    },
+    { {238, 130, 108, 30, 9},
+      {174, 33, 189, 131, 5},
+      {151, 131, 100, 23, 7},
+      {172, 27, 216, 71, 5}
+    },
+    { {149, 96, 110, 240, 8},
+      {161, 77, 135, 74, 6},
+      {16, 247, 96, 106, 9},
+      {101, 46, 27, 40, 5}
+    },
+    { {80, 228, 38, 86, 2},
+      {9, 93, 144, 168, 5},
+      {70, 166, 66, 112, 10},
+      {161, 80, 155, 169, 0}
+    },
+    { {212, 77, 143, 180, 2},
+      {152, 223, 134, 162, 10},
+      {66, 223, 27, 34, 11},
+      {84, 86, 31, 177, 9}
+    },
+    { {5, 79, 54, 9, 7},
+      {132, 119, 72, 116, 12},
+      {233, 6, 207, 42, 0},
+      {50, 225, 46, 226, 1}
+    },
+    { {165, 246, 91, 233, 9},
+      {245, 100, 63, 126, 2},
+      {153, 125, 166, 250, 5},
+      {71, 239, 194, 106, 15}
+    },
+    { {246, 67, 68, 234, 5},
+      {164, 47, 106, 139, 3},
+      {165, 114, 44, 38, 15},
+      {205, 21, 111, 66, 5}
+    },
+    { {85, 81, 175, 40, 13},
+      {212, 239, 71, 192, 4},
+      {177, 79, 88, 170, 10},
+      {32, 62, 47, 114, 11}
+    },
+    { {27, 94, 104, 63, 5},
+      {110, 44, 206, 101, 13},
+      {175, 193, 103, 173, 8},
+      {186, 103, 51, 71, 6}
+    },
+    { {6, 118, 167, 222, 12},
+      {217, 229, 201, 41, 7},
+      {55, 190, 86, 230, 0},
+      {233, 73, 58, 121, 11}
+    },
+    { {70, 176, 31, 231, 11},
+      {221, 81, 23, 157, 3},
+      {222, 127, 128, 214, 2},
+      {203, 158, 136, 171, 11}
+    },
+    { {38, 80, 223, 195, 0},
+      {240, 197, 36, 29, 3},
+      {12, 63, 176, 166, 4},
+      {203, 130, 74, 48, 15}
+    },
+    { {52, 1, 83, 23, 3},
+      {188, 90, 160, 20, 1},
+      {206, 140, 168, 2, 12},
+      {130, 128, 85, 163, 13}
+    },
+    { {185, 183, 76, 10, 12},
+      {99, 43, 125, 98, 1},
+      {53, 3, 46, 217, 13},
+      {132, 107, 237, 76, 6}
+    },
+    { {103, 124, 93, 21, 5},
+      {253, 5, 228, 245, 8},
+      {170, 139, 163, 238, 6},
+      {26, 242, 122, 11, 15}
+    },
+    { {62, 14, 116, 210, 9},
+      {166, 9, 169, 57, 15},
+      {148, 178, 231, 7, 12},
+      {249, 201, 89, 6, 5}
+    },
+    { {135, 91, 221, 123, 4},
+      {240, 167, 206, 95, 9},
+      {45, 235, 189, 174, 1},
+      {159, 167, 62, 80, 15}
+    },
+    { {243, 250, 71, 202, 15},
+      {117, 125, 121, 203, 11},
+      {245, 62, 37, 252, 15},
+      {221, 57, 235, 234, 14}
+    },
+    { {215, 194, 170, 201, 7},
+      {132, 252, 92, 207, 6},
+      {233, 53, 84, 62, 11},
+      {111, 51, 163, 242, 1}
+    },
+    { {9, 112, 244, 98, 8},
+      {99, 133, 3, 88, 5},
+      {20, 98, 240, 233, 0},
+      {161, 172, 10, 28, 6}
+    },
+    { {49, 139, 231, 50, 10},
+      {48, 219, 187, 64, 13},
+      {84, 206, 125, 24, 12},
+      {176, 45, 221, 176, 12}
+    },
+    { {250, 59, 245, 187, 4},
+      {115, 171, 234, 151, 15},
+      {45, 218, 253, 197, 15},
+      {254, 149, 125, 92, 14}
+    },
+    { {119, 186, 106, 0, 14},
+      {225, 88, 125, 193, 12},
+      {112, 5, 101, 222, 14},
+      {56, 59, 225, 168, 7}
+    },
+    { {245, 7, 16, 43, 15},
+      {132, 58, 107, 246, 1},
+      {253, 64, 142, 10, 15},
+      {134, 253, 101, 194, 1}
+    },
+    { {55, 185, 16, 190, 8},
+      {201, 42, 179, 81, 11},
+      {23, 208, 137, 222, 12},
+      {216, 172, 213, 73, 3}
+    },
+    { {154, 36, 87, 204, 1},
+      {63, 105, 0, 59, 2},
+      {131, 62, 162, 69, 9},
+      {77, 192, 9, 111, 12}
+    },
+    { {86, 238, 203, 19, 12},
+      {177, 204, 221, 165, 9},
+      {60, 141, 55, 118, 10},
+      {154, 91, 179, 56, 13}
+    },
+    { {19, 93, 119, 167, 4},
+      {120, 79, 66, 117, 15},
+      {46, 94, 235, 172, 8},
+      {250, 228, 47, 33, 14}
+    },
+    { {13, 146, 253, 48, 4},
+      {242, 129, 222, 80, 4},
+      {32, 203, 244, 155, 0},
+      {32, 167, 184, 20, 15}
+    },
+    { {237, 122, 230, 34, 3},
+      {231, 213, 42, 194, 13},
+      {196, 70, 117, 235, 7},
+      {180, 53, 74, 190, 7}
+    },
+    { {141, 125, 109, 37, 12},
+      {251, 7, 71, 102, 12},
+      {58, 75, 107, 235, 1},
+      {54, 110, 46, 13, 15}
+    },
+    { {120, 62, 207, 103, 3},
+      {127, 217, 46, 172, 9},
+      {206, 111, 55, 193, 14},
+      {147, 87, 73, 191, 14}
+    },
+    { {62, 116, 93, 252, 6},
+      {251, 61, 230, 57, 2},
+      {99, 251, 162, 231, 12},
+      {73, 198, 123, 205, 15}
+    },
+    { {188, 170, 218, 5, 10},
+      {171, 216, 61, 22, 8},
+      {90, 5, 181, 83, 13},
+      {22, 139, 193, 189, 5}
+    },
+    { {13, 162, 38, 20, 8},
+      {139, 65, 153, 64, 4},
+      {18, 134, 68, 91, 0},
+      {32, 41, 152, 45, 1}
+    },
+    { {134, 217, 94, 7, 10},
+      {232, 87, 21, 23, 9},
+      {94, 7, 169, 182, 1},
+      {158, 138, 142, 161, 7}
+    },
+    { {37, 126, 156, 27, 14},
+      {193, 181, 237, 116, 9},
+      {125, 131, 151, 234, 4},
+      {146, 235, 122, 216, 3}
+    },
+    { {221, 222, 210, 16, 1},
+      {230, 204, 152, 242, 8},
+      {128, 132, 183, 187, 11},
+      {20, 241, 147, 54, 7}
+    },
+    { {233, 1, 205, 160, 13},
+      {54, 131, 103, 194, 2},
+      {176, 91, 56, 9, 7},
+      {68, 62, 108, 22, 12}
+    },
+    { {119, 152, 12, 57, 4},
+      {192, 41, 246, 197, 8},
+      {41, 195, 1, 158, 14},
+      {26, 54, 249, 64, 3}
+    },
+    { {209, 14, 75, 139, 7},
+      {52, 120, 76, 230, 11},
+      {237, 29, 39, 8, 11},
+      {214, 115, 33, 226, 12}
+    },
+    { {226, 178, 81, 251, 9},
+      {117, 32, 187, 159, 3},
+      {157, 248, 164, 212, 7},
+      {207, 157, 208, 74, 14}
+    },
+    { {108, 39, 137, 18, 7},
+      {151, 146, 236, 160, 1},
+      {228, 137, 30, 67, 6},
+      {128, 83, 116, 158, 9}
+    },
+    { {78, 213, 70, 229, 4},
+      {234, 71, 82, 173, 2},
+      {42, 118, 42, 183, 2},
+      {75, 84, 174, 37, 7}
+    },
+    { {240, 6, 14, 244, 9},
+      {12, 73, 175, 170, 2},
+      {146, 247, 6, 0, 15},
+      {69, 95, 89, 35, 0}
+    },
+    { {179, 69, 148, 196, 9},
+      {12, 143, 33, 123, 2},
+      {146, 50, 154, 44, 13},
+      {77, 232, 79, 19, 0}
+    },
+    { {183, 99, 0, 71, 12},
+      {137, 14, 105, 79, 1},
+      {62, 32, 12, 110, 13},
+      {143, 41, 103, 9, 1}
+    },
+    { {124, 196, 229, 3, 1},
+      {182, 141, 48, 164, 5},
+      {140, 10, 114, 51, 14},
+      {162, 80, 203, 22, 13}
+    },
+    { {86, 1, 102, 16, 6},
+      {160, 91, 192, 129, 4},
+      {96, 134, 104, 6, 10},
+      {40, 16, 61, 160, 5}
+    },
+    { {82, 75, 187, 242, 15},
+      {20, 222, 207, 153, 15},
+      {244, 253, 221, 36, 10},
+      {249, 159, 55, 178, 8}
+    },
+    { {142, 50, 98, 30, 15},
+      {239, 112, 201, 3, 5},
+      {247, 132, 100, 199, 1},
+      {172, 9, 48, 239, 7}
+    },
+    { {66, 68, 75, 195, 9},
+      {52, 68, 5, 173, 3},
+      {156, 61, 34, 36, 2},
+      {203, 90, 2, 34, 12}
+    },
+    { {139, 101, 126, 225, 12},
+      {35, 71, 71, 127, 6},
+      {56, 119, 234, 109, 1},
+      {111, 238, 46, 44, 4}
+    },
+    { {53, 42, 182, 84, 7},
+      {141, 217, 232, 88, 12},
+      {226, 166, 213, 74, 12},
+      {49, 161, 121, 187, 1}
+    },
+    { {231, 165, 75, 233, 2},
+      {177, 114, 54, 239, 2},
+      {73, 125, 42, 94, 7},
+      {79, 118, 196, 232, 13}
+    },
+    { {120, 30, 244, 21, 3},
+      {110, 153, 168, 180, 12},
+      {202, 130, 247, 129, 14},
+      {50, 209, 89, 151, 6}
+    },
+    { {50, 242, 74, 129, 2},
+      {97, 92, 60, 5, 2},
+      {72, 21, 36, 244, 12},
+      {74, 3, 195, 168, 6}
+    },
+    { {40, 17, 16, 119, 11},
+      {78, 18, 163, 28, 1},
+      {222, 224, 136, 129, 4},
+      {131, 140, 84, 135, 2}
+    },
+    { {37, 203, 65, 84, 13},
+      {188, 6, 249, 72, 8},
+      {178, 168, 45, 58, 4},
+      {17, 41, 246, 3, 13}
+    },
+    { {167, 103, 245, 103, 1},
+      {189, 135, 42, 127, 5},
+      {142, 106, 254, 110, 5},
+      {175, 229, 78, 27, 13}
+    },
+    { {91, 165, 158, 70, 11},
+      {15, 219, 21, 249, 1},
+      {214, 39, 154, 93, 10},
+      {137, 250, 141, 191, 0}
+    },
+    { {88, 61, 62, 106, 2},
+      {67, 123, 6, 184, 13},
+      {69, 103, 203, 193, 10},
+      {177, 214, 13, 236, 2}
+    },
+    { {191, 77, 67, 125, 10},
+      {186, 126, 163, 111, 8},
+      {91, 236, 43, 47, 13},
+      {31, 108, 87, 229, 13}
+    },
+    { {160, 164, 162, 247, 2},
+      {9, 208, 178, 46, 7},
+      {78, 244, 82, 80, 5},
+      {231, 68, 208, 185, 0}
+    },
+    { {93, 52, 153, 184, 6},
+      {211, 184, 198, 240, 2},
+      {97, 217, 146, 203, 10},
+      {64, 246, 49, 220, 11}
+    },
+    { {211, 7, 214, 157, 5},
+      {44, 235, 200, 247, 2},
+      {171, 150, 190, 12, 11},
+      {78, 241, 61, 115, 4}
+    },
+    { {155, 172, 247, 16, 14},
+      {51, 217, 209, 115, 12},
+      {112, 142, 243, 93, 9},
+      {60, 232, 185, 188, 12}
+    },
+    { {196, 108, 246, 252, 13},
+      {173, 229, 195, 186, 14},
+      {179, 246, 243, 98, 3},
+      {117, 220, 58, 123, 5}
+    },
+    { {184, 1, 141, 118, 12},
+      {26, 139, 231, 10, 1},
+      {54, 235, 24, 1, 13},
+      {133, 14, 125, 21, 8}
+    },
+    { {232, 151, 127, 181, 13},
+      {126, 67, 255, 182, 6},
+      {186, 223, 238, 145, 7},
+      {102, 223, 252, 39, 14}
+    },
+    { {11, 60, 141, 188, 5},
+      {95, 161, 198, 97, 10},
+      {163, 219, 19, 205, 0},
+      {88, 102, 56, 95, 10}
+    },
+    { {20, 20, 133, 139, 8},
+      {208, 169, 1, 36, 3},
+      {29, 26, 18, 130, 8},
+      {194, 72, 9, 80, 11}
+    },
+    { {115, 104, 16, 10, 4},
+      {1, 44, 96, 209, 9},
+      {37, 0, 129, 108, 14},
+      {152, 176, 99, 72, 0}
+    },
+    { {18, 132, 134, 239, 3},
+      {12, 249, 18, 45, 3},
+      {207, 118, 18, 20, 8},
+      {203, 68, 137, 243, 0}
+    },
+    { {210, 252, 86, 125, 0},
+      {105, 109, 146, 191, 8},
+      {11, 230, 163, 244, 11},
+      {31, 212, 155, 105, 6}
+    },
+    { {91, 207, 66, 130, 14},
+      {34, 94, 89, 225, 11},
+      {116, 20, 47, 61, 10},
+      {216, 121, 167, 164, 4}
+    },
+    { {73, 183, 123, 167, 3},
+      {127, 82, 30, 244, 7},
+      {206, 93, 238, 217, 2},
+      {226, 247, 132, 175, 14}
+    },
+    { {97, 229, 12, 169, 15},
+      {5, 55, 119, 228, 2},
+      {249, 83, 10, 120, 6},
+      {66, 126, 238, 202, 0}
+    },
+    { {28, 221, 19, 226, 0},
+      {210, 78, 18, 56, 11},
+      {4, 124, 139, 179, 8},
+      {209, 196, 135, 36, 11}
+    },
+    { {241, 23, 253, 83, 15},
+      {116, 155, 237, 254, 5},
+      {252, 171, 254, 136, 15},
+      {167, 251, 125, 146, 14}
+    },
+    { {141, 51, 92, 19, 13},
+      {231, 3, 205, 86, 1},
+      {188, 131, 172, 203, 1},
+      {134, 171, 60, 14, 7}
+    },
+    { {248, 223, 155, 48, 4},
+      {82, 206, 254, 178, 8},
+      {32, 205, 159, 177, 15},
+      {20, 215, 247, 52, 10}
+    },
+    { {205, 115, 59, 196, 0},
+      {219, 70, 12, 218, 6},
+      {2, 61, 204, 235, 3},
+      {101, 179, 6, 45, 11}
+    },
+    { {35, 29, 150, 151, 9},
+      {76, 195, 161, 117, 11},
+      {158, 150, 155, 140, 4},
+      {218, 232, 92, 51, 2}
+    },
+    { {44, 151, 177, 71, 6},
+      {218, 146, 120, 60, 5},
+      {110, 40, 222, 147, 4},
+      {163, 193, 228, 149, 11}
+    },
+    { {230, 105, 156, 80, 1},
+      {133, 135, 164, 155, 8},
+      {128, 163, 153, 102, 7},
+      {29, 146, 94, 26, 1}
+    },
+    { {181, 161, 208, 86, 14},
+      {169, 154, 241, 90, 1},
+      {118, 160, 184, 90, 13},
+      {133, 168, 245, 153, 5}
+    },
+    { {60, 125, 33, 88, 4},
+      {211, 46, 224, 40, 12},
+      {33, 168, 75, 227, 12},
+      {49, 64, 119, 76, 11}
+    },
+    { {173, 20, 11, 20, 5},
+      {222, 64, 228, 98, 0},
+      {162, 141, 2, 139, 5},
+      {4, 98, 112, 39, 11}
+    },
+    { {251, 9, 110, 114, 3},
+      {38, 91, 166, 203, 13},
+      {196, 231, 105, 13, 15},
+      {189, 54, 93, 166, 4}
+    },
+    { {23, 132, 105, 191, 13},
+      {188, 40, 215, 101, 7},
+      {191, 217, 98, 30, 8},
+      {234, 110, 177, 67, 13}
+    },
+    { {36, 48, 61, 47, 6},
+      {217, 49, 102, 20, 5},
+      {111, 75, 192, 194, 4},
+      {162, 134, 104, 201, 11}
+    },
+    { {235, 214, 231, 21, 5},
+      {126, 197, 248, 231, 4},
+      {170, 142, 118, 189, 7},
+      {46, 113, 250, 55, 14}
+    },
+    { {147, 91, 170, 215, 11},
+      {76, 222, 141, 79, 15},
+      {222, 181, 93, 172, 9},
+      {255, 43, 23, 179, 2}
+    },
+    { {209, 95, 34, 205, 13},
+      {76, 110, 73, 238, 14},
+      {187, 52, 79, 168, 11},
+      {119, 121, 39, 99, 2}
+    },
+    { {55, 178, 213, 83, 15},
+      {245, 153, 249, 93, 1},
+      {252, 170, 180, 222, 12},
+      {139, 169, 249, 154, 15}
+    },
+    { {211, 101, 213, 98, 8},
+      {49, 143, 3, 251, 1},
+      {20, 106, 186, 108, 11},
+      {141, 252, 15, 24, 12}
+    },
+    { {29, 118, 183, 146, 15},
+      {215, 221, 201, 112, 7},
+      {244, 158, 214, 235, 8},
+      {224, 233, 59, 190, 11}
+    },
+    { {87, 185, 126, 171, 11},
+      {229, 123, 23, 213, 15},
+      {221, 87, 233, 222, 10},
+      {250, 190, 141, 234, 7}
+    },
+    { {9, 11, 171, 164, 4},
+      {26, 194, 78, 64, 14},
+      {34, 93, 93, 9, 0},
+      {112, 39, 36, 53, 8}
+    },
+    { {163, 131, 97, 118, 11},
+      {60, 18, 187, 75, 5},
+      {214, 232, 108, 28, 5},
+      {173, 45, 212, 131, 12}
+    },
+    { {156, 250, 125, 156, 6},
+      {251, 61, 220, 18, 14},
+      {99, 155, 229, 243, 9},
+      {116, 131, 187, 205, 15}
+    },
+    { {76, 134, 94, 122, 15},
+      {166, 113, 223, 184, 1},
+      {245, 231, 166, 19, 2},
+      {129, 223, 184, 230, 5}
+    },
+    { {249, 13, 22, 148, 11},
+      {14, 91, 161, 242, 10},
+      {210, 150, 139, 9, 15},
+      {84, 248, 93, 167, 0}
+    },
+    { {120, 93, 12, 212, 1},
+      {78, 15, 164, 168, 10},
+      {130, 179, 11, 161, 14},
+      {81, 82, 95, 7, 2}
+    },
+    { {51, 98, 95, 192, 1},
+      {53, 77, 44, 89, 2},
+      {128, 63, 164, 108, 12},
+      {73, 163, 75, 42, 12}
+    },
+    { {0, 213, 240, 148, 3},
+      {108, 150, 144, 48, 6},
+      {194, 144, 250, 176, 0},
+      {96, 192, 150, 147, 6}
+    },
+    { {167, 185, 175, 176, 8},
+      {209, 195, 183, 67, 14},
+      {16, 223, 89, 222, 5},
+      {124, 46, 220, 56, 11}
+    },
+    { {223, 59, 151, 88, 10},
+      {211, 251, 137, 219, 8},
+      {81, 174, 157, 207, 11},
+      {29, 185, 29, 252, 11}
+    },
+    { {182, 138, 31, 89, 2},
+      {144, 121, 188, 31, 8},
+      {73, 175, 133, 22, 13},
+      {31, 131, 217, 224, 9}
+    },
+    { {103, 50, 106, 212, 0},
+      {233, 64, 172, 201, 6},
+      {2, 181, 100, 206, 6},
+      {105, 51, 80, 41, 7}
+    },
+    { {7, 184, 90, 134, 3},
+      {237, 80, 20, 81, 11},
+      {198, 21, 161, 222, 0},
+      {216, 162, 128, 171, 7}
+    },
+    { {37, 38, 25, 247, 15},
+      {157, 16, 239, 124, 3},
+      {254, 249, 134, 74, 4},
+      {195, 239, 112, 139, 9}
+    },
+    { {130, 206, 71, 104, 3},
+      {52, 117, 26, 43, 8},
+      {193, 110, 39, 52, 1},
+      {29, 69, 138, 226, 12}
+    },
+    { {108, 230, 33, 121, 12},
+      {147, 36, 251, 172, 4},
+      {57, 232, 70, 115, 6},
+      {35, 93, 242, 76, 9}
+    },
+    { {98, 230, 221, 55, 8},
+      {57, 133, 191, 181, 1},
+      {30, 203, 182, 116, 6},
+      {138, 223, 218, 25, 12}
+    },
+    { {62, 92, 11, 17, 10},
+      {210, 92, 165, 37, 8},
+      {88, 141, 3, 167, 12},
+      {26, 74, 83, 164, 11}
+    },
+    { {57, 245, 112, 80, 8},
+      {99, 14, 177, 120, 4},
+      {16, 160, 234, 249, 12},
+      {33, 232, 215, 12, 6}
+    },
+    { {214, 87, 51, 142, 6},
+      {216, 126, 72, 179, 7},
+      {103, 28, 206, 166, 11},
+      {236, 209, 39, 225, 11}
+    },
+    { {192, 98, 168, 92, 12},
+      {9, 164, 205, 138, 4},
+      {51, 161, 84, 96, 3},
+      {37, 27, 50, 89, 0}
+    },
+    { {131, 220, 0, 222, 5},
+      {76, 36, 208, 107, 11},
+      {167, 176, 3, 188, 1},
+      {221, 96, 178, 67, 2}
+    },
+    { {177, 33, 195, 250, 3},
+      {53, 250, 162, 74, 3},
+      {197, 252, 56, 72, 13},
+      {197, 36, 85, 250, 12}
+    },
+    { {227, 149, 10, 113, 14},
+      {64, 82, 247, 239, 0},
+      {120, 229, 10, 156, 7},
+      {15, 126, 244, 160, 2}
+    },
+    { {113, 29, 253, 190, 8},
+      {120, 171, 167, 240, 15},
+      {23, 219, 251, 136, 14},
+      {240, 254, 93, 81, 14}
+    },
+    { {130, 171, 112, 191, 2},
+      {41, 50, 154, 23, 15},
+      {79, 208, 237, 84, 1},
+      {254, 133, 148, 201, 4}
+    },
+    { {93, 123, 132, 66, 1},
+      {199, 143, 8, 200, 9},
+      {132, 34, 29, 235, 10},
+      {145, 49, 15, 30, 3}
+    },
+    { {103, 239, 52, 200, 12},
+      {129, 39, 121, 249, 14},
+      {49, 50, 207, 126, 6},
+      {121, 249, 238, 72, 1}
+    },
+    { {202, 53, 231, 230, 13},
+      {127, 195, 67, 171, 7},
+      {182, 126, 122, 197, 3},
+      {237, 92, 44, 63, 14}
+    },
+    { {36, 1, 77, 111, 11},
+      {188, 51, 39, 12, 1},
+      {223, 107, 40, 2, 4},
+      {131, 14, 76, 195, 13}
+    },
+    { {183, 239, 157, 161, 14},
+      {145, 159, 127, 119, 10},
+      {120, 91, 159, 126, 13},
+      {94, 239, 239, 152, 9}
+    },
+    { {176, 76, 172, 188, 7},
+      {12, 189, 230, 34, 14},
+      {227, 211, 83, 32, 13},
+      {116, 70, 123, 211, 0}
+    },
+    { {193, 166, 3, 154, 8},
+      {17, 96, 153, 226, 3},
+      {21, 156, 6, 88, 3},
+      {196, 121, 144, 104, 8}
+    },
+    { {197, 1, 82, 163, 10},
+      {160, 82, 3, 214, 3},
+      {92, 84, 168, 10, 3},
+      {198, 188, 4, 160, 5}
+    },
+    { {220, 202, 43, 43, 7},
+      {150, 124, 94, 134, 13},
+      {237, 77, 69, 51, 11},
+      {182, 23, 163, 230, 9}
+    },
+    { {88, 6, 54, 143, 3},
+      {14, 121, 8, 180, 7},
+      {207, 22, 198, 1, 10},
+      {226, 209, 9, 231, 0}
+    },
+    { {139, 223, 114, 151, 10},
+      {106, 86, 153, 119, 15},
+      {94, 148, 239, 189, 1},
+      {254, 233, 150, 165, 6}
+    },
+    { {118, 72, 225, 171, 10},
+      {176, 188, 35, 133, 15},
+      {93, 88, 113, 38, 14},
+      {250, 28, 67, 208, 13}
+    },
+    { {224, 20, 244, 247, 7},
+      {108, 145, 226, 190, 7},
+      {238, 242, 242, 128, 7},
+      {231, 212, 120, 147, 6}
+    },
+    { {113, 170, 60, 249, 0},
+      {1, 41, 190, 220, 14},
+      {9, 243, 197, 88, 14},
+      {115, 183, 217, 72, 0}
+    },
+    { {156, 171, 243, 108, 14},
+      {187, 250, 91, 26, 12},
+      {115, 108, 253, 83, 9},
+      {53, 141, 165, 253, 13}
+    },
+    { {135, 84, 73, 90, 15},
+      {244, 52, 197, 107, 1},
+      {245, 169, 34, 174, 1},
+      {141, 106, 50, 194, 15}
+    },
+    { {154, 153, 213, 71, 2},
+      {122, 155, 16, 31, 9},
+      {78, 42, 185, 149, 9},
+      {159, 128, 141, 149, 14}
+    },
+    { {231, 44, 187, 69, 6},
+      {153, 208, 100, 255, 12},
+      {106, 45, 211, 78, 7},
+      {63, 242, 96, 185, 9}
+    },
+    { {196, 176, 203, 147, 1},
+      {245, 192, 148, 134, 3},
+      {140, 157, 48, 210, 3},
+      {198, 18, 144, 58, 15}
+    },
+    { {137, 237, 4, 93, 7},
+      {15, 55, 208, 110, 8},
+      {235, 162, 11, 121, 1},
+      {23, 96, 190, 207, 0}
+    },
+    { {199, 169, 10, 58, 11},
+      {133, 114, 151, 195, 9},
+      {213, 197, 9, 94, 3},
+      {156, 62, 148, 234, 1}
+    },
+    { {65, 90, 235, 196, 2},
+      {120, 212, 12, 200, 14},
+      {66, 61, 117, 168, 2},
+      {113, 51, 2, 177, 14}
+    },
+    { {127, 85, 215, 48, 2},
+      {242, 223, 162, 241, 0},
+      {64, 206, 186, 175, 14},
+      {8, 244, 95, 180, 15}
+    },
+    { {17, 75, 16, 122, 6},
+      {0, 62, 202, 88, 9},
+      {101, 224, 141, 40, 8},
+      {145, 165, 55, 192, 0}
+    },
+    { {230, 235, 111, 39, 4},
+      {185, 71, 126, 135, 13},
+      {46, 79, 109, 118, 7},
+      {190, 23, 238, 41, 13}
+    },
+    { {132, 244, 176, 135, 15},
+      {205, 148, 81, 54, 7},
+      {254, 16, 210, 242, 1},
+      {230, 200, 162, 155, 3}
+    },
+    { {91, 222, 44, 8, 8},
+      {66, 45, 29, 225, 12},
+      {17, 3, 71, 189, 10},
+      {56, 123, 139, 68, 2}
+    },
+    { {205, 253, 149, 194, 7},
+      {215, 151, 80, 250, 11},
+      {228, 58, 155, 251, 3},
+      {213, 240, 174, 158, 11}
+    },
+    { {51, 193, 37, 123, 3},
+      {20, 63, 178, 77, 5},
+      {205, 234, 72, 60, 12},
+      {171, 36, 223, 194, 8}
+    },
+    { {99, 27, 71, 141, 15},
+      {124, 115, 105, 197, 10},
+      {251, 30, 45, 140, 6},
+      {90, 57, 108, 227, 14}
+    },
+    { {229, 239, 80, 81, 11},
+      {165, 22, 185, 254, 8},
+      {216, 160, 175, 122, 7},
+      {23, 249, 214, 138, 5}
+    },
+    { {65, 141, 160, 190, 12},
+      {8, 162, 211, 224, 15},
+      {55, 208, 91, 24, 2},
+      {240, 124, 180, 81, 0}
+    },
+    { {193, 184, 36, 139, 1},
+      {69, 33, 16, 198, 15},
+      {141, 18, 65, 216, 3},
+      {246, 48, 136, 74, 2}
+    },
+    { {118, 222, 87, 133, 11},
+      {252, 93, 57, 181, 10},
+      {218, 30, 167, 182, 14},
+      {90, 217, 203, 163, 15}
+    },
+    { {219, 201, 87, 218, 6},
+      {50, 127, 208, 219, 11},
+      {101, 190, 169, 61, 11},
+      {221, 176, 191, 228, 12}
+    },
+    { {202, 225, 244, 5, 4},
+      {43, 135, 80, 151, 4},
+      {42, 2, 248, 117, 3},
+      {46, 144, 174, 29, 4}
+    },
+    { {145, 76, 36, 42, 2},
+      {0, 61, 2, 98, 13},
+      {69, 66, 67, 40, 9},
+      {180, 100, 11, 192, 0}
+    },
+    { {69, 163, 208, 168, 2},
+      {161, 178, 26, 208, 2},
+      {65, 80, 188, 90, 2},
+      {64, 181, 132, 216, 5}
+    },
+    { {136, 154, 125, 93, 13},
+      {126, 33, 221, 30, 12},
+      {187, 171, 229, 145, 1},
+      {55, 139, 184, 71, 14}
+    },
+    { {154, 61, 179, 211, 2},
+      {83, 218, 128, 63, 15},
+      {76, 188, 219, 197, 9},
+      {255, 192, 21, 188, 10}
+    },
+    { {208, 44, 134, 112, 15},
+      {5, 217, 195, 170, 8},
+      {240, 230, 19, 64, 11},
+      {21, 92, 57, 186, 0}
+    },
+    { {21, 123, 52, 80, 12},
+      {193, 15, 201, 88, 12},
+      {48, 162, 205, 234, 8},
+      {49, 169, 63, 8, 3}
+    },
+    { {137, 13, 55, 91, 10},
+      {18, 115, 129, 126, 13},
+      {93, 174, 203, 9, 1},
+      {183, 232, 28, 228, 8}
+    },
+    { {137, 27, 201, 59, 10},
+      {114, 178, 143, 70, 9},
+      {93, 201, 61, 137, 1},
+      {150, 47, 20, 212, 14}
+    },
+    { {138, 2, 216, 10, 3},
+      {38, 176, 12, 19, 1},
+      {197, 1, 180, 5, 1},
+      {140, 131, 0, 214, 4}
+    },
+    { {30, 93, 243, 65, 14},
+      {242, 222, 65, 61, 12},
+      {120, 44, 251, 167, 8},
+      {59, 200, 39, 180, 15}
+    },
+    { {120, 109, 137, 131, 2},
+      {19, 158, 36, 164, 11},
+      {76, 25, 27, 97, 14},
+      {210, 82, 71, 156, 8}
+    },
+    { {172, 247, 228, 126, 13},
+      {239, 167, 251, 42, 5},
+      {183, 226, 126, 243, 5},
+      {165, 77, 254, 95, 7}
+    },
+    { {28, 22, 226, 90, 0},
+      {226, 232, 136, 40, 5},
+      {5, 164, 118, 131, 8},
+      {161, 65, 17, 116, 7}
+    },
+    { {46, 169, 4, 13, 9},
+      {143, 35, 49, 5, 8},
+      {155, 2, 9, 87, 4},
+      {26, 8, 204, 79, 1}
+    },
+    { {243, 38, 138, 238, 5},
+      {13, 232, 110, 235, 3},
+      {167, 117, 22, 76, 15},
+      {205, 119, 97, 123, 0}
+    },
+    { {128, 232, 75, 204, 11},
+      {61, 116, 21, 10, 10},
+      {211, 61, 33, 112, 1},
+      {85, 10, 130, 235, 12}
+    },
+    { {162, 190, 211, 245, 12},
+      {121, 192, 251, 63, 10},
+      {58, 252, 183, 212, 5},
+      {95, 205, 240, 57, 14}
+    },
+    { {179, 172, 4, 251, 2},
+      {1, 57, 178, 111, 11},
+      {77, 242, 3, 92, 13},
+      {223, 100, 217, 200, 0}
+    },
+    { {132, 89, 129, 25, 2},
+      {208, 182, 128, 6, 8},
+      {73, 136, 25, 162, 1},
+      {22, 0, 22, 208, 11}
+    },
+    { {96, 167, 159, 201, 4},
+      {17, 227, 124, 188, 2},
+      {41, 63, 158, 80, 6},
+      {67, 211, 236, 120, 8}
+    },
+    { {19, 143, 250, 197, 9},
+      {44, 202, 29, 125, 14},
+      {154, 53, 255, 28, 8},
+      {123, 235, 133, 51, 4}
+    },
+    { {214, 125, 112, 144, 3},
+      {229, 30, 128, 179, 14},
+      {192, 144, 235, 230, 11},
+      {124, 208, 23, 138, 7}
+    },
+    { {43, 138, 160, 242, 5},
+      {6, 128, 250, 73, 15},
+      {164, 240, 85, 29, 4},
+      {249, 37, 240, 22, 0}
+    },
+    { {41, 131, 176, 59, 10},
+      {2, 178, 187, 84, 5},
+      {93, 192, 220, 25, 4},
+      {162, 173, 212, 212, 0}
+    },
+    { {140, 215, 81, 28, 8},
+      {250, 38, 153, 50, 0},
+      {19, 136, 174, 179, 1},
+      {4, 201, 150, 69, 15}
+    },
+    { {47, 222, 77, 2, 12},
+      {242, 5, 125, 97, 9},
+      {52, 11, 39, 191, 4},
+      {152, 107, 234, 4, 15}
+    },
+    { {213, 4, 207, 5, 12},
+      {184, 201, 69, 230, 0},
+      {58, 15, 50, 10, 11},
+      {6, 122, 41, 49, 13}
+    },
+    { {186, 231, 214, 153, 0},
+      {35, 239, 184, 55, 2},
+      {9, 150, 190, 117, 13},
+      {78, 193, 223, 124, 4}
+    },
+    { {156, 243, 126, 164, 13},
+      {239, 79, 95, 18, 6},
+      {178, 87, 236, 243, 9},
+      {100, 143, 175, 47, 7}
+    },
+    { {143, 79, 97, 177, 14},
+      {178, 22, 203, 103, 14},
+      {120, 216, 111, 47, 1},
+      {126, 109, 54, 132, 13}
+    },
+    { {137, 255, 175, 206, 6},
+      {91, 247, 92, 106, 15},
+      {103, 63, 95, 249, 1},
+      {245, 99, 174, 253, 10}
+    },
+    { {124, 126, 177, 202, 2},
+      {211, 188, 40, 184, 15},
+      {69, 56, 215, 227, 14},
+      {241, 209, 67, 220, 11}
+    },
+    { {150, 194, 61, 167, 11},
+      {156, 29, 31, 23, 7},
+      {222, 91, 196, 54, 9},
+      {238, 143, 139, 131, 9}
+    }
+};
+
+
+
+static unsigned char DICT_APRILTAG_36h11_BYTES[][4][5] =
+{
+    { {33, 161, 70, 186, 11},
+      {37, 115, 179, 64, 3},
+      {213, 214, 40, 88, 4},
+      {192, 44, 220, 234, 4}
+    },
+    { {146, 209, 143, 233, 11},
+      {84, 255, 23, 15, 2},
+      {217, 127, 24, 180, 9},
+      {79, 14, 143, 242, 10}
+    },
+    { {112, 137, 1, 75, 11},
+      {20, 58, 49, 140, 9},
+      {221, 40, 9, 16, 14},
+      {147, 24, 197, 194, 8}
+    },
+    { {25, 57, 121, 226, 7},
+      {119, 26, 70, 88, 15},
+      {228, 121, 233, 201, 8},
+      {241, 166, 37, 142, 14}
+    },
+    { {68, 21, 61, 61, 7},
+      {220, 51, 198, 180, 4},
+      {235, 203, 202, 130, 2},
+      {34, 214, 60, 195, 11}
+    },
+    { {53, 205, 91, 140, 15},
+      {188, 126, 117, 112, 10},
+      {243, 29, 171, 58, 12},
+      {80, 234, 231, 227, 13}
+    },
+    { {161, 11, 165, 106, 0},
+      {16, 163, 42, 74, 13},
+      {5, 106, 93, 8, 5},
+      {181, 37, 76, 80, 8}
+    },
+    { {43, 135, 74, 96, 8},
+      {34, 66, 63, 105, 0},
+      {16, 101, 46, 29, 4},
+      {9, 111, 196, 36, 4}
+    },
+    { {181, 127, 184, 212, 4},
+      {201, 142, 236, 122, 14},
+      {34, 177, 223, 234, 13},
+      {117, 227, 119, 25, 3}
+    },
+    { {78, 32, 181, 166, 4},
+      {155, 129, 66, 145, 7},
+      {38, 90, 208, 71, 2},
+      {232, 148, 40, 29, 9}
+    },
+    { {97, 216, 151, 242, 12},
+      {80, 197, 243, 216, 11},
+      {52, 254, 145, 184, 6},
+      {209, 188, 250, 48, 10}
+    },
+    { {171, 52, 105, 255, 12},
+      {123, 32, 231, 111, 7},
+      {63, 249, 98, 205, 5},
+      {239, 110, 112, 77, 14}
+    },
+    { {89, 76, 164, 92, 2},
+      {10, 189, 128, 232, 12},
+      {67, 162, 83, 41, 10},
+      {49, 112, 27, 213, 0}
+    },
+    { {250, 28, 45, 46, 2},
+      {90, 57, 38, 163, 13},
+      {71, 75, 67, 133, 15},
+      {188, 86, 73, 197, 10}
+    },
+    { {151, 194, 75, 151, 2},
+      {184, 92, 156, 71, 3},
+      {78, 157, 36, 62, 9},
+      {206, 35, 147, 161, 13}
+    },
+    { {117, 146, 134, 36, 10},
+      {200, 217, 59, 192, 0},
+      {82, 70, 20, 154, 14},
+      {0, 61, 201, 177, 3}
+    },
+    { {28, 170, 254, 153, 10},
+      {163, 249, 157, 20, 14},
+      {89, 151, 245, 83, 8},
+      {114, 139, 153, 252, 5}
+    },
+    { {50, 54, 221, 193, 6},
+      {113, 153, 108, 61, 2},
+      {104, 59, 182, 196, 12},
+      {75, 195, 105, 152, 14}
+    },
+    { {136, 78, 82, 125, 6},
+      {42, 116, 202, 62, 8},
+      {107, 228, 167, 33, 1},
+      {23, 197, 50, 229, 4}
+    },
+    { {87, 113, 168, 199, 14},
+      {201, 158, 69, 205, 7},
+      {126, 49, 88, 238, 10},
+      {235, 58, 39, 153, 3}
+    },
+    { {245, 41, 37, 184, 1},
+      {149, 43, 162, 194, 14},
+      {129, 218, 73, 74, 15},
+      {116, 52, 93, 74, 9}
+    },
+    { {46, 89, 204, 26, 1},
+      {230, 167, 164, 1, 9},
+      {133, 131, 57, 167, 4},
+      {152, 2, 94, 86, 7}
+    },
+    { {127, 165, 138, 179, 1},
+      {135, 202, 182, 229, 3},
+      {140, 213, 26, 95, 14},
+      {202, 118, 213, 62, 1}
+    },
+    { {235, 67, 56, 79, 9},
+      {14, 38, 45, 223, 5},
+      {159, 33, 204, 45, 7},
+      {175, 187, 70, 71, 0}
+    },
+    { {57, 19, 213, 52, 5},
+      {126, 139, 234, 80, 0},
+      {162, 202, 188, 137, 12},
+      {0, 165, 125, 23, 14}
+    },
+    { {215, 155, 26, 59, 5},
+      {196, 106, 222, 215, 9},
+      {173, 197, 141, 158, 11},
+      {158, 183, 181, 98, 3}
+    },
+    { {13, 251, 231, 104, 13},
+      {247, 231, 91, 72, 12},
+      {177, 110, 125, 251, 0},
+      {49, 45, 174, 126, 15}
+    },
+    { {92, 215, 160, 49, 13},
+      {198, 142, 219, 164, 4},
+      {184, 192, 94, 179, 10},
+      {34, 93, 183, 22, 3}
+    },
+    { {185, 200, 247, 164, 11},
+      {62, 221, 51, 82, 14},
+      {210, 94, 241, 57, 13},
+      {116, 172, 203, 183, 12}
+    },
+    { {70, 152, 126, 6, 11},
+      {236, 81, 21, 145, 13},
+      {214, 7, 225, 150, 2},
+      {184, 154, 136, 163, 7}
+    },
+    { {110, 12, 93, 82, 7},
+      {182, 17, 228, 185, 9},
+      {228, 171, 163, 7, 6},
+      {153, 210, 120, 134, 13}
+    },
+    { {91, 197, 103, 187, 4},
+      {50, 111, 210, 229, 7},
+      {45, 222, 106, 61, 10},
+      {234, 116, 191, 100, 12}
+    },
+    { {30, 99, 2, 188, 2},
+      {139, 126, 138, 1, 2},
+      {67, 212, 12, 103, 8},
+      {72, 5, 23, 237, 1}
+    },
+    { {138, 199, 208, 70, 10},
+      {42, 150, 25, 59, 1},
+      {86, 32, 190, 53, 1},
+      {141, 201, 134, 149, 4}
+    },
+    { {166, 95, 226, 50, 6},
+      {224, 214, 234, 35, 13},
+      {100, 196, 127, 166, 5},
+      {188, 69, 118, 176, 7}
+    },
+    { {84, 0, 235, 97, 6},
+      {176, 216, 70, 140, 4},
+      {104, 109, 112, 2, 10},
+      {35, 22, 33, 176, 13}
+    },
+    { {247, 160, 102, 131, 6},
+      {161, 89, 112, 199, 7},
+      {108, 22, 96, 94, 15},
+      {238, 48, 233, 168, 5}
+    },
+    { {45, 208, 175, 223, 6},
+      {218, 245, 244, 76, 7},
+      {111, 191, 80, 187, 4},
+      {227, 34, 250, 245, 11}
+    },
+    { {59, 156, 182, 11, 1},
+      {70, 233, 48, 117, 13},
+      {141, 6, 211, 157, 12},
+      {186, 224, 201, 118, 2}
+    },
+    { {173, 106, 28, 175, 9},
+      {143, 37, 47, 86, 11},
+      {159, 83, 133, 107, 5},
+      {214, 175, 74, 79, 1}
+    },
+    { {147, 182, 46, 251, 5},
+      {69, 105, 222, 111, 7},
+      {173, 247, 70, 220, 9},
+      {239, 103, 185, 106, 2}
+    },
+    { {187, 33, 13, 147, 13},
+      {23, 11, 229, 71, 3},
+      {188, 155, 8, 77, 13},
+      {206, 42, 125, 14, 8}
+    },
+    { {222, 229, 80, 148, 11},
+      {175, 30, 145, 179, 2},
+      {210, 144, 170, 119, 11},
+      {76, 216, 151, 143, 5}
+    },
+    { {160, 205, 20, 121, 11},
+      {4, 55, 179, 62, 8},
+      {217, 226, 139, 48, 5},
+      {23, 204, 222, 194, 0}
+    },
+    { {42, 35, 171, 178, 7},
+      {23, 210, 238, 1, 7},
+      {228, 221, 92, 69, 4},
+      {232, 7, 116, 190, 8}
+    },
+    { {79, 103, 244, 181, 15},
+      {175, 151, 203, 245, 6},
+      {250, 210, 254, 111, 2},
+      {106, 253, 62, 159, 5}
+    },
+    { {88, 168, 21, 129, 8},
+      {19, 9, 17, 148, 10},
+      {24, 26, 129, 81, 10},
+      {82, 152, 137, 12, 8}
+    },
+    { {116, 52, 39, 214, 4},
+      {217, 73, 224, 168, 7},
+      {38, 190, 66, 194, 14},
+      {225, 80, 121, 41, 11}
+    },
+    { {29, 236, 64, 135, 4},
+      {171, 12, 80, 100, 11},
+      {46, 16, 35, 123, 8},
+      {210, 96, 163, 13, 5}
+    },
+    { {137, 42, 179, 160, 2},
+      {19, 208, 10, 82, 14},
+      {64, 92, 213, 73, 1},
+      {116, 165, 0, 188, 8}
+    },
+    { {56, 213, 116, 46, 14},
+      {106, 63, 115, 48, 5},
+      {119, 66, 234, 177, 12},
+      {160, 204, 239, 197, 6}
+    },
+    { {12, 67, 86, 122, 1},
+      {166, 103, 138, 24, 1},
+      {133, 230, 172, 35, 0},
+      {129, 133, 30, 102, 5}
+    },
+    { {93, 179, 17, 203, 1},
+      {215, 42, 24, 220, 3},
+      {141, 56, 140, 219, 10},
+      {195, 177, 133, 78, 11}
+    },
+    { {201, 87, 202, 31, 9},
+      {110, 230, 141, 230, 1},
+      {159, 133, 62, 169, 3},
+      {134, 123, 22, 119, 6}
+    },
+    { {162, 36, 87, 130, 3},
+      {53, 81, 32, 51, 3},
+      {196, 30, 162, 68, 5},
+      {204, 192, 72, 170, 12}
+    },
+    { {41, 172, 233, 143, 3},
+      {63, 176, 52, 100, 15},
+      {207, 25, 115, 89, 4},
+      {242, 98, 192, 223, 12}
+    },
+    { {204, 197, 44, 82, 8},
+      {130, 7, 149, 170, 5},
+      {20, 163, 74, 51, 3},
+      {165, 90, 158, 4, 1}
+    },
+    { {218, 139, 53, 120, 12},
+      {18, 43, 219, 155, 12},
+      {49, 234, 205, 21, 11},
+      {61, 157, 189, 68, 8}
+    },
+    { {213, 180, 185, 227, 6},
+      {209, 152, 86, 254, 7},
+      {108, 121, 210, 218, 11},
+      {231, 246, 161, 152, 11}
+    },
+    { {172, 156, 221, 60, 14},
+      {250, 177, 247, 50, 8},
+      {115, 203, 179, 147, 5},
+      {20, 206, 248, 213, 15}
+    },
+    { {203, 218, 168, 57, 1},
+      {70, 164, 158, 199, 12},
+      {137, 193, 85, 189, 3},
+      {62, 55, 146, 86, 2}
+    },
+    { {25, 134, 37, 107, 1},
+      {22, 41, 26, 108, 5},
+      {141, 106, 70, 25, 8},
+      {163, 101, 137, 70, 8}
+    },
+    { {186, 230, 204, 136, 9},
+      {39, 173, 61, 35, 2},
+      {145, 19, 54, 117, 13},
+      {76, 75, 203, 94, 4}
+    },
+    { {223, 145, 177, 14, 5},
+      {222, 170, 80, 211, 5},
+      {167, 8, 216, 159, 11},
+      {172, 176, 165, 87, 11}
+    },
+    { {161, 169, 213, 167, 5},
+      {61, 131, 114, 86, 11},
+      {174, 90, 185, 88, 5},
+      {214, 164, 236, 27, 12}
+    },
+    { {43, 101, 26, 169, 13},
+      {7, 102, 103, 117, 2},
+      {185, 85, 138, 109, 4},
+      {74, 238, 102, 110, 0}
+    },
+    { {77, 92, 46, 25, 13},
+      {198, 101, 197, 228, 12},
+      {185, 135, 67, 171, 2},
+      {50, 122, 58, 102, 3}
+    },
+    { {91, 22, 55, 54, 11},
+      {94, 89, 139, 241, 5},
+      {214, 206, 198, 141, 10},
+      {168, 253, 25, 167, 10}
+    },
+    { {247, 83, 214, 10, 8},
+      {224, 239, 41, 211, 1},
+      {21, 6, 188, 174, 15},
+      {140, 185, 79, 112, 7}
+    },
+    { {94, 132, 179, 125, 2},
+      {154, 248, 146, 189, 4},
+      {75, 236, 210, 23, 10},
+      {43, 212, 145, 245, 9}
+    },
+    { {252, 228, 58, 159, 2},
+      {139, 124, 180, 182, 7},
+      {79, 149, 194, 115, 15},
+      {230, 210, 211, 237, 1}
+    },
+    { {187, 146, 109, 26, 6},
+      {114, 57, 252, 67, 5},
+      {101, 139, 100, 157, 13},
+      {172, 35, 249, 196, 14}
+    },
+    { {237, 141, 35, 110, 5},
+      {158, 98, 114, 234, 13},
+      {167, 108, 75, 27, 7},
+      {181, 116, 228, 103, 9}
+    },
+    { {106, 248, 70, 243, 7},
+      {103, 85, 242, 141, 11},
+      {236, 246, 33, 245, 6},
+      {219, 20, 250, 174, 6}
+    },
+    { {234, 86, 165, 19, 8},
+      {82, 133, 169, 167, 5},
+      {28, 138, 86, 165, 7},
+      {174, 89, 90, 20, 10}
+    },
+    { {93, 73, 113, 70, 12},
+      {186, 14, 65, 216, 13},
+      {54, 40, 233, 43, 10},
+      {177, 184, 39, 5, 13}
+    },
+    { {71, 3, 96, 236, 10},
+      {168, 50, 11, 201, 6},
+      {83, 112, 108, 14, 2},
+      {105, 61, 4, 193, 5}
+    },
+    { {140, 75, 205, 103, 10},
+      {186, 151, 15, 14, 9},
+      {94, 107, 61, 35, 1},
+      {151, 15, 14, 149, 13}
+    },
+    { {41, 95, 57, 1, 14},
+      {82, 22, 109, 116, 12},
+      {120, 9, 207, 169, 4},
+      {50, 235, 102, 132, 10}
+    },
+    { {246, 181, 119, 233, 7},
+      {245, 123, 114, 191, 6},
+      {233, 126, 234, 214, 15},
+      {111, 212, 237, 234, 15}
+    },
+    { {82, 6, 2, 245, 10},
+      {8, 88, 139, 173, 2},
+      {90, 244, 6, 4, 10},
+      {75, 93, 17, 161, 0}
+    },
+    { {181, 17, 148, 146, 14},
+      {192, 155, 225, 82, 3},
+      {116, 146, 152, 138, 13},
+      {196, 168, 125, 144, 3}
+    },
+    { {72, 226, 153, 171, 7},
+      {23, 180, 94, 148, 3},
+      {237, 89, 148, 113, 2},
+      {194, 151, 162, 222, 8}
+    },
+    { {183, 159, 87, 55, 10},
+      {248, 91, 187, 119, 9},
+      {94, 206, 175, 158, 13},
+      {158, 237, 221, 161, 15}
+    },
+    { {168, 20, 198, 131, 14},
+      {98, 209, 97, 38, 3},
+      {124, 22, 50, 129, 5},
+      {198, 72, 104, 180, 6}
+    },
+    { {45, 169, 0, 88, 3},
+      {135, 50, 176, 72, 8},
+      {193, 160, 9, 91, 4},
+      {17, 32, 212, 206, 1}
+    },
+    { {212, 171, 164, 121, 7},
+      {133, 187, 218, 142, 12},
+      {233, 226, 93, 82, 11},
+      {55, 21, 189, 218, 1}
+    },
+    { {152, 42, 14, 101, 12},
+      {11, 73, 79, 14, 8},
+      {58, 103, 5, 65, 9},
+      {23, 15, 41, 45, 0}
+    },
+    { {244, 128, 204, 193, 5},
+      {164, 137, 116, 142, 2},
+      {168, 51, 48, 18, 15},
+      {71, 18, 233, 18, 5}
+    },
+    { {11, 32, 234, 115, 2},
+      {35, 208, 134, 77, 5},
+      {76, 229, 112, 77, 0},
+      {171, 38, 16, 188, 4}
+    },
+    { {169, 80, 103, 16, 10},
+      {114, 85, 161, 66, 4},
+      {80, 142, 96, 169, 5},
+      {36, 40, 90, 164, 14}
+    },
+    { {4, 134, 226, 238, 1},
+      {172, 224, 26, 40, 7},
+      {135, 116, 118, 18, 0},
+      {225, 69, 128, 115, 5}
+    },
+    { {176, 169, 114, 97, 5},
+      {37, 74, 114, 30, 12},
+      {168, 100, 233, 80, 13},
+      {55, 132, 229, 42, 4}
+    },
+    { {231, 63, 58, 37, 7},
+      {205, 82, 110, 247, 12},
+      {234, 69, 207, 206, 7},
+      {62, 247, 100, 171, 3}
+    },
+    { {23, 226, 5, 185, 8},
+      {145, 45, 155, 69, 2},
+      {25, 218, 4, 126, 8},
+      {74, 45, 155, 72, 9}
+    },
+    { {236, 154, 178, 178, 4},
+      {194, 192, 250, 146, 15},
+      {36, 212, 213, 147, 7},
+      {244, 149, 240, 52, 3}
+    },
+    { {217, 51, 158, 7, 6},
+      {75, 219, 76, 214, 1},
+      {110, 7, 156, 201, 11},
+      {134, 179, 45, 189, 2}
+    },
+    { {235, 136, 116, 249, 9},
+      {38, 33, 179, 223, 14},
+      {153, 242, 225, 29, 7},
+      {127, 188, 216, 70, 4}
+    },
+    { {148, 32, 165, 92, 12},
+      {153, 169, 193, 10, 4},
+      {51, 170, 80, 66, 9},
+      {37, 8, 57, 89, 9}
+    },
+    { {227, 100, 255, 153, 2},
+      {49, 245, 164, 247, 6},
+      {73, 159, 242, 108, 7},
+      {110, 242, 90, 248, 12}
+    },
+    { {138, 76, 184, 240, 10},
+      {2, 148, 135, 59, 14},
+      {80, 241, 211, 37, 1},
+      {125, 206, 18, 148, 0}
+    },
+    { {247, 42, 238, 118, 6},
+      {169, 217, 238, 203, 13},
+      {102, 231, 117, 78, 15},
+      {189, 55, 121, 185, 5}
+    },
+    { {115, 204, 107, 86, 9},
+      {60, 76, 181, 233, 13},
+      {150, 173, 99, 60, 14},
+      {185, 122, 211, 35, 12}
+    },
+    { {201, 156, 166, 165, 9},
+      {78, 193, 19, 230, 14},
+      {154, 86, 83, 153, 3},
+      {118, 124, 136, 55, 2}
+    },
+    { {54, 106, 12, 83, 5},
+      {133, 13, 236, 13, 9},
+      {172, 163, 5, 102, 12},
+      {155, 3, 123, 10, 1}
+    },
+    { {80, 158, 81, 148, 3},
+      {124, 24, 152, 176, 10},
+      {194, 152, 167, 144, 10},
+      {80, 209, 145, 131, 14}
+    },
+    { {186, 109, 34, 125, 1},
+      {15, 110, 162, 47, 12},
+      {139, 228, 75, 101, 13},
+      {63, 68, 87, 111, 0}
+    },
+    { {210, 172, 241, 99, 11},
+      {53, 152, 19, 191, 13},
+      {220, 104, 243, 84, 11},
+      {191, 220, 129, 154, 12}
+    },
+    { {217, 137, 254, 246, 8},
+      {42, 203, 151, 218, 15},
+      {22, 247, 249, 25, 11},
+      {245, 190, 157, 53, 4}
+    },
+    { {100, 23, 7, 187, 2},
+      {208, 115, 170, 164, 3},
+      {77, 222, 14, 130, 6},
+      {194, 85, 92, 224, 11}
+    },
+    { {249, 189, 49, 42, 11},
+      {87, 58, 51, 242, 13},
+      {213, 72, 203, 217, 15},
+      {180, 252, 197, 206, 10}
+    },
+    { {119, 115, 156, 32, 7},
+      {197, 159, 110, 209, 0},
+      {224, 67, 156, 238, 14},
+      {8, 183, 111, 154, 3}
+    },
+    { {104, 191, 141, 27, 15},
+      {87, 179, 253, 164, 9},
+      {253, 139, 31, 209, 6},
+      {146, 91, 252, 222, 10}
+    },
+    { {222, 221, 132, 166, 14},
+      {202, 159, 83, 163, 11},
+      {118, 82, 27, 183, 11},
+      {220, 92, 175, 149, 3}
+    },
+    { {66, 234, 236, 73, 11},
+      {37, 181, 29, 141, 12},
+      {217, 35, 117, 116, 2},
+      {59, 27, 138, 218, 4}
+    },
+    { {48, 43, 104, 213, 3},
+      {45, 26, 172, 12, 14},
+      {202, 177, 109, 64, 12},
+      {115, 3, 85, 139, 4}
+    },
+    { {78, 187, 147, 12, 14},
+      {219, 242, 89, 145, 8},
+      {115, 12, 157, 215, 2},
+      {24, 153, 164, 253, 11}
+    },
+    { {67, 156, 93, 155, 5},
+      {116, 33, 212, 245, 11},
+      {173, 155, 163, 156, 2},
+      {218, 242, 184, 66, 14}
+    },
+    { {225, 252, 146, 40, 13},
+      {69, 228, 115, 242, 8},
+      {177, 68, 147, 248, 7},
+      {20, 252, 226, 122, 2}
+    },
+    { {248, 166, 168, 212, 10},
+      {11, 152, 189, 170, 6},
+      {82, 177, 86, 81, 15},
+      {101, 91, 209, 157, 0}
+    },
+    { {181, 57, 2, 161, 8},
+      {193, 74, 35, 70, 10},
+      {24, 84, 9, 202, 13},
+      {86, 44, 69, 40, 3}
+    },
+    { {177, 99, 71, 94, 14},
+      {57, 127, 233, 74, 1},
+      {119, 174, 44, 104, 13},
+      {133, 41, 127, 233, 12}
+    },
+    { {173, 47, 90, 242, 9},
+      {167, 66, 175, 122, 11},
+      {148, 245, 175, 75, 5},
+      {213, 239, 84, 46, 5}
+    },
+    { {170, 181, 220, 133, 0},
+      {107, 131, 52, 55, 2},
+      {10, 19, 186, 213, 5},
+      {78, 194, 204, 29, 6}
+    },
+    { {179, 236, 37, 120, 6},
+      {17, 61, 242, 107, 12},
+      {97, 234, 67, 124, 13},
+      {61, 100, 251, 200, 8}
+    },
+    { {71, 153, 196, 64, 5},
+      {228, 131, 80, 201, 8},
+      {160, 34, 57, 158, 2},
+      {25, 48, 172, 18, 7}
+    },
+    { {139, 198, 141, 192, 4},
+      {18, 133, 92, 107, 2},
+      {32, 59, 22, 61, 1},
+      {77, 99, 170, 20, 8}
+    },
+    { {112, 47, 21, 221, 14},
+      {25, 59, 233, 188, 10},
+      {123, 186, 143, 64, 14},
+      {83, 217, 125, 201, 8}
+    },
+    { {180, 34, 147, 218, 9},
+      {149, 232, 169, 26, 3},
+      {149, 188, 148, 66, 13},
+      {197, 137, 81, 122, 9}
+    },
+    { {26, 202, 208, 56, 2},
+      {34, 188, 154, 17, 8},
+      {65, 192, 181, 53, 8},
+      {24, 133, 147, 212, 4}
+    },
+    { {129, 51, 99, 151, 1},
+      {125, 66, 136, 70, 7},
+      {142, 156, 108, 200, 1},
+      {230, 33, 20, 43, 14}
+    },
+    { {14, 105, 42, 215, 0},
+      {139, 70, 132, 13, 15},
+      {14, 181, 73, 103, 0},
+      {251, 2, 22, 45, 1}
+    },
+    { {138, 208, 92, 91, 9},
+      {102, 37, 149, 31, 1},
+      {157, 163, 160, 181, 1},
+      {143, 138, 154, 70, 6}
+    },
+    { {133, 230, 84, 193, 11},
+      {165, 21, 25, 126, 2},
+      {216, 50, 166, 122, 1},
+      {71, 233, 138, 138, 5}
+    },
+    { {61, 10, 194, 179, 11},
+      {166, 216, 171, 68, 11},
+      {220, 212, 53, 11, 12},
+      {210, 45, 81, 182, 5}
+    },
+    { {75, 191, 160, 85, 2},
+      {75, 146, 152, 237, 12},
+      {74, 160, 95, 221, 2},
+      {59, 113, 148, 157, 2}
+    },
+    { {114, 45, 222, 48, 6},
+      {33, 219, 230, 177, 8},
+      {96, 199, 187, 68, 14},
+      {24, 214, 125, 184, 4}
+    },
+    { {54, 157, 26, 205, 2},
+      {200, 122, 52, 61, 10},
+      {75, 53, 139, 150, 12},
+      {91, 194, 197, 225, 3}
+    },
+    { {162, 217, 148, 230, 0},
+      {72, 135, 50, 27, 11},
+      {6, 114, 153, 180, 5},
+      {221, 132, 206, 17, 2}
+    },
+    { {95, 173, 145, 57, 13},
+      {151, 170, 211, 245, 8},
+      {185, 200, 155, 95, 10},
+      {26, 252, 181, 94, 9}
+    },
+    { {87, 83, 90, 233, 6},
+      {224, 126, 78, 221, 2},
+      {105, 117, 172, 174, 10},
+      {75, 183, 39, 224, 7}
+    },
+    { {95, 94, 241, 212, 6},
+      {250, 156, 200, 249, 14},
+      {98, 184, 247, 175, 10},
+      {121, 241, 51, 149, 15}
+    },
+    { {235, 195, 230, 172, 12},
+      {42, 231, 123, 195, 6},
+      {51, 86, 124, 61, 7},
+      {108, 61, 238, 117, 4}
+    },
+    { {10, 153, 200, 53, 13},
+      {110, 130, 215, 5, 8},
+      {186, 193, 57, 149, 0},
+      {26, 14, 180, 23, 6}
+    },
+    { {84, 99, 228, 154, 5},
+      {165, 175, 200, 128, 7},
+      {165, 146, 124, 98, 10},
+      {224, 17, 63, 90, 5}
+    },
+    { {37, 103, 104, 147, 10},
+      {161, 22, 173, 100, 7},
+      {92, 145, 110, 106, 4},
+      {226, 107, 86, 136, 5}
+    },
+    { {171, 237, 55, 6, 4},
+      {27, 71, 112, 115, 13},
+      {38, 14, 203, 125, 5},
+      {188, 224, 238, 45, 8}
+    },
+    { {89, 189, 222, 217, 4},
+      {99, 235, 212, 252, 10},
+      {41, 183, 187, 217, 10},
+      {83, 242, 189, 124, 6}
+    },
+    { {100, 250, 4, 192, 9},
+      {197, 5, 57, 136, 10},
+      {144, 50, 5, 242, 6},
+      {81, 25, 202, 10, 3}
+    },
+    { {37, 14, 68, 231, 5},
+      {172, 1, 106, 108, 11},
+      {174, 114, 39, 10, 4},
+      {211, 101, 104, 3, 5}
+    },
+    { {229, 138, 55, 75, 12},
+      {144, 97, 121, 222, 13},
+      {61, 46, 197, 26, 7},
+      {183, 185, 232, 96, 9}
+    },
+    { {36, 202, 165, 116, 1},
+      {156, 133, 186, 8, 12},
+      {130, 234, 85, 50, 4},
+      {49, 5, 218, 19, 9}
+    },
+    { {228, 44, 246, 88, 8},
+      {161, 225, 161, 186, 12},
+      {17, 166, 243, 66, 7},
+      {53, 216, 88, 120, 5}
+    },
+    { {110, 162, 56, 83, 8},
+      {131, 0, 189, 157, 5},
+      {28, 161, 196, 87, 6},
+      {171, 155, 208, 12, 1}
+    },
+    { {247, 88, 19, 2, 5},
+      {212, 76, 96, 211, 9},
+      {164, 12, 129, 174, 15},
+      {156, 176, 99, 34, 11}
+    },
+    { {12, 235, 51, 187, 13},
+      {151, 102, 219, 20, 15},
+      {189, 220, 205, 115, 0},
+      {242, 141, 182, 110, 9}
+    },
+    { {120, 106, 232, 103, 0},
+      {43, 140, 46, 140, 13},
+      {14, 97, 117, 97, 14},
+      {179, 23, 67, 29, 4}
+    },
+    { {240, 222, 140, 150, 9},
+      {76, 141, 189, 162, 11},
+      {150, 147, 23, 176, 15},
+      {212, 91, 219, 19, 2}
+    },
+    { {38, 200, 30, 254, 6},
+      {136, 117, 246, 25, 11},
+      {103, 247, 129, 54, 4},
+      {217, 134, 250, 225, 1}
+    },
+    { {105, 244, 137, 8, 6},
+      {83, 180, 116, 224, 0},
+      {97, 9, 18, 249, 6},
+      {0, 114, 226, 220, 10}
+    },
+    { {63, 191, 146, 164, 13},
+      {207, 202, 123, 113, 10},
+      {178, 84, 159, 223, 12},
+      {88, 237, 229, 63, 3}
+    },
+    { {214, 85, 90, 118, 0},
+      {232, 78, 134, 187, 1},
+      {6, 229, 170, 166, 11},
+      {141, 214, 23, 33, 7}
+    },
+    { {156, 202, 226, 54, 13},
+      {174, 204, 219, 2, 13},
+      {182, 196, 117, 51, 9},
+      {180, 13, 179, 55, 5}
+    },
+    { {178, 86, 193, 106, 3},
+      {116, 188, 42, 43, 1},
+      {197, 104, 54, 164, 13},
+      {141, 69, 67, 210, 14}
+    },
+    { {215, 138, 199, 34, 1},
+      {180, 201, 26, 195, 9},
+      {132, 78, 53, 30, 11},
+      {156, 53, 137, 50, 13}
+    },
+    { {45, 193, 254, 38, 2},
+      {170, 215, 54, 80, 5},
+      {70, 71, 248, 59, 4},
+      {160, 166, 206, 181, 5}
+    },
+    { {175, 32, 81, 9, 0},
+      {179, 32, 32, 87, 0},
+      {9, 8, 160, 79, 5},
+      {14, 160, 64, 76, 13}
+    },
+    { {147, 44, 8, 175, 14},
+      {9, 56, 71, 103, 11},
+      {127, 81, 3, 76, 9},
+      {222, 110, 33, 201, 0}
+    },
+    { {83, 254, 202, 119, 5},
+      {109, 204, 222, 237, 9},
+      {174, 229, 55, 252, 10},
+      {155, 119, 179, 59, 6}
+    },
+    { {93, 41, 36, 151, 10},
+      {139, 27, 129, 196, 15},
+      {94, 146, 73, 75, 10},
+      {242, 56, 29, 141, 1}
+    },
+    { {47, 16, 26, 34, 11},
+      {198, 80, 39, 81, 1},
+      {212, 69, 128, 143, 4},
+      {136, 174, 64, 166, 3}
+    },
+    { {198, 173, 22, 177, 4},
+      {129, 67, 210, 183, 10},
+      {40, 214, 139, 86, 3},
+      {94, 212, 188, 40, 1}
+    },
+    { {210, 236, 164, 178, 0},
+      {1, 141, 146, 163, 15},
+      {4, 210, 83, 116, 11},
+      {252, 84, 155, 24, 0}
+    },
+    { {166, 250, 96, 61, 4},
+      {233, 36, 250, 7, 12},
+      {43, 192, 101, 246, 5},
+      {62, 5, 242, 73, 7}
+    },
+    { {48, 87, 195, 182, 9},
+      {124, 206, 171, 32, 3},
+      {150, 220, 62, 160, 12},
+      {192, 77, 87, 51, 14}
+    },
+    { {232, 23, 181, 77, 2},
+      {90, 179, 40, 190, 4},
+      {75, 42, 222, 129, 7},
+      {39, 209, 76, 213, 10}
+    },
+    { {64, 171, 252, 62, 0},
+      {41, 163, 158, 144, 13},
+      {7, 195, 253, 80, 2},
+      {176, 151, 156, 89, 4}
+    },
+    { {245, 58, 209, 110, 7},
+      {253, 184, 106, 218, 9},
+      {231, 104, 181, 202, 15},
+      {149, 181, 97, 219, 15}
+    },
+    { {54, 243, 160, 110, 8},
+      {201, 174, 59, 9, 5},
+      {23, 96, 92, 246, 12},
+      {169, 13, 199, 89, 3}
+    },
+    { {39, 120, 46, 65, 8},
+      {193, 69, 37, 77, 12},
+      {24, 39, 65, 238, 4},
+      {59, 42, 74, 40, 3}
+    },
+    { {62, 144, 98, 20, 6},
+      {234, 88, 240, 1, 4},
+      {98, 132, 96, 151, 12},
+      {40, 0, 241, 165, 7}
+    },
+    { {1, 253, 122, 212, 14},
+      {105, 86, 213, 120, 14},
+      {114, 181, 235, 248, 0},
+      {113, 234, 182, 169, 6}
+    },
+    { {200, 118, 91, 198, 4},
+      {123, 68, 76, 186, 3},
+      {38, 61, 166, 225, 3},
+      {197, 211, 34, 45, 14}
+    },
+    { {173, 61, 130, 21, 15},
+      {207, 210, 225, 102, 8},
+      {250, 132, 27, 203, 5},
+      {22, 104, 116, 191, 3}
+    },
+    { {150, 49, 122, 39, 14},
+      {233, 90, 71, 23, 5},
+      {126, 69, 232, 198, 9},
+      {174, 142, 37, 169, 7}
+    },
+    { {5, 248, 19, 202, 6},
+      {209, 116, 80, 88, 11},
+      {101, 60, 129, 250, 0},
+      {209, 160, 162, 232, 11}
+    },
+    { {14, 122, 220, 34, 14},
+      {227, 149, 79, 17, 9},
+      {116, 67, 181, 231, 0},
+      {152, 143, 42, 156, 7}
+    },
+    { {191, 82, 196, 165, 0},
+      {234, 141, 42, 71, 2},
+      {10, 82, 52, 175, 13},
+      {78, 37, 75, 21, 7}
+    },
+    { {114, 79, 106, 226, 14},
+      {32, 94, 111, 169, 15},
+      {116, 117, 111, 36, 14},
+      {249, 95, 103, 160, 4}
+    },
+    { {84, 15, 215, 234, 8},
+      {176, 235, 11, 184, 11},
+      {21, 126, 191, 2, 10},
+      {209, 221, 13, 112, 13}
+    },
+    { {156, 150, 47, 116, 1},
+      {222, 73, 158, 42, 4},
+      {130, 239, 70, 147, 9},
+      {37, 71, 153, 39, 11}
+    },
+    { {38, 64, 66, 176, 1},
+      {164, 68, 162, 1, 2},
+      {128, 212, 32, 38, 4},
+      {72, 4, 82, 34, 5}
+    },
+    { {25, 124, 183, 117, 4},
+      {91, 205, 194, 124, 12},
+      {42, 238, 211, 233, 8},
+      {51, 228, 59, 61, 10}
+    },
+    { {31, 43, 184, 80, 13},
+      {135, 138, 205, 89, 12},
+      {176, 161, 221, 79, 8},
+      {57, 171, 53, 30, 1}
+    },
+    { {200, 125, 108, 42, 13},
+      {103, 39, 71, 162, 13},
+      {181, 67, 107, 225, 3},
+      {180, 94, 46, 78, 6}
+    },
+    { {220, 141, 45, 237, 14},
+      {154, 59, 87, 174, 14},
+      {123, 123, 75, 19, 11},
+      {119, 94, 173, 197, 9}
+    },
+    { {203, 107, 1, 115, 8},
+      {19, 6, 139, 207, 9},
+      {28, 232, 13, 109, 3},
+      {159, 61, 22, 12, 8}
+    },
+    { {190, 66, 16, 54, 8},
+      {138, 12, 171, 19, 1},
+      {22, 192, 132, 39, 13},
+      {140, 141, 83, 5, 1}
+    },
+    { {187, 70, 34, 167, 7},
+      {14, 92, 106, 103, 7},
+      {238, 84, 70, 45, 13},
+      {238, 101, 99, 167, 0}
+    },
+    { {115, 50, 38, 239, 8},
+      {73, 105, 43, 205, 7},
+      {31, 118, 68, 204, 14},
+      {235, 61, 73, 105, 2}
+    },
+    { {73, 51, 173, 227, 9},
+      {87, 131, 15, 204, 7},
+      {156, 123, 92, 201, 2},
+      {227, 63, 12, 30, 10}
+    },
+    { {31, 28, 137, 108, 7},
+      {222, 184, 70, 105, 8},
+      {227, 105, 19, 143, 8},
+      {25, 102, 33, 215, 11}
+    },
+    { {137, 118, 101, 171, 10},
+      {115, 53, 11, 102, 7},
+      {93, 90, 102, 233, 1},
+      {230, 109, 10, 204, 14}
+    },
+    { {146, 244, 107, 161, 2},
+      {113, 92, 22, 39, 6},
+      {72, 93, 98, 244, 9},
+      {110, 70, 131, 168, 14}
+    },
+    { {41, 121, 129, 118, 7},
+      {95, 150, 226, 72, 9},
+      {230, 232, 25, 233, 4},
+      {145, 36, 118, 159, 10}
+    },
+    { {173, 112, 44, 248, 13},
+      {199, 37, 231, 74, 6},
+      {177, 243, 64, 235, 5},
+      {101, 46, 122, 78, 3}
+    },
+    { {71, 49, 152, 185, 0},
+      {193, 162, 134, 213, 2},
+      {9, 209, 152, 206, 2},
+      {74, 182, 20, 88, 3}
+    },
+    { {236, 46, 142, 6, 11},
+      {143, 209, 45, 162, 9},
+      {214, 7, 23, 67, 7},
+      {148, 91, 72, 191, 1}
+    },
+    { {54, 161, 214, 152, 0},
+      {161, 235, 176, 17, 2},
+      {1, 150, 184, 86, 12},
+      {72, 128, 221, 120, 5}
+    },
+    { {165, 206, 134, 80, 15},
+      {132, 213, 249, 106, 8},
+      {240, 166, 23, 58, 5},
+      {21, 105, 250, 178, 1}
+    },
+    { {99, 120, 112, 52, 8},
+      {105, 4, 163, 209, 12},
+      {18, 192, 225, 236, 6},
+      {56, 188, 82, 9, 6}
+    },
+    { {243, 171, 65, 212, 6},
+      {57, 26, 248, 203, 10},
+      {98, 184, 45, 92, 15},
+      {93, 49, 245, 137, 12}
+    },
+    { {230, 3, 42, 139, 5},
+      {132, 98, 108, 135, 7},
+      {173, 21, 76, 6, 7},
+      {238, 19, 100, 98, 1}
+    },
+    { {76, 17, 238, 199, 3},
+      {238, 211, 4, 140, 7},
+      {206, 55, 120, 131, 2},
+      {227, 18, 12, 183, 7}
+    },
+    { {38, 29, 229, 13, 6},
+      {248, 179, 96, 37, 12},
+      {107, 10, 123, 134, 4},
+      {58, 64, 108, 209, 15}
+    },
+    { {41, 102, 22, 227, 2},
+      {3, 85, 42, 124, 3},
+      {76, 118, 134, 105, 4},
+      {195, 229, 74, 172, 0}
+    },
+    { {55, 207, 241, 160, 10},
+      {176, 158, 59, 113, 14},
+      {80, 88, 255, 62, 12},
+      {120, 237, 199, 144, 13}
+    },
+    { {196, 87, 132, 122, 11},
+      {196, 183, 139, 170, 1},
+      {213, 226, 30, 162, 3},
+      {133, 93, 30, 210, 3}
+    },
+    { {119, 110, 82, 255, 9},
+      {173, 108, 171, 253, 11},
+      {159, 244, 167, 110, 14},
+      {219, 253, 83, 107, 5}
+    },
+    { {152, 8, 25, 187, 9},
+      {22, 40, 135, 22, 11},
+      {157, 217, 129, 1, 9},
+      {214, 142, 17, 70, 8}
+    },
+    { {80, 203, 43, 93, 8},
+      {24, 110, 157, 140, 12},
+      {27, 173, 77, 48, 10},
+      {51, 27, 151, 97, 8}
+    },
+    { {139, 105, 24, 6, 3},
+      {15, 22, 4, 83, 9},
+      {198, 1, 137, 109, 1},
+      {156, 162, 6, 143, 0}
+    },
+    { {18, 217, 194, 206, 9},
+      {108, 238, 17, 9, 11},
+      {151, 52, 57, 180, 8},
+      {217, 8, 135, 115, 6}
+    },
+    { {21, 140, 46, 115, 8},
+      {128, 73, 151, 108, 13},
+      {28, 231, 67, 26, 8},
+      {179, 110, 153, 32, 1}
+    },
+    { {107, 132, 1, 94, 10},
+      {26, 48, 177, 233, 1},
+      {87, 168, 2, 29, 6},
+      {137, 120, 208, 197, 8}
+    },
+    { {103, 105, 93, 185, 15},
+      {181, 55, 231, 213, 10},
+      {249, 219, 169, 110, 6},
+      {90, 190, 126, 202, 13}
+    },
+    { {62, 114, 116, 92, 1},
+      {239, 45, 168, 25, 4},
+      {131, 162, 228, 231, 12},
+      {41, 129, 91, 79, 7}
+    },
+    { {1, 202, 26, 87, 1},
+      {12, 68, 156, 92, 9},
+      {142, 165, 133, 56, 0},
+      {147, 163, 146, 35, 0}
+    },
+    { {34, 231, 3, 111, 5},
+      {29, 102, 122, 45, 1},
+      {175, 108, 14, 116, 4},
+      {139, 69, 230, 107, 8}
+    },
+    { {213, 220, 237, 174, 1},
+      {252, 173, 22, 226, 15},
+      {135, 91, 115, 186, 11},
+      {244, 118, 139, 83, 15}
+    },
+    { {128, 149, 50, 197, 11},
+      {76, 82, 17, 62, 6},
+      {218, 52, 202, 144, 1},
+      {103, 200, 132, 163, 2}
+    },
+    { {247, 228, 233, 213, 4},
+      {185, 140, 244, 239, 6},
+      {42, 185, 114, 126, 15},
+      {111, 114, 243, 25, 13}
+    },
+    { {89, 216, 79, 156, 11},
+      {126, 125, 149, 192, 10},
+      {211, 159, 33, 185, 10},
+      {80, 58, 155, 231, 14}
+    },
+    { {244, 46, 208, 133, 1},
+      {173, 136, 40, 182, 10},
+      {138, 16, 183, 66, 15},
+      {86, 209, 65, 27, 5}
+    },
+    { {93, 180, 169, 31, 10},
+      {219, 184, 149, 228, 5},
+      {95, 137, 82, 219, 10},
+      {162, 122, 145, 221, 11}
+    },
+    { {13, 88, 229, 177, 15},
+      {246, 149, 195, 68, 14},
+      {248, 218, 113, 171, 0},
+      {114, 44, 58, 150, 15}
+    },
+    { {105, 251, 159, 164, 3},
+      {95, 215, 62, 208, 10},
+      {194, 95, 157, 249, 6},
+      {80, 183, 206, 191, 10}
+    },
+    { {41, 186, 81, 246, 0},
+      {123, 0, 186, 88, 11},
+      {6, 248, 165, 217, 4},
+      {209, 165, 208, 13, 14}
+    },
+    { {88, 124, 103, 66, 7},
+      {119, 93, 64, 168, 13},
+      {228, 46, 99, 225, 10},
+      {177, 80, 43, 174, 14}
+    },
+    { {216, 185, 2, 30, 13},
+      {79, 106, 209, 130, 9},
+      {183, 132, 9, 209, 11},
+      {148, 24, 181, 111, 2}
+    },
+    { {187, 89, 68, 73, 14},
+      {98, 63, 97, 79, 8},
+      {121, 34, 41, 173, 13},
+      {31, 40, 111, 196, 6}
+    },
+    { {170, 35, 31, 53, 10},
+      {27, 83, 175, 23, 0},
+      {90, 207, 140, 69, 5},
+      {14, 143, 92, 173, 8}
+    },
+    { {13, 149, 148, 63, 4},
+      {202, 163, 210, 116, 1},
+      {47, 194, 154, 155, 0},
+      {130, 228, 188, 85, 3}
+    },
+    { {222, 196, 97, 37, 7},
+      {190, 28, 82, 167, 4},
+      {234, 72, 98, 55, 11},
+      {46, 84, 163, 135, 13}
+    },
+    { {5, 161, 105, 48, 13},
+      {181, 2, 215, 64, 4},
+      {176, 201, 104, 90, 0},
+      {32, 46, 180, 10, 13}
+    },
+    { {226, 81, 46, 181, 8},
+      {72, 71, 167, 135, 6},
+      {26, 215, 72, 164, 7},
+      {110, 30, 94, 33, 2}
+    },
+    { {171, 72, 226, 220, 0},
+      {42, 228, 160, 75, 14},
+      {3, 180, 113, 45, 5},
+      {125, 32, 82, 117, 4}
+    },
+    { {12, 182, 132, 148, 15},
+      {207, 145, 217, 32, 2},
+      {242, 146, 22, 211, 0},
+      {64, 73, 184, 159, 3}
+    },
+    { {146, 122, 107, 91, 1},
+      {117, 108, 140, 15, 13},
+      {141, 173, 101, 228, 9},
+      {191, 3, 19, 106, 14}
+    },
+    { {187, 144, 243, 69, 0},
+      {122, 200, 48, 95, 4},
+      {10, 44, 240, 157, 13},
+      {47, 160, 193, 53, 14}
+    },
+    { {99, 46, 143, 173, 0},
+      {25, 225, 46, 229, 10},
+      {11, 95, 23, 76, 6},
+      {90, 119, 72, 121, 8}
+    },
+    { {194, 238, 175, 42, 7},
+      {21, 245, 94, 163, 13},
+      {229, 79, 87, 116, 3},
+      {188, 87, 170, 250, 8}
+    },
+    { {30, 178, 175, 57, 13},
+      {215, 233, 223, 5, 4},
+      {185, 207, 84, 215, 8},
+      {42, 15, 185, 126, 11}
+    },
+    { {81, 21, 72, 197, 2},
+      {104, 26, 4, 236, 2},
+      {74, 49, 42, 136, 10},
+      {67, 114, 5, 129, 6}
+    },
+    { {70, 147, 213, 222, 4},
+      {248, 163, 216, 153, 3},
+      {39, 186, 188, 150, 2},
+      {201, 145, 188, 81, 15}
+    },
+    { {136, 142, 145, 97, 13},
+      {22, 128, 91, 62, 8},
+      {184, 104, 151, 17, 1},
+      {23, 205, 160, 22, 8}
+    },
+    { {104, 131, 111, 244, 15},
+      {62, 83, 255, 136, 6},
+      {242, 255, 108, 17, 6},
+      {97, 31, 252, 167, 12}
+    },
+    { {81, 189, 46, 68, 1},
+      {77, 75, 20, 232, 12},
+      {130, 39, 75, 216, 10},
+      {49, 114, 141, 43, 2}
+    },
+    { {122, 10, 196, 14, 9},
+      {46, 169, 41, 129, 9},
+      {151, 2, 53, 5, 14},
+      {152, 25, 73, 87, 4}
+    },
+    { {139, 183, 98, 180, 10},
+      {107, 82, 155, 99, 6},
+      {82, 212, 110, 221, 1},
+      {108, 109, 148, 173, 6}
+    },
+    { {28, 175, 131, 161, 10},
+      {147, 218, 27, 36, 10},
+      {88, 92, 31, 83, 8},
+      {82, 77, 133, 188, 9}
+    },
+    { {194, 112, 11, 187, 13},
+      {85, 100, 199, 135, 3},
+      {189, 221, 0, 228, 3},
+      {206, 30, 50, 106, 10}
+    },
+    { {251, 46, 208, 154, 10},
+      {35, 184, 169, 243, 11},
+      {85, 144, 183, 77, 15},
+      {220, 249, 81, 220, 4}
+    },
+    { {248, 82, 2, 148, 14},
+      {74, 92, 233, 130, 2},
+      {114, 148, 4, 161, 15},
+      {68, 25, 115, 165, 2}
+    },
+    { {122, 161, 4, 202, 6},
+      {3, 59, 112, 137, 3},
+      {101, 50, 8, 85, 14},
+      {201, 16, 237, 204, 0}
+    },
+    { {106, 150, 210, 188, 11},
+      {110, 240, 187, 177, 2},
+      {211, 212, 182, 149, 6},
+      {72, 221, 208, 247, 6}
+    },
+    { {40, 242, 236, 117, 14},
+      {107, 149, 255, 12, 4},
+      {122, 227, 116, 241, 4},
+      {35, 15, 250, 157, 6}
+    },
+    { {96, 112, 101, 235, 4},
+      {113, 37, 98, 140, 7},
+      {45, 122, 96, 224, 6},
+      {227, 20, 106, 72, 14}
+    },
+    { {122, 217, 179, 168, 12},
+      {82, 238, 115, 145, 14},
+      {49, 92, 217, 181, 14},
+      {120, 156, 231, 116, 10}
+    },
+    { {53, 114, 214, 203, 15},
+      {229, 253, 105, 92, 3},
+      {253, 54, 180, 234, 12},
+      {195, 169, 107, 250, 7}
+    },
+    { {212, 38, 239, 184, 15},
+      {181, 249, 207, 162, 6},
+      {241, 223, 118, 66, 11},
+      {100, 95, 57, 250, 13}
+    },
+    { {100, 238, 77, 186, 10},
+      {177, 53, 191, 160, 11},
+      {85, 219, 39, 114, 6},
+      {208, 95, 218, 200, 13}
+    },
+    { {152, 61, 122, 143, 1},
+      {111, 106, 4, 54, 15},
+      {143, 21, 235, 193, 9},
+      {246, 194, 5, 111, 6}
+    },
+    { {140, 163, 31, 73, 9},
+      {151, 99, 29, 30, 0},
+      {153, 47, 140, 83, 1},
+      {7, 139, 140, 110, 9}
+    },
+    { {2, 84, 87, 180, 6},
+      {120, 85, 194, 49, 2},
+      {98, 222, 162, 164, 0},
+      {72, 196, 58, 161, 14}
+    },
+    { {213, 58, 228, 20, 9},
+      {237, 137, 137, 194, 12},
+      {146, 130, 117, 202, 11},
+      {52, 57, 25, 27, 7}
+    },
+    { {157, 60, 100, 57, 6},
+      {227, 57, 194, 102, 12},
+      {105, 194, 99, 203, 9},
+      {54, 100, 57, 204, 7}
+    },
+    { {121, 83, 50, 238, 5},
+      {78, 110, 106, 216, 7},
+      {167, 116, 204, 169, 14},
+      {225, 181, 103, 103, 2}
+    },
+    { {112, 136, 77, 102, 4},
+      {56, 9, 118, 136, 9},
+      {38, 107, 33, 16, 14},
+      {145, 22, 233, 1, 12}
+    },
+    { {29, 211, 82, 141, 8},
+      {234, 110, 25, 84, 2},
+      {27, 20, 172, 187, 8},
+      {66, 169, 135, 101, 7}
+    },
+    { {216, 229, 29, 36, 6},
+      {27, 31, 86, 178, 0},
+      {98, 75, 138, 113, 11},
+      {4, 214, 175, 141, 8}
+    },
+    { {214, 2, 156, 163, 8},
+      {128, 137, 15, 151, 3},
+      {28, 83, 148, 6, 11},
+      {206, 159, 9, 16, 1}
+    },
+    { {217, 74, 182, 16, 12},
+      {2, 205, 201, 210, 12},
+      {48, 134, 213, 41, 11},
+      {52, 185, 59, 52, 0}
+    },
+    { {118, 107, 184, 136, 0},
+      {129, 174, 44, 145, 14},
+      {1, 17, 221, 102, 14},
+      {120, 147, 71, 88, 1}
+    },
+    { {253, 12, 107, 49, 9},
+      {182, 72, 167, 230, 12},
+      {152, 205, 99, 11, 15},
+      {54, 126, 81, 38, 13}
+    },
+    { {59, 255, 139, 157, 1},
+      {95, 238, 188, 101, 10},
+      {139, 157, 31, 253, 12},
+      {90, 99, 215, 127, 10}
+    },
+    { {231, 134, 244, 212, 14},
+      {168, 145, 249, 251, 6},
+      {114, 178, 246, 30, 7},
+      {109, 249, 248, 145, 5}
+    },
+    { {212, 230, 185, 183, 9},
+      {157, 140, 159, 182, 7},
+      {158, 217, 214, 114, 11},
+      {230, 223, 147, 27, 9}
+    },
+    { {207, 168, 187, 54, 9},
+      {159, 192, 151, 211, 13},
+      {150, 205, 209, 95, 3},
+      {188, 190, 144, 63, 9}
+    },
+    { {32, 164, 54, 108, 6},
+      {9, 113, 114, 56, 4},
+      {99, 102, 194, 80, 4},
+      {33, 196, 232, 233, 0}
+    },
+    { {92, 239, 185, 83, 6},
+      {147, 158, 220, 188, 13},
+      {108, 169, 223, 115, 10},
+      {179, 211, 183, 156, 9}
+    },
+    { {15, 6, 182, 96, 5},
+      {134, 193, 74, 121, 4},
+      {160, 102, 214, 15, 0},
+      {41, 229, 40, 54, 1}
+    },
+    { {187, 81, 210, 94, 7},
+      {110, 254, 224, 91, 1},
+      {231, 164, 184, 173, 13},
+      {141, 160, 119, 247, 6}
+    },
+    { {247, 226, 98, 100, 1},
+      {173, 76, 58, 203, 4},
+      {130, 100, 100, 126, 15},
+      {45, 53, 195, 43, 5}
+    },
+    { {129, 253, 169, 133, 5},
+      {93, 134, 84, 102, 14},
+      {170, 25, 91, 248, 1},
+      {118, 98, 166, 27, 10}
+    },
+    { {34, 65, 219, 197, 9},
+      {60, 198, 37, 29, 2},
+      {154, 61, 184, 36, 4},
+      {75, 138, 70, 51, 12}
+    },
+    { {86, 251, 75, 40, 0},
+      {241, 110, 30, 129, 8},
+      {1, 77, 45, 246, 10},
+      {24, 23, 135, 104, 15}
+    },
+    { {237, 166, 76, 109, 0},
+      {171, 33, 62, 238, 0},
+      {11, 99, 38, 91, 7},
+      {7, 119, 200, 77, 5}
+    },
+    { {206, 123, 8, 15, 4},
+      {203, 38, 76, 135, 9},
+      {47, 1, 13, 231, 3},
+      {158, 19, 38, 77, 3}
+    },
+    { {97, 146, 238, 126, 9},
+      {108, 225, 191, 200, 5},
+      {151, 231, 116, 152, 6},
+      {161, 63, 216, 115, 6}
+    },
+    { {148, 63, 245, 18, 4},
+      {241, 139, 200, 50, 13},
+      {36, 138, 255, 194, 9},
+      {180, 193, 61, 24, 15}
+    },
+    { {136, 179, 190, 173, 15},
+      {79, 243, 95, 22, 6},
+      {251, 87, 220, 209, 1},
+      {102, 143, 172, 255, 2}
+    },
+    { {155, 39, 229, 141, 0},
+      {59, 171, 8, 103, 6},
+      {11, 26, 126, 77, 9},
+      {110, 97, 13, 93, 12}
+    },
+    { {190, 11, 69, 253, 2},
+      {186, 59, 170, 15, 10},
+      {75, 250, 45, 7, 13},
+      {95, 5, 93, 197, 13}
+    },
+    { {105, 251, 58, 114, 10},
+      {67, 86, 191, 216, 13},
+      {84, 229, 205, 249, 6},
+      {177, 191, 214, 172, 2}
+    },
+    { {97, 56, 58, 131, 2},
+      {65, 80, 36, 212, 15},
+      {76, 21, 193, 200, 6},
+      {242, 178, 64, 168, 2}
+    },
+    { {102, 136, 99, 155, 3},
+      {180, 112, 176, 133, 15},
+      {205, 156, 97, 22, 6},
+      {250, 16, 208, 226, 13}
+    },
+    { {84, 208, 28, 153, 2},
+      {192, 61, 148, 148, 2},
+      {73, 147, 128, 178, 10},
+      {66, 146, 155, 192, 3}
+    },
+    { {144, 177, 12, 2, 10},
+      {65, 27, 21, 2, 1},
+      {84, 3, 8, 208, 9},
+      {132, 10, 141, 136, 2}
+    },
+    { {246, 103, 252, 109, 1},
+      {173, 175, 46, 191, 4},
+      {139, 99, 254, 102, 15},
+      {47, 215, 79, 91, 5}
+    },
+    { {122, 205, 117, 129, 3},
+      {54, 31, 48, 181, 14},
+      {200, 26, 235, 53, 14},
+      {122, 208, 207, 134, 12}
+    },
+    { {58, 189, 7, 246, 1},
+      {95, 75, 178, 41, 11},
+      {134, 254, 11, 213, 12},
+      {217, 68, 221, 47, 10}
+    },
+    { {84, 48, 18, 71, 3},
+      {205, 88, 0, 156, 1},
+      {206, 36, 128, 194, 10},
+      {131, 144, 1, 171, 3}
+    },
+    { {6, 119, 148, 213, 8},
+      {201, 135, 137, 61, 2},
+      {26, 178, 158, 230, 0},
+      {75, 201, 30, 25, 3}
+    },
+    { {168, 85, 177, 32, 1},
+      {86, 134, 34, 50, 4},
+      {128, 72, 218, 161, 5},
+      {36, 196, 70, 22, 10}
+    },
+    { {156, 180, 215, 253, 11},
+      {255, 249, 147, 62, 2},
+      {219, 254, 178, 211, 9},
+      {71, 204, 153, 255, 15}
+    },
+    { {49, 161, 147, 230, 10},
+      {25, 218, 51, 88, 3},
+      {86, 124, 152, 88, 12},
+      {193, 172, 197, 185, 8}
+    },
+    { {61, 163, 183, 109, 4},
+      {155, 235, 122, 92, 4},
+      {43, 110, 220, 91, 12},
+      {35, 165, 237, 125, 9}
+    },
+    { {65, 83, 241, 224, 4},
+      {112, 134, 74, 216, 6},
+      {32, 120, 252, 168, 2},
+      {97, 181, 38, 16, 14}
+    },
+    { {85, 68, 51, 91, 5},
+      {148, 108, 192, 252, 5},
+      {173, 172, 194, 42, 10},
+      {163, 240, 51, 98, 9}
+    },
+    { {146, 246, 18, 73, 13},
+      {69, 108, 89, 63, 0},
+      {185, 36, 134, 244, 9},
+      {15, 201, 163, 106, 2}
+    },
+    { {38, 154, 53, 248, 10},
+      {208, 49, 187, 25, 14},
+      {81, 250, 197, 150, 4},
+      {121, 141, 216, 192, 11}
+    },
+    { {4, 38, 119, 137, 6},
+      {177, 113, 72, 52, 6},
+      {105, 30, 230, 66, 0},
+      {98, 193, 40, 232, 13}
+    },
+    { {148, 135, 205, 198, 15},
+      {188, 155, 93, 42, 3},
+      {246, 59, 62, 18, 9},
+      {197, 75, 173, 147, 13}
+    },
+    { {78, 167, 231, 217, 12},
+      {179, 227, 217, 173, 6},
+      {57, 190, 126, 87, 2},
+      {107, 89, 188, 124, 13}
+    },
+    { {46, 54, 115, 69, 11},
+      {255, 80, 41, 61, 4},
+      {218, 44, 230, 199, 4},
+      {43, 201, 64, 175, 15}
+    },
+    { {58, 94, 143, 48, 4},
+      {82, 205, 238, 33, 8},
+      {32, 207, 23, 165, 12},
+      {24, 71, 123, 52, 10}
+    },
+    { {118, 217, 250, 167, 7},
+      {236, 222, 118, 149, 15},
+      {238, 85, 249, 182, 14},
+      {250, 150, 231, 179, 7}
+    },
+    { {100, 228, 234, 29, 15},
+      {173, 244, 245, 164, 4},
+      {251, 133, 114, 114, 6},
+      {34, 90, 242, 251, 5}
+    },
+    { {18, 167, 180, 52, 13},
+      {13, 139, 219, 49, 4},
+      {178, 194, 222, 84, 8},
+      {40, 205, 189, 27, 0}
+    },
+    { {73, 115, 217, 85, 3},
+      {127, 150, 140, 220, 0},
+      {202, 169, 188, 233, 2},
+      {3, 179, 22, 159, 14}
+    },
+    { {205, 180, 24, 151, 5},
+      {207, 0, 212, 246, 3},
+      {174, 145, 130, 219, 3},
+      {198, 242, 176, 15, 3}
+    },
+    { {139, 218, 118, 210, 14},
+      {98, 85, 217, 91, 15},
+      {116, 182, 229, 189, 1},
+      {253, 169, 186, 164, 6}
+    },
+    { {245, 74, 77, 236, 8},
+      {184, 45, 47, 202, 10},
+      {19, 123, 37, 42, 15},
+      {85, 63, 75, 65, 13}
+    },
+    { {129, 22, 22, 248, 10},
+      {64, 113, 139, 122, 2},
+      {81, 246, 134, 136, 1},
+      {69, 237, 24, 224, 2}
+    },
+    { {64, 54, 244, 230, 11},
+      {109, 145, 11, 184, 7},
+      {214, 114, 246, 192, 2},
+      {225, 221, 8, 155, 6}
+    },
+    { {39, 54, 40, 42, 6},
+      {193, 48, 110, 97, 5},
+      {101, 65, 70, 206, 4},
+      {168, 103, 96, 200, 3}
+    },
+    { {164, 19, 210, 41, 15},
+      {228, 242, 107, 22, 0},
+      {249, 68, 188, 130, 5},
+      {6, 141, 100, 242, 7}
+    },
+    { {144, 31, 228, 193, 7},
+      {100, 155, 72, 46, 14},
+      {232, 50, 127, 128, 9},
+      {119, 65, 45, 146, 6}
+    },
+    { {154, 191, 206, 86, 14},
+      {107, 219, 221, 43, 9},
+      {118, 167, 63, 213, 9},
+      {157, 75, 189, 189, 6}
+    },
+    { {45, 50, 91, 158, 15},
+      {255, 112, 237, 80, 3},
+      {247, 157, 164, 203, 4},
+      {192, 171, 112, 239, 15}
+    },
+    { {217, 144, 31, 106, 9},
+      {86, 105, 23, 218, 1},
+      {149, 111, 128, 153, 11},
+      {133, 190, 137, 102, 10}
+    },
+    { {58, 166, 79, 173, 14},
+      {59, 121, 127, 37, 2},
+      {123, 95, 38, 85, 12},
+      {74, 79, 233, 237, 12}
+    },
+    { {101, 40, 141, 96, 11},
+      {149, 145, 39, 200, 8},
+      {208, 107, 17, 74, 6},
+      {17, 62, 72, 154, 9}
+    },
+    { {10, 83, 233, 96, 11},
+      {118, 150, 15, 9, 4},
+      {208, 105, 124, 165, 0},
+      {41, 15, 6, 150, 14}
+    },
+    { {233, 224, 156, 62, 4},
+      {11, 165, 246, 210, 1},
+      {39, 195, 144, 121, 7},
+      {132, 182, 250, 93, 0}
+    },
+    { {77, 155, 120, 99, 13},
+      {230, 2, 95, 220, 13},
+      {188, 97, 237, 155, 2},
+      {179, 191, 164, 6, 7}
+    },
+    { {217, 139, 180, 131, 3},
+      {6, 155, 24, 214, 15},
+      {204, 18, 221, 25, 11},
+      {246, 177, 141, 150, 0}
+    },
+    { {52, 177, 129, 237, 7},
+      {221, 186, 114, 12, 2},
+      {235, 120, 24, 210, 12},
+      {67, 4, 229, 219, 11}
+    },
+    { {91, 55, 63, 73, 0},
+      {83, 107, 12, 253, 4},
+      {9, 47, 206, 205, 10},
+      {43, 243, 13, 108, 10}
+    },
+    { {133, 114, 183, 185, 1},
+      {213, 229, 138, 86, 6},
+      {137, 222, 212, 234, 1},
+      {102, 165, 26, 122, 11}
+    },
+    { {44, 93, 5, 106, 4},
+      {210, 39, 98, 40, 9},
+      {37, 106, 11, 163, 4},
+      {145, 68, 110, 68, 11}
+    },
+    { {228, 103, 18, 150, 13},
+      {141, 70, 233, 178, 3},
+      {182, 148, 142, 98, 7},
+      {196, 217, 118, 43, 1}
+    },
+    { {42, 8, 214, 247, 8},
+      {42, 193, 163, 29, 11},
+      {30, 246, 177, 5, 4},
+      {219, 140, 88, 53, 4}
+    },
+    { {69, 41, 73, 198, 1},
+      {189, 2, 4, 200, 11},
+      {134, 57, 41, 74, 2},
+      {209, 50, 4, 11, 13}
+    },
+    { {37, 1, 236, 91, 7},
+      {164, 179, 228, 76, 5},
+      {237, 163, 120, 10, 4},
+      {163, 34, 124, 210, 5}
+    },
+    { {184, 245, 71, 121, 12},
+      {115, 111, 243, 46, 0},
+      {57, 238, 42, 241, 13},
+      {7, 76, 255, 108, 14}
+    },
+    { {163, 183, 234, 75, 3},
+      {101, 242, 60, 111, 5},
+      {205, 37, 126, 220, 5},
+      {175, 99, 196, 250, 6}
+    },
+    { {68, 61, 107, 155, 4},
+      {241, 98, 196, 164, 15},
+      {45, 157, 107, 194, 2},
+      {242, 82, 52, 104, 15}
+    },
+    { {190, 45, 203, 132, 8},
+      {187, 202, 37, 35, 10},
+      {18, 29, 59, 71, 13},
+      {92, 74, 69, 61, 13}
+    },
+    { {181, 31, 196, 126, 12},
+      {232, 171, 235, 106, 9},
+      {55, 226, 63, 138, 13},
+      {149, 109, 125, 81, 7}
+    },
+    { {111, 56, 207, 152, 8},
+      {243, 225, 165, 193, 10},
+      {17, 159, 49, 207, 6},
+      {88, 58, 88, 124, 15}
+    },
+    { {144, 242, 254, 147, 4},
+      {97, 205, 220, 22, 7},
+      {44, 151, 244, 240, 9},
+      {230, 131, 187, 56, 6}
+    },
+    { {7, 253, 84, 10, 11},
+      {229, 55, 17, 113, 9},
+      {213, 2, 171, 254, 0},
+      {152, 232, 142, 202, 7}
+    },
+    { {238, 83, 195, 208, 8},
+      {242, 198, 169, 139, 2},
+      {16, 188, 60, 167, 7},
+      {77, 25, 86, 52, 15}
+    },
+    { {247, 9, 142, 188, 10},
+      {136, 251, 167, 195, 10},
+      {83, 215, 25, 14, 15},
+      {92, 62, 93, 241, 1}
+    },
+    { {101, 70, 124, 48, 9},
+      {164, 5, 175, 240, 4},
+      {144, 195, 230, 42, 6},
+      {32, 255, 90, 2, 5}
+    },
+    { {174, 111, 215, 151, 14},
+      {187, 215, 233, 55, 11},
+      {126, 158, 191, 103, 5},
+      {222, 201, 126, 189, 13}
+    },
+    { {139, 196, 115, 158, 9},
+      {62, 100, 145, 115, 7},
+      {151, 156, 226, 61, 1},
+      {236, 232, 146, 103, 12}
+    },
+    { {151, 25, 48, 254, 4},
+      {200, 42, 194, 91, 15},
+      {39, 240, 201, 142, 9},
+      {253, 164, 53, 65, 3}
+    },
+    { {154, 117, 45, 245, 7},
+      {95, 31, 198, 47, 6},
+      {234, 251, 74, 229, 9},
+      {111, 70, 63, 143, 10}
+    },
+    { {189, 71, 254, 83, 14},
+      {162, 223, 237, 126, 5},
+      {124, 167, 254, 43, 13},
+      {167, 235, 127, 180, 5}
+    },
+    { {111, 21, 48, 146, 8},
+      {194, 2, 161, 241, 7},
+      {20, 144, 202, 143, 6},
+      {232, 248, 84, 4, 3}
+    },
+    { {93, 225, 204, 72, 9},
+      {167, 175, 21, 200, 0},
+      {145, 35, 56, 123, 10},
+      {1, 58, 143, 94, 5}
+    },
+    { {17, 28, 227, 220, 13},
+      {124, 232, 193, 104, 14},
+      {179, 188, 115, 136, 8},
+      {113, 104, 49, 115, 14}
+    },
+    { {164, 199, 225, 87, 12},
+      {184, 134, 249, 46, 5},
+      {62, 168, 126, 50, 5},
+      {167, 73, 246, 17, 13}
+    },
+    { {85, 38, 145, 17, 2},
+      {145, 152, 136, 244, 0},
+      {72, 136, 150, 74, 10},
+      {2, 241, 17, 152, 9}
+    },
+    { {157, 101, 17, 128, 5},
+      {151, 14, 64, 114, 2},
+      {160, 24, 138, 107, 9},
+      {68, 224, 39, 14, 9}
+    },
+    { {102, 99, 193, 203, 3},
+      {181, 182, 40, 141, 3},
+      {205, 56, 60, 102, 6},
+      {203, 17, 70, 218, 13}
+    },
+    { {191, 197, 148, 0, 2},
+      {130, 159, 48, 115, 0},
+      {64, 2, 154, 63, 13},
+      {12, 224, 207, 148, 1}
+    },
+    { {58, 53, 0, 56, 7},
+      {71, 58, 226, 33, 0},
+      {225, 192, 10, 197, 12},
+      {8, 68, 117, 206, 2}
+    },
+    { {118, 212, 246, 121, 12},
+      {224, 237, 243, 189, 4},
+      {57, 230, 242, 182, 14},
+      {43, 220, 251, 112, 7}
+    },
+    { {68, 111, 38, 103, 11},
+      {141, 87, 11, 172, 13},
+      {222, 102, 79, 98, 2},
+      {179, 93, 14, 171, 1}
+    },
+    { {23, 174, 89, 233, 7},
+      {181, 56, 94, 125, 10},
+      {233, 121, 167, 94, 8},
+      {91, 231, 161, 202, 13}
+    },
+    { {54, 19, 45, 99, 14},
+      {208, 27, 111, 13, 5},
+      {124, 107, 76, 134, 12},
+      {171, 15, 109, 128, 11}
+    },
+    { {142, 7, 73, 43, 15},
+      {182, 50, 79, 39, 1},
+      {253, 73, 46, 7, 1},
+      {142, 79, 36, 198, 13}
+    },
+    { {24, 138, 205, 223, 1},
+      {62, 169, 156, 12, 11},
+      {143, 187, 53, 17, 8},
+      {211, 3, 153, 87, 12}
+    },
+    { {237, 144, 82, 208, 2},
+      {226, 80, 176, 218, 2},
+      {64, 180, 160, 155, 7},
+      {69, 176, 208, 164, 7}
+    },
+    { {91, 107, 208, 31, 5},
+      {47, 174, 200, 213, 9},
+      {175, 128, 189, 109, 10},
+      {154, 177, 55, 95, 4}
+    },
+    { {132, 164, 208, 112, 14},
+      {161, 144, 211, 58, 0},
+      {112, 224, 178, 82, 1},
+      {5, 204, 176, 152, 5}
+    },
+    { {201, 178, 163, 175, 4},
+      {91, 224, 90, 198, 7},
+      {47, 92, 84, 217, 3},
+      {230, 53, 160, 125, 10}
+    },
+    { {171, 24, 133, 47, 12},
+      {90, 161, 99, 71, 9},
+      {63, 74, 17, 141, 5},
+      {158, 44, 104, 85, 10}
+    },
+    { {157, 233, 24, 57, 0},
+      {131, 46, 150, 86, 8},
+      {9, 193, 137, 123, 9},
+      {22, 166, 151, 76, 1}
+    },
+    { {53, 118, 238, 158, 0},
+      {233, 237, 172, 96, 7},
+      {7, 151, 118, 234, 12},
+      {224, 99, 91, 121, 7}
+    },
+    { {232, 208, 13, 33, 0},
+      {82, 5, 54, 134, 0},
+      {8, 75, 0, 177, 7},
+      {6, 22, 202, 4, 10}
+    },
+    { {112, 155, 90, 149, 12},
+      {104, 74, 253, 148, 10},
+      {58, 149, 173, 144, 14},
+      {82, 155, 245, 33, 6}
+    },
+    { {169, 2, 42, 49, 4},
+      {2, 64, 238, 70, 4},
+      {40, 197, 68, 9, 5},
+      {38, 39, 112, 36, 0}
+    },
+    { {160, 62, 162, 185, 12},
+      {65, 224, 235, 38, 14},
+      {57, 212, 87, 192, 5},
+      {118, 77, 112, 120, 2}
+    },
+    { {30, 88, 158, 197, 14},
+      {202, 221, 69, 29, 10},
+      {122, 55, 145, 167, 8},
+      {91, 138, 43, 181, 3}
+    },
+    { {116, 71, 14, 237, 13},
+      {140, 111, 111, 172, 2},
+      {187, 119, 14, 34, 14},
+      {67, 95, 111, 99, 1}
+    },
+    { {54, 189, 68, 21, 9},
+      {237, 11, 177, 37, 8},
+      {154, 130, 43, 214, 12},
+      {26, 72, 221, 11, 7}
+    },
+    { {183, 248, 210, 81, 6},
+      {225, 220, 240, 95, 8},
+      {104, 164, 177, 254, 13},
+      {31, 160, 243, 184, 7}
+    },
+    { {220, 222, 75, 250, 5},
+      {246, 108, 222, 170, 11},
+      {165, 253, 39, 179, 11},
+      {213, 87, 179, 102, 15}
+    },
+    { {158, 218, 153, 195, 0},
+      {210, 140, 28, 31, 11},
+      {12, 57, 149, 183, 9},
+      {223, 131, 131, 20, 11}
+    },
+    { {143, 251, 152, 168, 11},
+      {199, 182, 31, 83, 10},
+      {209, 81, 157, 255, 1},
+      {92, 175, 134, 222, 3}
+    },
+    { {154, 199, 119, 231, 1},
+      {62, 79, 26, 63, 7},
+      {142, 126, 238, 53, 9},
+      {239, 197, 143, 39, 12}
+    },
+    { {141, 10, 83, 203, 3},
+      {182, 112, 8, 94, 11},
+      {205, 60, 165, 11, 1},
+      {215, 161, 0, 230, 13}
+    },
+    { {201, 237, 29, 206, 13},
+      {31, 39, 85, 250, 11},
+      {183, 59, 139, 121, 3},
+      {213, 250, 174, 79, 8}
+    },
+    { {194, 56, 83, 94, 10},
+      {121, 112, 129, 155, 9},
+      {87, 172, 161, 196, 3},
+      {157, 152, 16, 233, 14}
+    },
+    { {238, 74, 166, 67, 7},
+      {134, 213, 104, 143, 13},
+      {236, 38, 85, 39, 7},
+      {191, 17, 106, 182, 1}
+    },
+    { {205, 131, 69, 161, 14},
+      {178, 19, 91, 198, 2},
+      {120, 90, 44, 27, 3},
+      {70, 61, 172, 132, 13}
+    },
+    { {90, 25, 224, 90, 14},
+      {98, 186, 193, 137, 13},
+      {117, 160, 121, 133, 10},
+      {185, 24, 53, 212, 6}
+    },
+    { {150, 215, 128, 210, 5},
+      {196, 142, 216, 43, 3},
+      {164, 176, 30, 182, 9},
+      {205, 65, 183, 18, 3}
+    },
+    { {226, 200, 133, 24, 5},
+      {20, 165, 240, 131, 8},
+      {161, 138, 17, 52, 7},
+      {28, 16, 250, 82, 8}
+    },
+    { {197, 49, 79, 141, 11},
+      {253, 115, 5, 198, 2},
+      {219, 31, 40, 202, 3},
+      {70, 58, 12, 235, 15}
+    },
+    { {164, 124, 55, 238, 1},
+      {221, 101, 34, 58, 15},
+      {135, 126, 195, 226, 5},
+      {245, 196, 74, 107, 11}
+    },
+    { {29, 130, 198, 248, 12},
+      {162, 233, 219, 72, 2},
+      {49, 246, 52, 27, 8},
+      {65, 45, 185, 116, 5}
+    },
+    { {50, 92, 92, 108, 8},
+      {104, 45, 39, 57, 8},
+      {19, 99, 163, 164, 12},
+      {25, 206, 75, 65, 6}
+    },
+    { {93, 157, 27, 174, 0},
+      {218, 106, 22, 240, 11},
+      {7, 93, 139, 155, 10},
+      {208, 246, 133, 101, 11}
+    },
+    { {149, 73, 224, 117, 14},
+      {168, 158, 195, 78, 12},
+      {122, 224, 121, 42, 9},
+      {55, 44, 55, 145, 5}
+    },
+    { {138, 104, 69, 193, 5},
+      {55, 5, 64, 15, 10},
+      {168, 58, 33, 101, 1},
+      {95, 0, 42, 14, 12}
+    },
+    { {173, 249, 241, 15, 14},
+      {251, 182, 113, 86, 13},
+      {127, 8, 249, 251, 5},
+      {182, 168, 230, 221, 15}
+    },
+    { {149, 206, 243, 11, 0},
+      {176, 236, 24, 118, 13},
+      {13, 12, 247, 58, 9},
+      {182, 225, 131, 112, 13}
+    },
+    { {113, 147, 59, 32, 13},
+      {84, 74, 127, 208, 4},
+      {176, 77, 204, 152, 14},
+      {32, 191, 229, 34, 10}
+    },
+    { {31, 13, 227, 166, 15},
+      {190, 218, 67, 97, 15},
+      {246, 92, 123, 15, 8},
+      {248, 108, 37, 183, 13}
+    },
+    { {89, 111, 91, 186, 6},
+      {51, 126, 206, 240, 11},
+      {101, 221, 175, 105, 10},
+      {208, 247, 55, 236, 12}
+    },
+    { {205, 97, 217, 243, 4},
+      {179, 134, 198, 222, 3},
+      {44, 249, 184, 107, 3},
+      {199, 182, 54, 28, 13}
+    },
+    { {164, 120, 173, 50, 8},
+      {209, 133, 167, 2, 13},
+      {20, 203, 81, 226, 5},
+      {180, 14, 90, 24, 11}
+    },
+    { {218, 222, 64, 18, 15},
+      {102, 28, 217, 163, 9},
+      {244, 128, 39, 181, 11},
+      {156, 89, 179, 134, 6}
+    },
+    { {209, 87, 100, 55, 0},
+      {104, 15, 138, 230, 5},
+      {14, 194, 110, 168, 11},
+      {166, 117, 31, 1, 6}
+    },
+    { {58, 43, 245, 210, 2},
+      {51, 155, 168, 25, 15},
+      {68, 186, 253, 69, 12},
+      {249, 129, 93, 156, 12}
+    },
+    { {35, 3, 227, 72, 13},
+      {52, 226, 105, 73, 4},
+      {177, 44, 124, 12, 4},
+      {41, 41, 100, 114, 12}
+    },
+    { {65, 185, 191, 154, 9},
+      {85, 227, 149, 208, 15},
+      {149, 159, 217, 216, 2},
+      {240, 186, 156, 122, 10}
+    },
+    { {90, 78, 147, 238, 3},
+      {30, 252, 10, 185, 11},
+      {199, 124, 151, 37, 10},
+      {217, 213, 3, 247, 8}
+    },
+    { {70, 43, 68, 81, 2},
+      {161, 19, 136, 141, 8},
+      {72, 162, 45, 70, 2},
+      {27, 17, 28, 136, 5}
+    },
+    { {78, 1, 113, 156, 1},
+      {190, 34, 128, 145, 6},
+      {131, 152, 232, 7, 2},
+      {104, 144, 20, 71, 13}
+    },
+    { {115, 160, 217, 19, 7},
+      {53, 152, 244, 213, 1},
+      {236, 137, 176, 92, 14},
+      {138, 178, 241, 154, 12}
+    },
+    { {147, 43, 65, 109, 13},
+      {61, 42, 75, 79, 8},
+      {187, 104, 45, 76, 9},
+      {31, 45, 37, 75, 12}
+    },
+    { {255, 75, 97, 90, 7},
+      {182, 62, 232, 203, 13},
+      {229, 168, 109, 47, 15},
+      {189, 49, 119, 198, 13}
+    },
+    { {44, 136, 15, 26, 12},
+      {146, 97, 245, 0, 9},
+      {53, 143, 1, 19, 4},
+      {144, 10, 248, 100, 9}
+    },
+    { {111, 59, 182, 170, 1},
+      {199, 227, 42, 209, 15},
+      {133, 86, 221, 207, 6},
+      {248, 181, 76, 126, 3}
+    },
+    { {71, 109, 33, 174, 6},
+      {153, 54, 66, 225, 15},
+      {103, 88, 75, 110, 2},
+      {248, 116, 38, 201, 9}
+    },
+    { {249, 194, 144, 104, 8},
+      {2, 172, 59, 218, 0},
+      {17, 96, 148, 57, 15},
+      {5, 189, 195, 84, 0}
+    },
+    { {118, 129, 17, 33, 0},
+      {144, 10, 50, 149, 0},
+      {8, 72, 136, 22, 14},
+      {10, 148, 197, 0, 9}
+    },
+    { {98, 52, 88, 245, 5},
+      {109, 0, 230, 189, 2},
+      {170, 241, 162, 196, 6},
+      {75, 214, 112, 11, 6}
+    },
+    { {243, 25, 25, 225, 15},
+      {84, 26, 103, 223, 10},
+      {248, 121, 137, 140, 15},
+      {95, 190, 101, 130, 10}
+    },
+    { {239, 71, 167, 221, 1},
+      {158, 231, 168, 239, 6},
+      {139, 190, 94, 47, 7},
+      {111, 113, 94, 119, 9}
+    },
+    { {198, 199, 119, 128, 8},
+      {176, 71, 25, 179, 6},
+      {16, 30, 238, 54, 3},
+      {108, 217, 142, 32, 13}
+    },
+    { {238, 201, 111, 9, 6},
+      {178, 119, 116, 135, 12},
+      {105, 15, 105, 55, 7},
+      {62, 18, 238, 228, 13}
+    },
+    { {155, 60, 155, 218, 15},
+      {87, 248, 197, 123, 11},
+      {245, 189, 147, 205, 9},
+      {221, 234, 49, 254, 10}
+    },
+    { {111, 212, 50, 87, 3},
+      {206, 84, 176, 253, 5},
+      {206, 164, 194, 191, 6},
+      {171, 240, 210, 167, 3}
+    },
+    { {96, 231, 208, 170, 9},
+      {37, 166, 59, 176, 3},
+      {149, 80, 190, 112, 6},
+      {192, 221, 198, 90, 4}
+    },
+    { {6, 81, 205, 163, 4},
+      {240, 135, 70, 5, 3},
+      {44, 91, 56, 166, 0},
+      {202, 6, 46, 16, 15}
+    },
+    { {226, 172, 192, 78, 7},
+      {45, 176, 112, 171, 9},
+      {231, 32, 51, 84, 7},
+      {157, 80, 224, 219, 4}
+    },
+    { {148, 96, 209, 162, 2},
+      {177, 156, 2, 18, 3},
+      {68, 88, 176, 98, 9},
+      {196, 132, 3, 152, 13}
+    },
+    { {130, 183, 155, 23, 7},
+      {93, 210, 220, 55, 1},
+      {238, 141, 158, 212, 1},
+      {142, 195, 180, 187, 10}
+    },
+    { {78, 177, 137, 244, 11},
+      {223, 146, 151, 137, 2},
+      {210, 249, 24, 215, 2},
+      {73, 30, 148, 159, 11}
+    },
+    { {203, 249, 195, 177, 14},
+      {115, 214, 211, 199, 10},
+      {120, 220, 57, 253, 3},
+      {94, 60, 182, 188, 14}
+    },
+    { {111, 108, 100, 132, 1},
+      {175, 5, 32, 225, 14},
+      {130, 18, 99, 111, 6},
+      {120, 112, 74, 15, 5}
+    },
+    { {229, 78, 80, 162, 14},
+      {160, 20, 107, 242, 11},
+      {116, 80, 167, 42, 7},
+      {212, 253, 98, 128, 5}
+    },
+    { {99, 47, 48, 242, 3},
+      {5, 18, 170, 249, 15},
+      {196, 240, 207, 76, 6},
+      {249, 245, 84, 138, 0}
+    },
+    { {179, 187, 61, 230, 12},
+      {89, 11, 127, 91, 15},
+      {54, 123, 205, 220, 13},
+      {253, 175, 237, 9, 10}
+    },
+    { {99, 49, 245, 56, 3},
+      {117, 179, 162, 209, 4},
+      {193, 202, 248, 204, 6},
+      {40, 180, 92, 218, 14}
+    },
+    { {188, 161, 218, 254, 5},
+      {175, 234, 246, 26, 3},
+      {167, 245, 184, 83, 13},
+      {197, 134, 245, 127, 5}
+    },
+    { {209, 129, 108, 171, 9},
+      {36, 43, 23, 198, 7},
+      {157, 83, 104, 24, 11},
+      {230, 62, 141, 66, 4}
+    },
+    { {13, 132, 7, 172, 10},
+      {154, 113, 19, 96, 2},
+      {83, 94, 2, 27, 0},
+      {64, 108, 136, 229, 9}
+    },
+    { {121, 78, 29, 126, 5},
+      {30, 45, 238, 248, 9},
+      {167, 235, 135, 41, 14},
+      {145, 247, 123, 71, 8}
+    },
+    { {146, 222, 101, 68, 2},
+      {120, 29, 24, 43, 12},
+      {66, 42, 103, 180, 9},
+      {61, 65, 139, 129, 14}
+    },
+    { {101, 20, 151, 148, 9},
+      {220, 193, 161, 240, 2},
+      {146, 158, 146, 138, 6},
+      {64, 248, 88, 51, 11}
+    },
+    { {51, 247, 81, 113, 2},
+      {113, 30, 186, 125, 0},
+      {72, 232, 174, 252, 12},
+      {11, 229, 215, 136, 14}
+    },
+    { {60, 156, 233, 25, 5},
+      {246, 168, 244, 36, 12},
+      {169, 137, 115, 147, 12},
+      {50, 66, 241, 86, 15}
+    },
+    { {126, 203, 129, 215, 10},
+      {154, 158, 185, 141, 11},
+      {94, 184, 29, 55, 14},
+      {219, 25, 215, 149, 9}
+    },
+    { {237, 225, 64, 23, 8},
+      {171, 6, 177, 198, 1},
+      {30, 128, 40, 123, 7},
+      {134, 56, 214, 13, 5}
+    },
+    { {192, 155, 14, 226, 12},
+      {64, 67, 95, 138, 11},
+      {52, 119, 13, 144, 3},
+      {213, 31, 172, 32, 2}
+    },
+    { {20, 230, 31, 119, 4},
+      {153, 77, 222, 60, 1},
+      {46, 239, 134, 114, 8},
+      {131, 199, 187, 41, 9}
+    },
+    { {109, 51, 102, 73, 10},
+      {227, 115, 41, 204, 4},
+      {89, 38, 108, 203, 6},
+      {35, 57, 76, 236, 7}
+    },
+    { {134, 93, 208, 136, 0},
+      {224, 166, 0, 51, 10},
+      {1, 16, 187, 166, 1},
+      {92, 192, 6, 80, 7}
+    },
+    { {247, 33, 75, 251, 8},
+      {177, 106, 167, 207, 3},
+      {29, 253, 40, 78, 15},
+      {207, 62, 85, 104, 13}
+    },
+    { {216, 185, 194, 226, 2},
+      {99, 218, 18, 138, 11},
+      {68, 116, 57, 209, 11},
+      {213, 20, 133, 188, 6}
+    },
+    { {153, 167, 7, 55, 15},
+      {31, 91, 219, 102, 1},
+      {254, 206, 14, 89, 9},
+      {134, 109, 189, 175, 8}
+    },
+    { {192, 236, 249, 12, 9},
+      {61, 164, 21, 178, 12},
+      {147, 9, 243, 112, 3},
+      {52, 218, 130, 91, 12}
+    },
+    { {187, 139, 38, 224, 1},
+      {6, 75, 58, 75, 14},
+      {128, 118, 77, 29, 13},
+      {125, 37, 205, 38, 0}
+    },
+    { {5, 103, 143, 202, 12},
+      {145, 231, 77, 104, 3},
+      {53, 63, 30, 106, 0},
+      {193, 107, 46, 120, 9}
+    },
+    { {51, 180, 131, 131, 4},
+      {81, 200, 112, 101, 3},
+      {44, 28, 18, 220, 12},
+      {202, 96, 225, 56, 10}
+    },
+    { {235, 157, 132, 184, 3},
+      {70, 179, 178, 227, 10},
+      {193, 210, 27, 157, 7},
+      {92, 116, 220, 214, 2}
+    },
+    { {124, 162, 119, 234, 2},
+      {179, 121, 58, 152, 7},
+      {69, 126, 228, 83, 14},
+      {225, 149, 201, 236, 13}
+    },
+    { {2, 175, 95, 102, 11},
+      {61, 83, 31, 57, 9},
+      {214, 111, 175, 84, 0},
+      {153, 207, 140, 171, 12}
+    },
+    { {74, 103, 140, 18, 2},
+      {3, 151, 140, 161, 1},
+      {68, 131, 30, 101, 2},
+      {136, 83, 30, 156, 0}
+    },
+    { {18, 21, 146, 191, 3},
+      {76, 250, 130, 53, 3},
+      {207, 212, 154, 132, 8},
+      {202, 196, 21, 243, 2}
+    },
+    { {204, 130, 180, 140, 9},
+      {142, 161, 25, 146, 6},
+      {147, 18, 212, 19, 3},
+      {100, 153, 136, 87, 1}
+    },
+    { {119, 203, 233, 15, 12},
+      {184, 174, 125, 197, 13},
+      {63, 9, 125, 62, 14},
+      {186, 59, 231, 81, 13}
+    },
+    { {94, 247, 215, 147, 1},
+      {247, 207, 152, 181, 3},
+      {140, 158, 190, 247, 10},
+      {202, 209, 159, 62, 15}
+    },
+    { {17, 121, 71, 153, 5},
+      {117, 111, 192, 68, 10},
+      {169, 158, 41, 232, 8},
+      {82, 32, 63, 106, 14}
+    },
+    { {52, 77, 95, 151, 0},
+      {184, 79, 164, 52, 11},
+      {14, 159, 171, 34, 12},
+      {210, 194, 95, 33, 13}
+    },
+    { {223, 47, 18, 231, 2},
+      {139, 90, 10, 255, 11},
+      {78, 116, 143, 79, 11},
+      {223, 245, 5, 173, 1}
+    },
+    { {17, 66, 119, 179, 7},
+      {52, 93, 202, 84, 7},
+      {236, 222, 228, 40, 8},
+      {226, 165, 59, 162, 12}
+    },
+    { {11, 143, 167, 61, 5},
+      {30, 227, 218, 101, 12},
+      {171, 206, 95, 29, 0},
+      {58, 101, 188, 119, 8}
+    },
+    { {54, 225, 111, 66, 3},
+      {181, 95, 52, 9, 5},
+      {196, 47, 104, 118, 12},
+      {169, 2, 207, 170, 13}
+    },
+    { {5, 116, 2, 183, 14},
+      {201, 84, 195, 100, 3},
+      {126, 212, 2, 234, 0},
+      {194, 108, 50, 169, 3}
+    },
+    { {195, 66, 66, 58, 7},
+      {36, 116, 202, 195, 1},
+      {229, 196, 36, 44, 3},
+      {140, 53, 50, 226, 4}
+    },
+    { {117, 140, 52, 218, 11},
+      {132, 57, 177, 248, 15},
+      {213, 178, 195, 26, 14},
+      {241, 248, 217, 194, 1}
+    },
+    { {103, 220, 97, 97, 4},
+      {240, 4, 114, 237, 12},
+      {40, 104, 99, 190, 6},
+      {59, 116, 226, 0, 15}
+    },
+    { {41, 178, 34, 6, 8},
+      {75, 64, 57, 64, 5},
+      {22, 4, 68, 217, 4},
+      {160, 41, 192, 45, 2}
+    },
+    { {113, 1, 175, 15, 10},
+      {24, 251, 37, 196, 5},
+      {95, 15, 88, 8, 14},
+      {162, 58, 77, 241, 8}
+    },
+    { {84, 210, 43, 199, 5},
+      {220, 76, 92, 140, 7},
+      {174, 61, 68, 178, 10},
+      {227, 19, 163, 35, 11}
+    },
+    { {144, 139, 163, 175, 9},
+      {28, 234, 27, 6, 15},
+      {159, 92, 93, 16, 9},
+      {246, 13, 133, 115, 8}
+    },
+    { {235, 104, 201, 181, 1},
+      {63, 132, 166, 199, 10},
+      {138, 217, 49, 109, 7},
+      {94, 54, 82, 31, 12}
+    },
+    { {38, 5, 212, 66, 12},
+      {160, 131, 97, 57, 1},
+      {52, 34, 186, 6, 4},
+      {137, 200, 108, 16, 5}
+    },
+    { {106, 184, 139, 127, 4},
+      {91, 224, 246, 141, 9},
+      {47, 237, 17, 213, 6},
+      {155, 22, 240, 125, 10}
+    },
+    { {32, 124, 118, 87, 13},
+      {109, 69, 225, 60, 13},
+      {190, 166, 227, 224, 4},
+      {179, 200, 122, 43, 6}
+    },
+    { {55, 121, 64, 210, 0},
+      {225, 14, 160, 73, 11},
+      {4, 176, 41, 238, 12},
+      {217, 32, 87, 8, 7}
+    },
+    { {172, 46, 183, 123, 6},
+      {147, 241, 234, 62, 13},
+      {109, 238, 215, 67, 5},
+      {183, 197, 120, 252, 9}
+    },
+    { {62, 135, 49, 142, 12},
+      {154, 42, 121, 49, 7},
+      {55, 24, 206, 23, 12},
+      {232, 201, 229, 69, 9}
+    },
+    { {71, 175, 234, 26, 10},
+      {161, 242, 157, 225, 13},
+      {85, 133, 127, 94, 2},
+      {184, 123, 148, 248, 5}
+    },
+    { {70, 222, 53, 183, 4},
+      {216, 5, 218, 181, 15},
+      {46, 218, 199, 182, 2},
+      {250, 213, 186, 1, 11}
+    },
+    { {72, 163, 107, 161, 0},
+      {51, 66, 30, 132, 6},
+      {8, 93, 108, 81, 2},
+      {98, 23, 132, 44, 12}
+    },
+    { {240, 113, 21, 54, 11},
+      {93, 31, 163, 146, 1},
+      {214, 202, 136, 224, 15},
+      {132, 156, 95, 139, 10}
+    },
+    { {150, 63, 135, 237, 4},
+      {217, 235, 74, 47, 10},
+      {43, 126, 31, 198, 9},
+      {95, 69, 45, 121, 11}
+    },
+    { {216, 58, 185, 150, 5},
+      {95, 136, 204, 146, 15},
+      {166, 153, 213, 193, 11},
+      {244, 147, 49, 31, 10}
+    },
+    { {123, 46, 181, 160, 15},
+      {23, 153, 107, 241, 14},
+      {240, 90, 215, 77, 14},
+      {120, 253, 105, 158, 8}
+    },
+    { {182, 173, 250, 243, 2},
+      {161, 218, 182, 63, 15},
+      {76, 245, 251, 86, 13},
+      {255, 198, 213, 184, 5}
+    },
+    { {135, 224, 122, 78, 10},
+      {169, 116, 21, 91, 5},
+      {87, 37, 224, 126, 1},
+      {173, 170, 130, 233, 5}
+    },
+    { {123, 69, 24, 244, 14},
+      {10, 30, 231, 249, 2},
+      {114, 241, 138, 45, 14},
+      {73, 254, 119, 133, 0}
+    },
+    { {144, 100, 163, 115, 8},
+      {17, 204, 131, 46, 5},
+      {28, 236, 82, 96, 9},
+      {167, 76, 19, 56, 8}
+    },
+    { {60, 36, 44, 161, 2},
+      {131, 25, 38, 36, 6},
+      {72, 83, 66, 67, 12},
+      {98, 70, 73, 140, 1}
+    },
+    { {150, 178, 92, 74, 4},
+      {225, 41, 92, 27, 1},
+      {37, 35, 164, 214, 9},
+      {141, 131, 169, 72, 7}
+    },
+    { {139, 1, 216, 58, 12},
+      {34, 162, 199, 83, 1},
+      {53, 193, 184, 13, 1},
+      {140, 174, 52, 84, 4}
+    },
+    { {229, 28, 206, 178, 5},
+      {228, 193, 230, 226, 11},
+      {164, 215, 51, 138, 7},
+      {212, 118, 120, 50, 7}
+    },
+    { {72, 15, 88, 219, 0},
+      {34, 34, 140, 188, 11},
+      {13, 177, 175, 1, 2},
+      {211, 211, 20, 68, 4}
+    },
+    { {186, 226, 149, 134, 7},
+      {31, 157, 120, 19, 3},
+      {230, 26, 148, 117, 13},
+      {204, 129, 235, 159, 8}
+    },
+    { {137, 252, 15, 186, 0},
+      {83, 101, 150, 98, 11},
+      {5, 223, 3, 249, 1},
+      {212, 102, 154, 108, 10}
+    },
+    { {221, 6, 71, 94, 9},
+      {190, 105, 137, 234, 1},
+      {151, 174, 38, 11, 11},
+      {133, 121, 25, 103, 13}
+    },
+    { {247, 254, 70, 180, 12},
+      {233, 77, 251, 227, 10},
+      {50, 214, 39, 254, 15},
+      {92, 125, 251, 41, 7}
+    },
+    { {67, 206, 240, 38, 13},
+      {44, 132, 91, 241, 13},
+      {182, 64, 247, 60, 2},
+      {184, 253, 162, 19, 4}
+    },
+    { {99, 147, 88, 90, 2},
+      {96, 50, 188, 217, 1},
+      {69, 161, 172, 156, 6},
+      {137, 179, 212, 192, 6}
+    },
+    { {135, 180, 4, 69, 6},
+      {201, 17, 80, 111, 0},
+      {106, 34, 2, 222, 1},
+      {15, 96, 168, 137, 3}
+    },
+    { {79, 164, 124, 190, 10},
+      {171, 49, 151, 241, 7},
+      {87, 211, 226, 95, 2},
+      {232, 254, 152, 205, 5}
+    },
+    { {118, 25, 249, 85, 10},
+      {248, 154, 165, 157, 12},
+      {90, 169, 249, 134, 14},
+      {59, 154, 85, 145, 15}
+    },
+    { {81, 185, 161, 51, 0},
+      {81, 138, 146, 196, 13},
+      {12, 200, 89, 216, 10},
+      {178, 52, 149, 24, 10}
+    },
+    { {21, 51, 99, 124, 7},
+      {253, 122, 202, 72, 4},
+      {227, 236, 108, 202, 8},
+      {33, 37, 53, 235, 15}
+    },
+    { {117, 135, 169, 114, 10},
+      {144, 154, 191, 232, 5},
+      {84, 233, 94, 26, 14},
+      {161, 127, 213, 144, 9}
+    },
+    { {96, 222, 17, 98, 2},
+      {80, 20, 58, 184, 9},
+      {68, 104, 135, 176, 6},
+      {145, 213, 194, 128, 10}
+    },
+    { {125, 76, 230, 138, 14},
+      {162, 253, 97, 224, 15},
+      {117, 22, 115, 43, 14},
+      {240, 120, 107, 244, 5}
+    },
+    { {175, 19, 94, 129, 12},
+      {226, 67, 109, 87, 2},
+      {56, 23, 172, 143, 5},
+      {78, 171, 108, 36, 7}
+    },
+    { {49, 201, 182, 71, 12},
+      {8, 207, 113, 92, 13},
+      {62, 38, 217, 56, 12},
+      {179, 168, 239, 49, 0}
+    },
+    { {172, 67, 216, 21, 5},
+      {174, 134, 236, 22, 0},
+      {170, 129, 188, 35, 5},
+      {6, 131, 118, 23, 5}
+    },
+    { {216, 83, 225, 207, 11},
+      {126, 190, 9, 142, 7},
+      {223, 56, 124, 161, 11},
+      {231, 25, 7, 215, 14}
+    },
+    { {79, 205, 197, 207, 0},
+      {186, 167, 16, 237, 11},
+      {15, 58, 59, 63, 2},
+      {219, 112, 142, 85, 13}
+    },
+    { {238, 105, 111, 210, 13},
+      {183, 71, 229, 139, 15},
+      {180, 191, 105, 103, 7},
+      {253, 26, 126, 46, 13}
+    },
+    { {183, 22, 24, 71, 5},
+      {204, 8, 108, 127, 1},
+      {174, 33, 134, 142, 13},
+      {143, 227, 97, 3, 3}
+    },
+    { {185, 180, 184, 120, 1},
+      {71, 168, 182, 122, 4},
+      {129, 225, 210, 217, 13},
+      {37, 230, 209, 94, 2}
+    },
+    { {50, 133, 121, 80, 5},
+      {52, 10, 244, 57, 4},
+      {160, 169, 234, 20, 12},
+      {41, 194, 245, 2, 12}
+    },
+    { {149, 233, 71, 119, 1},
+      {189, 79, 146, 78, 9},
+      {142, 238, 41, 122, 9},
+      {151, 36, 159, 43, 13}
+    },
+    { {154, 160, 48, 46, 2},
+      {11, 56, 18, 19, 5},
+      {71, 64, 192, 85, 9},
+      {172, 132, 129, 205, 0}
+    },
+    { {236, 24, 40, 209, 7},
+      {198, 16, 228, 142, 14},
+      {232, 177, 65, 131, 7},
+      {119, 18, 112, 134, 3}
+    },
+    { {188, 80, 121, 99, 5},
+      {246, 12, 102, 30, 5},
+      {172, 105, 224, 163, 13},
+      {167, 134, 99, 6, 15}
+    },
+    { {135, 133, 193, 183, 9},
+      {188, 130, 147, 103, 3},
+      {158, 216, 58, 30, 1},
+      {206, 108, 148, 19, 13}
+    },
+    { {211, 122, 173, 183, 10},
+      {89, 157, 143, 199, 15},
+      {94, 219, 85, 236, 11},
+      {254, 63, 27, 153, 10}
+    },
+    { {129, 127, 2, 206, 0},
+      {73, 102, 8, 106, 11},
+      {7, 52, 15, 232, 1},
+      {213, 97, 6, 105, 2}
+    },
+    { {253, 99, 223, 176, 10},
+      {179, 223, 175, 210, 2},
+      {80, 223, 188, 107, 15},
+      {68, 191, 95, 188, 13}
+    },
+    { {81, 10, 193, 175, 2},
+      {56, 184, 10, 196, 11},
+      {79, 88, 53, 8, 10},
+      {210, 53, 1, 209, 12}
+    },
+    { {61, 30, 223, 141, 3},
+      {254, 249, 44, 116, 10},
+      {203, 31, 183, 139, 12},
+      {82, 227, 73, 247, 15}
+    },
+    { {244, 183, 58, 64, 2},
+      {193, 90, 60, 186, 4},
+      {64, 37, 206, 210, 15},
+      {37, 211, 197, 168, 3}
+    },
+    { {55, 215, 137, 233, 12},
+      {208, 174, 127, 109, 2},
+      {57, 121, 30, 190, 12},
+      {75, 111, 231, 80, 11}
+    },
+    { {143, 17, 199, 124, 10},
+      {250, 243, 131, 75, 0},
+      {83, 238, 56, 143, 1},
+      {13, 44, 28, 245, 15}
+    },
+    { {196, 189, 3, 107, 14},
+      {209, 114, 83, 174, 9},
+      {125, 108, 11, 210, 3},
+      {151, 92, 164, 232, 11}
+    },
+    { {125, 250, 153, 92, 9},
+      {223, 172, 189, 216, 8},
+      {147, 169, 149, 251, 14},
+      {17, 187, 211, 95, 11}
+    },
+    { {123, 20, 232, 37, 1},
+      {110, 136, 38, 229, 4},
+      {138, 65, 114, 141, 14},
+      {42, 118, 65, 23, 6}
+    },
+    { {202, 7, 14, 127, 4},
+      {10, 99, 206, 175, 1},
+      {47, 231, 14, 5, 3},
+      {143, 87, 60, 101, 0}
+    },
+    { {92, 34, 219, 205, 5},
+      {191, 232, 76, 156, 2},
+      {171, 61, 180, 67, 10},
+      {67, 147, 33, 127, 13}
+    },
+    { {160, 219, 114, 108, 8},
+      {104, 102, 59, 26, 12},
+      {19, 100, 237, 176, 5},
+      {53, 141, 198, 97, 6}
+    },
+    { {107, 119, 118, 222, 2},
+      {107, 119, 168, 249, 7},
+      {71, 182, 238, 237, 6},
+      {233, 241, 94, 237, 6}
+    },
+    { {128, 245, 142, 116, 8},
+      {73, 199, 151, 42, 0},
+      {18, 231, 26, 240, 1},
+      {5, 78, 158, 57, 2}
+    },
+    { {225, 172, 31, 244, 10},
+      {25, 81, 183, 250, 10},
+      {82, 255, 131, 88, 7},
+      {85, 254, 216, 169, 8}
+    },
+    { {27, 186, 234, 133, 12},
+      {107, 200, 93, 69, 14},
+      {58, 21, 117, 221, 8},
+      {122, 43, 161, 61, 6}
+    },
+    { {38, 172, 85, 127, 12},
+      {185, 33, 243, 61, 9},
+      {63, 234, 163, 86, 4},
+      {155, 204, 248, 73, 13}
+    },
+    { {229, 209, 239, 53, 7},
+      {252, 215, 246, 198, 4},
+      {234, 207, 120, 186, 7},
+      {38, 54, 254, 179, 15}
+    },
+    { {31, 41, 212, 225, 0},
+      {163, 139, 2, 93, 10},
+      {8, 114, 185, 79, 8},
+      {91, 164, 13, 28, 5}
+    },
+    { {69, 159, 187, 21, 11},
+      {220, 210, 157, 244, 12},
+      {218, 141, 223, 154, 2},
+      {50, 251, 148, 179, 11}
+    },
+    { {212, 176, 73, 85, 9},
+      {253, 8, 149, 142, 0},
+      {154, 169, 32, 210, 11},
+      {7, 26, 145, 11, 15}
+    },
+    { {108, 183, 10, 207, 8},
+      {203, 98, 61, 172, 3},
+      {31, 53, 14, 211, 6},
+      {195, 91, 196, 109, 3}
+    },
+    { {248, 97, 122, 81, 8},
+      {35, 78, 165, 158, 4},
+      {24, 165, 232, 97, 15},
+      {39, 154, 87, 44, 4}
+    },
+    { {195, 145, 218, 195, 4},
+      {96, 194, 84, 223, 3},
+      {44, 53, 184, 156, 3},
+      {207, 178, 164, 48, 6}
+    },
+    { {81, 35, 94, 44, 12},
+      {41, 107, 79, 208, 0},
+      {51, 71, 172, 72, 10},
+      {0, 191, 45, 105, 4}
+    },
+    { {116, 64, 124, 79, 14},
+      {168, 61, 101, 156, 5},
+      {127, 35, 224, 34, 14},
+      {163, 154, 107, 193, 5}
+    },
+    { {223, 22, 9, 162, 4},
+      {210, 8, 78, 227, 3},
+      {36, 89, 6, 143, 11},
+      {204, 119, 33, 4, 11}
+    },
+    { {206, 210, 125, 193, 7},
+      {246, 21, 92, 159, 6},
+      {232, 59, 228, 183, 3},
+      {111, 147, 170, 134, 15}
+    }
+};
+
+}//namespace
diff --git a/modules/objdetect/src/aruco/apriltag/unionfind.hpp b/modules/objdetect/src/aruco/apriltag/unionfind.hpp
new file mode 100644 (file)
index 0000000..6ecc58a
--- /dev/null
@@ -0,0 +1,131 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+//
+// Copyright (C) 2013-2016, The Regents of The University of Michigan.
+//
+// This software was developed in the APRIL Robotics Lab under the
+// direction of Edwin Olson, ebolson@umich.edu. This software may be
+// available under alternative licensing terms; contact the address above.
+//
+// The views and conclusions contained in the software and documentation are those
+// of the authors and should not be interpreted as representing official policies,
+// either expressed or implied, of the Regents of The University of Michigan.
+#ifndef _OPENCV_UNIONFIND_HPP_
+#define _OPENCV_UNIONFIND_HPP_
+
+namespace cv {
+namespace aruco {
+
+typedef struct unionfind unionfind_t;
+struct unionfind{
+    uint32_t maxid;
+    struct ufrec *data;
+};
+
+struct ufrec{
+    // the parent of this node. If a node's parent is its own index,
+    // then it is a root.
+    uint32_t parent;
+
+    // for the root of a connected component, the number of components
+    // connected to it. For intermediate values, it's not meaningful.
+    uint32_t size;
+};
+
+static inline unionfind_t *unionfind_create(uint32_t maxid){
+    unionfind_t *uf = (unionfind_t*) calloc(1, sizeof(unionfind_t));
+    uf->maxid = maxid;
+    uf->data = (struct ufrec*) malloc((maxid+1) * sizeof(struct ufrec));
+    for (unsigned int i = 0; i <= maxid; i++) {
+        uf->data[i].size = 1;
+        uf->data[i].parent = i;
+    }
+    return uf;
+}
+
+static inline void unionfind_destroy(unionfind_t *uf){
+    free(uf->data);
+    free(uf);
+}
+
+/*
+static inline uint32_t unionfind_get_representative(unionfind_t *uf, uint32_t id)
+{
+    // base case: a node is its own parent
+    if (uf->data[id].parent == id)
+        return id;
+
+    // otherwise, recurse
+    uint32_t root = unionfind_get_representative(uf, uf->data[id].parent);
+
+    // short circuit the path. [XXX This write prevents tail recursion]
+    uf->data[id].parent = root;
+
+    return root;
+}
+ */
+
+// this one seems to be every-so-slightly faster than the recursive
+// version above.
+static inline uint32_t unionfind_get_representative(unionfind_t *uf, uint32_t id){
+    uint32_t root = id;
+
+    // chase down the root
+    while (uf->data[root].parent != root) {
+        root = uf->data[root].parent;
+    }
+
+    // go back and collapse the tree.
+    //
+    // XXX: on some of our workloads that have very shallow trees
+    // (e.g. image segmentation), we are actually faster not doing
+    // this...
+    while (uf->data[id].parent != root) {
+        uint32_t tmp = uf->data[id].parent;
+        uf->data[id].parent = root;
+        id = tmp;
+    }
+
+    return root;
+}
+
+static inline uint32_t unionfind_get_set_size(unionfind_t *uf, uint32_t id){
+    uint32_t repid = unionfind_get_representative(uf, id);
+    return uf->data[repid].size;
+}
+
+static inline uint32_t unionfind_connect(unionfind_t *uf, uint32_t aid, uint32_t bid){
+    uint32_t aroot = unionfind_get_representative(uf, aid);
+    uint32_t broot = unionfind_get_representative(uf, bid);
+
+    if (aroot == broot)
+        return aroot;
+
+    // we don't perform "union by rank", but we perform a similar
+    // operation (but probably without the same asymptotic guarantee):
+    // We join trees based on the number of *elements* (as opposed to
+    // rank) contained within each tree. I.e., we use size as a proxy
+    // for rank.  In my testing, it's often *faster* to use size than
+    // rank, perhaps because the rank of the tree isn't that critical
+    // if there are very few nodes in it.
+    uint32_t asize = uf->data[aroot].size;
+    uint32_t bsize = uf->data[broot].size;
+
+    // optimization idea: We could shortcut some or all of the tree
+    // that is grafted onto the other tree. Pro: those nodes were just
+    // read and so are probably in cache. Con: it might end up being
+    // wasted effort -- the tree might be grafted onto another tree in
+    // a moment!
+    if (asize > bsize) {
+        uf->data[broot].parent = aroot;
+        uf->data[aroot].size += bsize;
+        return aroot;
+    } else {
+        uf->data[aroot].parent = broot;
+        uf->data[broot].size += asize;
+        return broot;
+    }
+}
+}}
+#endif
diff --git a/modules/objdetect/src/aruco/apriltag/zarray.hpp b/modules/objdetect/src/aruco/apriltag/zarray.hpp
new file mode 100644 (file)
index 0000000..4c05c92
--- /dev/null
@@ -0,0 +1,148 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+//
+// Copyright (C) 2013-2016, The Regents of The University of Michigan.
+//
+// This software was developed in the APRIL Robotics Lab under the
+// direction of Edwin Olson, ebolson@umich.edu. This software may be
+// available under alternative licensing terms; contact the address above.
+//
+// The views and conclusions contained in the software and documentation are those
+// of the authors and should not be interpreted as representing official policies,
+// either expressed or implied, of the Regents of The University of Michigan.
+#ifndef _OPENCV_ZARRAY_HPP_
+#define _OPENCV_ZARRAY_HPP_
+
+
+namespace cv {
+namespace aruco {
+
+
+struct sQuad{
+    float p[4][2]; // corners
+};
+
+/**
+ * Defines a structure which acts as a resize-able array ala Java's ArrayList.
+ */
+typedef struct zarray zarray_t;
+struct zarray{
+    size_t el_sz; // size of each element
+
+    int size; // how many elements?
+    int alloc; // we've allocated storage for how many elements?
+    char *data;
+};
+
+/**
+ * Creates and returns a variable array structure capable of holding elements of
+ * the specified size. It is the caller's responsibility to call zarray_destroy()
+ * on the returned array when it is no longer needed.
+ */
+inline static zarray_t *_zarray_create(size_t el_sz){
+    zarray_t *za = (zarray_t*) calloc(1, sizeof(zarray_t));
+    za->el_sz = el_sz;
+    return za;
+}
+
+/**
+ * Frees all resources associated with the variable array structure which was
+ * created by zarray_create(). After calling, 'za' will no longer be valid for storage.
+ */
+inline static void _zarray_destroy(zarray_t *za){
+    if (za == NULL)
+        return;
+
+    if (za->data != NULL)
+        free(za->data);
+    memset(za, 0, sizeof(zarray_t));
+    free(za);
+}
+
+/**
+ * Retrieves the number of elements currently being contained by the passed
+ * array, which may be different from its capacity. The index of the last element
+ * in the array will be one less than the returned value.
+ */
+inline static int _zarray_size(const zarray_t *za){
+    return za->size;
+}
+
+/**
+ * Allocates enough internal storage in the supplied variable array structure to
+ * guarantee that the supplied number of elements (capacity) can be safely stored.
+ */
+inline static void _zarray_ensure_capacity(zarray_t *za, int capacity){
+    if (capacity <= za->alloc)
+        return;
+
+    while (za->alloc < capacity) {
+        za->alloc *= 2;
+        if (za->alloc < 8)
+            za->alloc = 8;
+    }
+
+    za->data = (char*) realloc(za->data, za->alloc * za->el_sz);
+}
+
+/**
+ * Adds a new element to the end of the supplied array, and sets its value
+ * (by copying) from the data pointed to by the supplied pointer 'p'.
+ * Automatically ensures that enough storage space is available for the new element.
+ */
+inline static void _zarray_add(zarray_t *za, const void *p){
+    _zarray_ensure_capacity(za, za->size + 1);
+
+    memcpy(&za->data[za->size*za->el_sz], p, za->el_sz);
+    za->size++;
+}
+
+/**
+ * Retrieves the element from the supplied array located at the zero-based
+ * index of 'idx' and copies its value into the variable pointed to by the pointer
+ * 'p'.
+ */
+inline static void _zarray_get(const zarray_t *za, int idx, void *p){
+    CV_DbgAssert(idx >= 0);
+    CV_DbgAssert(idx < za->size);
+
+    memcpy(p, &za->data[idx*za->el_sz], za->el_sz);
+}
+
+/**
+ * Similar to zarray_get(), but returns a "live" pointer to the internal
+ * storage, avoiding a memcpy. This pointer is not valid across
+ * operations which might move memory around (i.e. zarray_remove_value(),
+ * zarray_remove_index(), zarray_insert(), zarray_sort(), zarray_clear()).
+ * 'p' should be a pointer to the pointer which will be set to the internal address.
+ */
+inline static void _zarray_get_volatile(const zarray_t *za, int idx, void *p){
+    CV_DbgAssert(idx >= 0);
+    CV_DbgAssert(idx < za->size);
+
+    *((void**) p) = &za->data[idx*za->el_sz];
+}
+
+inline static void _zarray_truncate(zarray_t *za, int sz){
+    za->size = sz;
+}
+
+/**
+ * Sets the value of the current element at index 'idx' by copying its value from
+ * the data pointed to by 'p'. The previous value of the changed element will be
+ * copied into the data pointed to by 'outp' if it is not null.
+ */
+static inline void _zarray_set(zarray_t *za, int idx, const void *p, void *outp){
+    CV_DbgAssert(idx >= 0);
+    CV_DbgAssert(idx < za->size);
+
+    if (outp != NULL)
+        memcpy(outp, &za->data[idx*za->el_sz], za->el_sz);
+
+    memcpy(&za->data[idx*za->el_sz], p, za->el_sz);
+}
+
+}
+}
+#endif
diff --git a/modules/objdetect/src/aruco/apriltag/zmaxheap.cpp b/modules/objdetect/src/aruco/apriltag/zmaxheap.cpp
new file mode 100644 (file)
index 0000000..5b0ac85
--- /dev/null
@@ -0,0 +1,207 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+//
+// Copyright (C) 2013-2016, The Regents of The University of Michigan.
+//
+// This software was developed in the APRIL Robotics Lab under the
+// direction of Edwin Olson, ebolson@umich.edu. This software may be
+// available under alternative licensing terms; contact the address above.
+//
+// The views and conclusions contained in the software and documentation are those
+// of the authors and should not be interpreted as representing official policies,
+// either expressed or implied, of the Regents of The University of Michigan.
+
+#include "../../precomp.hpp"
+#include "zmaxheap.hpp"
+
+
+//                 0
+//         1               2
+//      3     4        5       6
+//     7 8   9 10    11 12   13 14
+//
+// Children of node i:  2*i+1, 2*i+2
+// Parent of node i: (i-1) / 2
+//
+// Heap property: a parent is greater than (or equal to) its children.
+
+#define MIN_CAPACITY 16
+namespace cv {
+namespace aruco {
+struct zmaxheap
+{
+    size_t el_sz;
+
+    int size;
+    int alloc;
+
+    float *values;
+    char *data;
+
+    void (*swap)(zmaxheap_t *heap, int a, int b);
+};
+
+static inline void _swap_default(zmaxheap_t *heap, int a, int b)
+{
+    float t = heap->values[a];
+    heap->values[a] = heap->values[b];
+    heap->values[b] = t;
+
+    cv::AutoBuffer<char> tmp(heap->el_sz);
+    memcpy(tmp.data(), &heap->data[a*heap->el_sz], heap->el_sz);
+    memcpy(&heap->data[a*heap->el_sz], &heap->data[b*heap->el_sz], heap->el_sz);
+    memcpy(&heap->data[b*heap->el_sz], tmp.data(), heap->el_sz);
+}
+
+static inline void _swap_pointer(zmaxheap_t *heap, int a, int b)
+{
+    float t = heap->values[a];
+    heap->values[a] = heap->values[b];
+    heap->values[b] = t;
+
+    void **pp = (void**) heap->data;
+    void *tmp = pp[a];
+    pp[a] = pp[b];
+    pp[b] = tmp;
+}
+
+
+zmaxheap_t *zmaxheap_create(size_t el_sz)
+{
+    zmaxheap_t *heap = (zmaxheap_t*)calloc(1, sizeof(zmaxheap_t));
+    heap->el_sz = el_sz;
+
+    heap->swap = _swap_default;
+
+    if (el_sz == sizeof(void*))
+        heap->swap = _swap_pointer;
+
+    return heap;
+}
+
+void zmaxheap_destroy(zmaxheap_t *heap)
+{
+    free(heap->values);
+    free(heap->data);
+    memset(heap, 0, sizeof(zmaxheap_t));
+    free(heap);
+}
+
+static void _zmaxheap_ensure_capacity(zmaxheap_t *heap, int capacity)
+{
+    if (heap->alloc >= capacity)
+        return;
+
+    int newcap = heap->alloc;
+
+    while (newcap < capacity) {
+        if (newcap < MIN_CAPACITY) {
+            newcap = MIN_CAPACITY;
+            continue;
+        }
+
+        newcap *= 2;
+    }
+
+    heap->values = (float*)realloc(heap->values, newcap * sizeof(float));
+    heap->data = (char*)realloc(heap->data, newcap * heap->el_sz);
+    heap->alloc = newcap;
+}
+
+void zmaxheap_add(zmaxheap_t *heap, void *p, float v)
+{
+    _zmaxheap_ensure_capacity(heap, heap->size + 1);
+
+    int idx = heap->size;
+
+    heap->values[idx] = v;
+    memcpy(&heap->data[idx*heap->el_sz], p, heap->el_sz);
+
+    heap->size++;
+
+    while (idx > 0) {
+
+        int parent = (idx - 1) / 2;
+
+        // we're done!
+        if (heap->values[parent] >= v)
+            break;
+
+        // else, swap and recurse upwards.
+        heap->swap(heap, idx, parent);
+        idx = parent;
+    }
+}
+
+// Removes the item in the heap at the given index.  Returns 1 if the
+// item existed. 0 Indicates an invalid idx (heap is smaller than
+// idx). This is mostly intended to be used by zmaxheap_remove_max.
+static int zmaxheap_remove_index(zmaxheap_t *heap, int idx, void *p, float *v)
+{
+    if (idx >= heap->size)
+        return 0;
+
+    // copy out the requested element from the heap.
+    if (v != NULL)
+        *v = heap->values[idx];
+    if (p != NULL)
+        memcpy(p, &heap->data[idx*heap->el_sz], heap->el_sz);
+
+    heap->size--;
+
+    // If this element is already the last one, then there's nothing
+    // for us to do.
+    if (idx == heap->size)
+        return 1;
+
+    // copy last element to first element. (which probably upsets
+    // the heap property).
+    heap->values[idx] = heap->values[heap->size];
+    memcpy(&heap->data[idx*heap->el_sz], &heap->data[heap->el_sz * heap->size], heap->el_sz);
+
+    // now fix the heap. Note, as we descend, we're "pushing down"
+    // the same node the entire time. Thus, while the index of the
+    // parent might change, the parent_score doesn't.
+    int parent = idx;
+    float parent_score = heap->values[idx];
+
+    // descend, fixing the heap.
+    while (parent < heap->size) {
+
+        int left = 2*parent + 1;
+        int right = left + 1;
+
+//            assert(parent_score == heap->values[parent]);
+
+        float left_score = (left < heap->size) ? heap->values[left] : -INFINITY;
+        float right_score = (right < heap->size) ? heap->values[right] : -INFINITY;
+
+        // put the biggest of (parent, left, right) as the parent.
+
+        // already okay?
+        if (parent_score >= left_score && parent_score >= right_score)
+            break;
+
+        // if we got here, then one of the children is bigger than the parent.
+        if (left_score >= right_score) {
+            CV_Assert(left < heap->size);
+            heap->swap(heap, parent, left);
+            parent = left;
+        } else {
+            // right_score can't be less than left_score if right_score is -INFINITY.
+            CV_Assert(right < heap->size);
+            heap->swap(heap, parent, right);
+            parent = right;
+        }
+    }
+
+    return 1;
+}
+
+int zmaxheap_remove_max(zmaxheap_t *heap, void *p, float *v)
+{
+    return zmaxheap_remove_index(heap, 0, p, v);
+}
+
+}}
diff --git a/modules/objdetect/src/aruco/apriltag/zmaxheap.hpp b/modules/objdetect/src/aruco/apriltag/zmaxheap.hpp
new file mode 100644 (file)
index 0000000..7d3fbc0
--- /dev/null
@@ -0,0 +1,38 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+//
+// Copyright (C) 2013-2016, The Regents of The University of Michigan.
+//
+// This software was developed in the APRIL Robotics Lab under the
+// direction of Edwin Olson, ebolson@umich.edu. This software may be
+// available under alternative licensing terms; contact the address above.
+//
+// The views and conclusions contained in the software and documentation are those
+// of the authors and should not be interpreted as representing official policies,
+// either expressed or implied, of the Regents of The University of Michigan.
+#ifndef _OPENCV_ZMAXHEAP_HPP_
+#define _OPENCV_ZMAXHEAP_HPP_
+
+namespace cv {
+namespace aruco {
+typedef struct zmaxheap zmaxheap_t;
+
+typedef struct zmaxheap_iterator zmaxheap_iterator_t;
+struct zmaxheap_iterator {
+    zmaxheap_t *heap;
+    int in, out;
+};
+
+zmaxheap_t *zmaxheap_create(size_t el_sz);
+
+void zmaxheap_destroy(zmaxheap_t *heap);
+
+void zmaxheap_add(zmaxheap_t *heap, void *p, float v);
+
+// returns 0 if the heap is empty, so you can do
+// while (zmaxheap_remove_max(...)) { }
+int zmaxheap_remove_max(zmaxheap_t *heap, void *p, float *v);
+
+}}
+#endif
diff --git a/modules/objdetect/src/aruco/aruco_board.cpp b/modules/objdetect/src/aruco/aruco_board.cpp
new file mode 100644 (file)
index 0000000..23bf4cf
--- /dev/null
@@ -0,0 +1,507 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#include "../precomp.hpp"
+#include <opencv2/objdetect/aruco_dictionary.hpp>
+#include <numeric>
+
+namespace cv {
+namespace aruco {
+using namespace std;
+
+struct Board::BoardImpl {
+    std::vector<std::vector<Point3f> > objPoints;
+    Dictionary dictionary;
+    Point3f rightBottomBorder;
+    std::vector<int> ids;
+
+    BoardImpl() {
+        dictionary = Dictionary(getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50));
+    }
+};
+
+Board::Board(): boardImpl(makePtr<BoardImpl>()) {}
+
+Board::~Board() {}
+
+Ptr<Board> Board::create(InputArrayOfArrays objPoints, const Dictionary &dictionary, InputArray ids) {
+    CV_Assert(objPoints.total() == ids.total());
+    CV_Assert(objPoints.type() == CV_32FC3 || objPoints.type() == CV_32FC1);
+
+    vector<vector<Point3f> > obj_points_vector;
+    Point3f rightBottomBorder = Point3f(0.f, 0.f, 0.f);
+    for (unsigned int i = 0; i < objPoints.total(); i++) {
+        vector<Point3f> corners;
+        Mat corners_mat = objPoints.getMat(i);
+
+        if (corners_mat.type() == CV_32FC1)
+            corners_mat = corners_mat.reshape(3);
+        CV_Assert(corners_mat.total() == 4);
+
+        for (int j = 0; j < 4; j++) {
+            const Point3f &corner = corners_mat.at<Point3f>(j);
+            corners.push_back(corner);
+            rightBottomBorder.x = std::max(rightBottomBorder.x, corner.x);
+            rightBottomBorder.y = std::max(rightBottomBorder.y, corner.y);
+            rightBottomBorder.z = std::max(rightBottomBorder.z, corner.z);
+        }
+        obj_points_vector.push_back(corners);
+    }
+    Board board;
+    Ptr<Board> res = makePtr<Board>(board);
+    ids.copyTo(res->boardImpl->ids);
+    res->boardImpl->objPoints = obj_points_vector;
+    res->boardImpl->dictionary = dictionary;
+    res->boardImpl->rightBottomBorder = rightBottomBorder;
+    return res;
+}
+
+const Dictionary& Board::getDictionary() const {
+    return this->boardImpl->dictionary;
+}
+
+const vector<vector<Point3f> >& Board::getObjPoints() const {
+    return this->boardImpl->objPoints;
+}
+
+const Point3f& Board::getRightBottomCorner() const {
+    return this->boardImpl->rightBottomBorder;
+}
+
+const vector<int>& Board::getIds() const {
+    return this->boardImpl->ids;
+}
+
+/** @brief Implementation of draw planar board that accepts a raw Board pointer.
+ */
+void Board::generateImage(Size outSize, OutputArray img, int marginSize, int borderBits) const {
+    CV_Assert(!outSize.empty());
+    CV_Assert(marginSize >= 0);
+
+    img.create(outSize, CV_8UC1);
+    Mat out = img.getMat();
+    out.setTo(Scalar::all(255));
+    out.adjustROI(-marginSize, -marginSize, -marginSize, -marginSize);
+
+    // calculate max and min values in XY plane
+    CV_Assert(this->getObjPoints().size() > 0);
+    float minX, maxX, minY, maxY;
+    minX = maxX = this->getObjPoints()[0][0].x;
+    minY = maxY = this->getObjPoints()[0][0].y;
+
+    for(unsigned int i = 0; i < this->getObjPoints().size(); i++) {
+        for(int j = 0; j < 4; j++) {
+            minX = min(minX, this->getObjPoints()[i][j].x);
+            maxX = max(maxX, this->getObjPoints()[i][j].x);
+            minY = min(minY, this->getObjPoints()[i][j].y);
+            maxY = max(maxY, this->getObjPoints()[i][j].y);
+        }
+    }
+
+    float sizeX = maxX - minX;
+    float sizeY = maxY - minY;
+
+    // proportion transformations
+    float xReduction = sizeX / float(out.cols);
+    float yReduction = sizeY / float(out.rows);
+
+    // determine the zone where the markers are placed
+    if(xReduction > yReduction) {
+        int nRows = int(sizeY / xReduction);
+        int rowsMargins = (out.rows - nRows) / 2;
+        out.adjustROI(-rowsMargins, -rowsMargins, 0, 0);
+    } else {
+        int nCols = int(sizeX / yReduction);
+        int colsMargins = (out.cols - nCols) / 2;
+        out.adjustROI(0, 0, -colsMargins, -colsMargins);
+    }
+
+    // now paint each marker
+    Mat marker;
+    Point2f outCorners[3];
+    Point2f inCorners[3];
+    for(unsigned int m = 0; m < this->getObjPoints().size(); m++) {
+        // transform corners to markerZone coordinates
+        for(int j = 0; j < 3; j++) {
+            Point2f pf = Point2f(this->getObjPoints()[m][j].x, this->getObjPoints()[m][j].y);
+            // move top left to 0, 0
+            pf -= Point2f(minX, minY);
+            pf.x = pf.x / sizeX * float(out.cols);
+            pf.y = pf.y / sizeY * float(out.rows);
+            outCorners[j] = pf;
+        }
+
+        // get marker
+        Size dst_sz(outCorners[2] - outCorners[0]); // assuming CCW order
+        dst_sz.width = dst_sz.height = std::min(dst_sz.width, dst_sz.height); //marker should be square
+        getDictionary().generateImageMarker(this->getIds()[m], dst_sz.width, marker, borderBits);
+
+        if((outCorners[0].y == outCorners[1].y) && (outCorners[1].x == outCorners[2].x)) {
+            // marker is aligned to image axes
+            marker.copyTo(out(Rect(outCorners[0], dst_sz)));
+            continue;
+        }
+
+        // interpolate tiny marker to marker position in markerZone
+        inCorners[0] = Point2f(-0.5f, -0.5f);
+        inCorners[1] = Point2f(marker.cols - 0.5f, -0.5f);
+        inCorners[2] = Point2f(marker.cols - 0.5f, marker.rows - 0.5f);
+
+        // remove perspective
+        Mat transformation = getAffineTransform(inCorners, outCorners);
+        warpAffine(marker, out, transformation, out.size(), INTER_LINEAR,
+                        BORDER_TRANSPARENT);
+    }
+}
+
+void Board::matchImagePoints(InputArray detectedCorners, InputArray detectedIds,
+                                         OutputArray _objPoints, OutputArray imgPoints) const {
+    CV_Assert(getIds().size() == getObjPoints().size());
+    CV_Assert(detectedIds.total() == detectedCorners.total());
+
+    size_t nDetectedMarkers = detectedIds.total();
+
+    vector<Point3f> objPnts;
+    objPnts.reserve(nDetectedMarkers);
+
+    vector<Point2f> imgPnts;
+    imgPnts.reserve(nDetectedMarkers);
+
+    // look for detected markers that belong to the board and get their information
+    for(unsigned int i = 0; i < nDetectedMarkers; i++) {
+        int currentId = detectedIds.getMat().ptr< int >(0)[i];
+        for(unsigned int j = 0; j < getIds().size(); j++) {
+            if(currentId == getIds()[j]) {
+                for(int p = 0; p < 4; p++) {
+                    objPnts.push_back(getObjPoints()[j][p]);
+                    imgPnts.push_back(detectedCorners.getMat(i).ptr<Point2f>(0)[p]);
+                }
+            }
+        }
+    }
+
+    // create output
+    Mat(objPnts).copyTo(_objPoints);
+    Mat(imgPnts).copyTo(imgPoints);
+}
+
+struct GridBoard::GridImpl {
+    GridImpl(){};
+    // number of markers in X and Y directions
+    int sizeX = 3, sizeY = 3;
+
+    // marker side length (normally in meters)
+    float markerLength = 1.f;
+
+    // separation between markers in the grid
+    float markerSeparation = .5f;
+};
+
+GridBoard::GridBoard(): gridImpl(makePtr<GridImpl>()) {}
+
+Ptr<GridBoard> GridBoard::create(int markersX, int markersY, float markerLength, float markerSeparation,
+                                 const Dictionary &dictionary, InputArray ids) {
+    CV_Assert(markersX > 0 && markersY > 0 && markerLength > 0 && markerSeparation > 0);
+    GridBoard board;
+    Ptr<GridBoard> res = makePtr<GridBoard>(board);
+    res->gridImpl->sizeX = markersX;
+    res->gridImpl->sizeY = markersY;
+    res->gridImpl->markerLength = markerLength;
+    res->gridImpl->markerSeparation = markerSeparation;
+    res->boardImpl->dictionary = dictionary;
+
+    size_t totalMarkers = (size_t) markersX * markersY;
+    CV_Assert(totalMarkers == ids.total());
+    vector<vector<Point3f> > objPoints;
+    objPoints.reserve(totalMarkers);
+    ids.copyTo(res->boardImpl->ids);
+    // calculate Board objPoints
+    for (int y = 0; y < markersY; y++) {
+        for (int x = 0; x < markersX; x++) {
+            vector <Point3f> corners(4);
+            corners[0] = Point3f(x * (markerLength + markerSeparation),
+                                 y * (markerLength + markerSeparation), 0);
+            corners[1] = corners[0] + Point3f(markerLength, 0, 0);
+            corners[2] = corners[0] + Point3f(markerLength, markerLength, 0);
+            corners[3] = corners[0] + Point3f(0, markerLength, 0);
+            objPoints.push_back(corners);
+        }
+    }
+    res->boardImpl->objPoints = objPoints;
+    res->boardImpl->rightBottomBorder = Point3f(markersX * markerLength + markerSeparation * (markersX - 1),
+                                                markersY * markerLength + markerSeparation * (markersY - 1), 0.f);
+    return res;
+}
+
+Ptr<GridBoard> GridBoard::create(int markersX, int markersY, float markerLength, float markerSeparation,
+                                 const Dictionary &dictionary, int firstMarker) {
+    vector<int> ids(markersX*markersY);
+    std::iota(ids.begin(), ids.end(), firstMarker);
+    return GridBoard::create(markersX, markersY, markerLength, markerSeparation, dictionary, ids);
+}
+
+void GridBoard::generateImage(Size outSize, OutputArray _img, int marginSize, int borderBits) const {
+    Board::generateImage(outSize, _img, marginSize, borderBits);
+}
+
+Size GridBoard::getGridSize() const {
+    return Size(gridImpl->sizeX, gridImpl->sizeY);
+}
+
+float GridBoard::getMarkerLength() const {
+    return gridImpl->markerLength;
+}
+
+float GridBoard::getMarkerSeparation() const {
+    return gridImpl->markerSeparation;
+}
+
+struct CharucoBoard::CharucoImpl : GridBoard::GridImpl {
+    // size of chessboard squares side (normally in meters)
+    float squareLength;
+
+    // marker side length (normally in meters)
+    float markerLength;
+
+    static void _getNearestMarkerCorners(CharucoBoard &board, float squareLength);
+
+    // vector of chessboard 3D corners precalculated
+    std::vector<Point3f> chessboardCorners;
+
+    // for each charuco corner, nearest marker id and nearest marker corner id of each marker
+    std::vector<std::vector<int> > nearestMarkerIdx;
+    std::vector<std::vector<int> > nearestMarkerCorners;
+};
+
+CharucoBoard::CharucoBoard(): charucoImpl(makePtr<CharucoImpl>()) {}
+
+void CharucoBoard::generateImage(Size outSize, OutputArray _img, int marginSize, int borderBits) const {
+    CV_Assert(!outSize.empty());
+    CV_Assert(marginSize >= 0);
+
+    _img.create(outSize, CV_8UC1);
+    _img.setTo(255);
+    Mat out = _img.getMat();
+    Mat noMarginsImg =
+        out.colRange(marginSize, out.cols - marginSize).rowRange(marginSize, out.rows - marginSize);
+
+    double totalLengthX, totalLengthY;
+    totalLengthX = charucoImpl->squareLength * charucoImpl->sizeX;
+    totalLengthY = charucoImpl->squareLength * charucoImpl->sizeY;
+
+    // proportional transformation
+    double xReduction = totalLengthX / double(noMarginsImg.cols);
+    double yReduction = totalLengthY / double(noMarginsImg.rows);
+
+    // determine the zone where the chessboard is placed
+    Mat chessboardZoneImg;
+    if(xReduction > yReduction) {
+        int nRows = int(totalLengthY / xReduction);
+        int rowsMargins = (noMarginsImg.rows - nRows) / 2;
+        chessboardZoneImg = noMarginsImg.rowRange(rowsMargins, noMarginsImg.rows - rowsMargins);
+    } else {
+        int nCols = int(totalLengthX / yReduction);
+        int colsMargins = (noMarginsImg.cols - nCols) / 2;
+        chessboardZoneImg = noMarginsImg.colRange(colsMargins, noMarginsImg.cols - colsMargins);
+    }
+
+    // determine the margins to draw only the markers
+    // take the minimum just to be sure
+    double squareSizePixels = min(double(chessboardZoneImg.cols) / double(charucoImpl->sizeX),
+                                  double(chessboardZoneImg.rows) / double(charucoImpl->sizeY));
+
+    double diffSquareMarkerLength = (charucoImpl->squareLength - charucoImpl->markerLength) / 2;
+    int diffSquareMarkerLengthPixels =
+        int(diffSquareMarkerLength * squareSizePixels / charucoImpl->squareLength);
+
+    // draw markers
+    Mat markersImg;
+    Board::generateImage(chessboardZoneImg.size(), markersImg, diffSquareMarkerLengthPixels, borderBits);
+    markersImg.copyTo(chessboardZoneImg);
+
+    // now draw black squares
+    for(int y = 0; y < charucoImpl->sizeY; y++) {
+        for(int x = 0; x < charucoImpl->sizeX; x++) {
+
+            if(y % 2 != x % 2) continue; // white corner, dont do anything
+
+            double startX, startY;
+            startX = squareSizePixels * double(x);
+            startY = squareSizePixels * double(y);
+
+            Mat squareZone = chessboardZoneImg.rowRange(int(startY), int(startY + squareSizePixels))
+                                 .colRange(int(startX), int(startX + squareSizePixels));
+
+            squareZone.setTo(0);
+        }
+    }
+}
+
+/**
+  * Fill nearestMarkerIdx and nearestMarkerCorners arrays
+  */
+void CharucoBoard::CharucoImpl::_getNearestMarkerCorners(CharucoBoard &board, float squareLength) {
+    board.charucoImpl->nearestMarkerIdx.resize(board.charucoImpl->chessboardCorners.size());
+    board.charucoImpl->nearestMarkerCorners.resize(board.charucoImpl->chessboardCorners.size());
+
+    unsigned int nMarkers = (unsigned int)board.getIds().size();
+    unsigned int nCharucoCorners = (unsigned int)board.charucoImpl->chessboardCorners.size();
+    for(unsigned int i = 0; i < nCharucoCorners; i++) {
+        double minDist = -1; // distance of closest markers
+        Point3f charucoCorner = board.charucoImpl->chessboardCorners[i];
+        for(unsigned int j = 0; j < nMarkers; j++) {
+            // calculate distance from marker center to charuco corner
+            Point3f center = Point3f(0, 0, 0);
+            for(unsigned int k = 0; k < 4; k++)
+                center += board.getObjPoints()[j][k];
+            center /= 4.;
+            double sqDistance;
+            Point3f distVector = charucoCorner - center;
+            sqDistance = distVector.x * distVector.x + distVector.y * distVector.y;
+            if(j == 0 || fabs(sqDistance - minDist) < cv::pow(0.01 * squareLength, 2)) {
+                // if same minimum distance (or first iteration), add to nearestMarkerIdx vector
+                board.charucoImpl->nearestMarkerIdx[i].push_back(j);
+                minDist = sqDistance;
+            } else if(sqDistance < minDist) {
+                // if finding a closest marker to the charuco corner
+                board.charucoImpl->nearestMarkerIdx[i].clear(); // remove any previous added marker
+                board.charucoImpl->nearestMarkerIdx[i].push_back(j); // add the new closest marker index
+                minDist = sqDistance;
+            }
+        }
+        // for each of the closest markers, search the marker corner index closer
+        // to the charuco corner
+        for(unsigned int j = 0; j < board.charucoImpl->nearestMarkerIdx[i].size(); j++) {
+            board.charucoImpl->nearestMarkerCorners[i].resize(board.charucoImpl->nearestMarkerIdx[i].size());
+            double minDistCorner = -1;
+            for(unsigned int k = 0; k < 4; k++) {
+                double sqDistance;
+                Point3f distVector = charucoCorner - board.getObjPoints()[board.charucoImpl->nearestMarkerIdx[i][j]][k];
+                sqDistance = distVector.x * distVector.x + distVector.y * distVector.y;
+                if(k == 0 || sqDistance < minDistCorner) {
+                    // if this corner is closer to the charuco corner, assing its index
+                    // to nearestMarkerCorners
+                    minDistCorner = sqDistance;
+                    board.charucoImpl->nearestMarkerCorners[i][j] = k;
+                }
+            }
+        }
+    }
+}
+
+Ptr<CharucoBoard> CharucoBoard::create(int squaresX, int squaresY, float squareLength, float markerLength,
+                                       const Dictionary &dictionary, InputArray ids) {
+    CV_Assert(squaresX > 1 && squaresY > 1 && markerLength > 0 && squareLength > markerLength);
+    CharucoBoard board;
+    Ptr<CharucoBoard> res = makePtr<CharucoBoard>(board);
+
+    res->charucoImpl->sizeX = squaresX;
+    res->charucoImpl->sizeY = squaresY;
+    res->charucoImpl->squareLength = squareLength;
+    res->charucoImpl->markerLength = markerLength;
+    res->boardImpl->dictionary = dictionary;
+    vector<vector<Point3f> > objPoints;
+
+    float diffSquareMarkerLength = (squareLength - markerLength) / 2;
+    int totalMarkers = (int)(ids.total());
+    ids.copyTo(res->boardImpl->ids);
+    // calculate Board objPoints
+    int nextId = 0;
+    for(int y = 0; y < squaresY; y++) {
+        for(int x = 0; x < squaresX; x++) {
+
+            if(y % 2 == x % 2) continue; // black corner, no marker here
+
+            vector<Point3f> corners(4);
+            corners[0] = Point3f(x * squareLength + diffSquareMarkerLength,
+                                 y * squareLength + diffSquareMarkerLength, 0);
+            corners[1] = corners[0] + Point3f(markerLength, 0, 0);
+            corners[2] = corners[0] + Point3f(markerLength, markerLength, 0);
+            corners[3] = corners[0] + Point3f(0, markerLength, 0);
+            objPoints.push_back(corners);
+            // first ids in dictionary
+            if (totalMarkers == 0)
+                res->boardImpl->ids.push_back(nextId);
+            nextId++;
+        }
+    }
+    if (totalMarkers > 0 && nextId != totalMarkers)
+        CV_Error(cv::Error::StsBadSize, "Size of ids must be equal to the number of markers: "+std::to_string(nextId));
+    res->boardImpl->objPoints = objPoints;
+
+    // now fill chessboardCorners
+    for(int y = 0; y < squaresY - 1; y++) {
+        for(int x = 0; x < squaresX - 1; x++) {
+            Point3f corner;
+            corner.x = (x + 1) * squareLength;
+            corner.y = (y + 1) * squareLength;
+            corner.z = 0;
+            res->charucoImpl->chessboardCorners.push_back(corner);
+        }
+    }
+    res->boardImpl->rightBottomBorder = Point3f(squaresX * squareLength, squaresY * squareLength, 0.f);
+    CharucoBoard::CharucoImpl::_getNearestMarkerCorners(*res, res->charucoImpl->squareLength);
+    return res;
+}
+
+Size CharucoBoard::getChessboardSize() const { return Size(charucoImpl->sizeX, charucoImpl->sizeY); }
+
+float CharucoBoard::getSquareLength() const { return charucoImpl->squareLength; }
+
+float CharucoBoard::getMarkerLength() const { return charucoImpl->markerLength; }
+
+bool CharucoBoard::checkCharucoCornersCollinear(InputArray charucoIds) const {
+    unsigned int nCharucoCorners = (unsigned int)charucoIds.getMat().total();
+    if (nCharucoCorners <= 2)
+        return true;
+
+    // only test if there are 3 or more corners
+    CV_Assert(charucoImpl->chessboardCorners.size() >= charucoIds.getMat().total());
+
+    Vec<double, 3> point0(charucoImpl->chessboardCorners[charucoIds.getMat().at<int>(0)].x,
+                          charucoImpl->chessboardCorners[charucoIds.getMat().at<int>(0)].y, 1);
+
+    Vec<double, 3> point1(charucoImpl->chessboardCorners[charucoIds.getMat().at<int>(1)].x,
+                          charucoImpl->chessboardCorners[charucoIds.getMat().at<int>(1)].y, 1);
+
+    // create a line from the first two points.
+    Vec<double, 3> testLine = point0.cross(point1);
+    Vec<double, 3> testPoint(0, 0, 1);
+
+    double divisor = sqrt(testLine[0]*testLine[0] + testLine[1]*testLine[1]);
+    CV_Assert(divisor != 0.0);
+
+    // normalize the line with normal
+    testLine /= divisor;
+
+    double dotProduct;
+    for (unsigned int i = 2; i < nCharucoCorners; i++){
+        testPoint(0) = charucoImpl->chessboardCorners[charucoIds.getMat().at<int>(i)].x;
+        testPoint(1) = charucoImpl->chessboardCorners[charucoIds.getMat().at<int>(i)].y;
+
+        // if testPoint is on testLine, dotProduct will be zero (or very, very close)
+        dotProduct = testPoint.dot(testLine);
+
+        if (std::abs(dotProduct) > 1e-6){
+            return false;
+        }
+    }
+    // no points found that were off of testLine, return true that all points collinear.
+    return true;
+}
+
+std::vector<Point3f> CharucoBoard::getChessboardCorners() const {
+    return charucoImpl->chessboardCorners;
+}
+
+std::vector<std::vector<int> > CharucoBoard::getNearestMarkerIdx() const {
+    return charucoImpl->nearestMarkerIdx;
+}
+
+std::vector<std::vector<int> > CharucoBoard::getNearestMarkerCorners() const {
+    return charucoImpl->nearestMarkerCorners;
+}
+
+}
+}
diff --git a/modules/objdetect/src/aruco/aruco_detector.cpp b/modules/objdetect/src/aruco/aruco_detector.cpp
new file mode 100644 (file)
index 0000000..c23545c
--- /dev/null
@@ -0,0 +1,1365 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#include "../precomp.hpp"
+#include <opencv2/calib3d.hpp>
+
+#include "opencv2/objdetect/aruco_detector.hpp"
+#include "opencv2/objdetect/aruco_board.hpp"
+#include "apriltag/apriltag_quad_thresh.hpp"
+#include "aruco_utils.hpp"
+#include <cmath>
+
+namespace cv {
+namespace aruco {
+
+using namespace std;
+
+static inline bool readWrite(DetectorParameters &params, const Ptr<FileNode>& readNode,
+                             const Ptr<FileStorage>& writeStorage = nullptr) {
+    CV_Assert(!readNode.empty() || !writeStorage.empty());
+    bool check = false;
+
+    check |= readWriteParameter("adaptiveThreshWinSizeMin", params.adaptiveThreshWinSizeMin, *readNode, *writeStorage);
+    check |= readWriteParameter("adaptiveThreshWinSizeMax", params.adaptiveThreshWinSizeMax, *readNode, *writeStorage);
+    check |= readWriteParameter("adaptiveThreshWinSizeStep", params.adaptiveThreshWinSizeStep, *readNode, *writeStorage);
+    check |= readWriteParameter("adaptiveThreshConstant", params.adaptiveThreshConstant, *readNode, *writeStorage);
+    check |= readWriteParameter("minMarkerPerimeterRate", params.minMarkerPerimeterRate, *readNode, *writeStorage);
+    check |= readWriteParameter("maxMarkerPerimeterRate", params.maxMarkerPerimeterRate, *readNode, *writeStorage);
+    check |= readWriteParameter("polygonalApproxAccuracyRate", params.polygonalApproxAccuracyRate,
+                                *readNode, *writeStorage);
+    check |= readWriteParameter("minCornerDistanceRate", params.minCornerDistanceRate, *readNode, *writeStorage);
+    check |= readWriteParameter("minDistanceToBorder", params.minDistanceToBorder, *readNode, *writeStorage);
+    check |= readWriteParameter("minMarkerDistanceRate", params.minMarkerDistanceRate, *readNode, *writeStorage);
+    check |= readWriteParameter("cornerRefinementMethod", params.cornerRefinementMethod, *readNode, *writeStorage);
+    check |= readWriteParameter("cornerRefinementWinSize", params.cornerRefinementWinSize, *readNode, *writeStorage);
+    check |= readWriteParameter("cornerRefinementMaxIterations", params.cornerRefinementMaxIterations,
+                                *readNode, *writeStorage);
+    check |= readWriteParameter("cornerRefinementMinAccuracy", params.cornerRefinementMinAccuracy,
+                                *readNode, *writeStorage);
+    check |= readWriteParameter("markerBorderBits", params.markerBorderBits, *readNode, *writeStorage);
+    check |= readWriteParameter("perspectiveRemovePixelPerCell", params.perspectiveRemovePixelPerCell,
+                                *readNode, *writeStorage);
+    check |= readWriteParameter("perspectiveRemoveIgnoredMarginPerCell", params.perspectiveRemoveIgnoredMarginPerCell,
+                                *readNode, *writeStorage);
+    check |= readWriteParameter("maxErroneousBitsInBorderRate", params.maxErroneousBitsInBorderRate,
+                                *readNode, *writeStorage);
+    check |= readWriteParameter("minOtsuStdDev", params.minOtsuStdDev, *readNode, *writeStorage);
+    check |= readWriteParameter("errorCorrectionRate", params.errorCorrectionRate, *readNode, *writeStorage);
+    // new aruco 3 functionality
+    check |= readWriteParameter("useAruco3Detection", params.useAruco3Detection, *readNode, *writeStorage);
+    check |= readWriteParameter("minSideLengthCanonicalImg", params.minSideLengthCanonicalImg, *readNode, *writeStorage);
+    check |= readWriteParameter("minMarkerLengthRatioOriginalImg", params.minMarkerLengthRatioOriginalImg,
+                                *readNode, *writeStorage);
+    return check;
+}
+
+bool DetectorParameters::readDetectorParameters(const FileNode& fn) {
+    if(fn.empty())
+        return false;
+    Ptr<FileNode> pfn = makePtr<FileNode>(fn);
+    return readWrite(*this, pfn);
+}
+
+bool DetectorParameters::writeDetectorParameters(const Ptr<FileStorage>& fs, const String& name) {
+    if (fs.empty())
+        return false;
+    if(name.empty())
+        return writeDetectorParameters(*fs);
+    *fs << name << "{";
+    bool res = writeDetectorParameters(*fs);
+    *fs << "}";
+    return res;
+}
+
+bool DetectorParameters::writeDetectorParameters(FileStorage &fs) {
+    if (!fs.isOpened())
+        return false;
+    return readWrite(*this, nullptr, makePtr<FileStorage>(fs));
+}
+
+static inline bool readWrite(RefineParameters& refineParameters, const Ptr<FileNode>& readNode,
+                             const Ptr<FileStorage>& writeStorage = nullptr) {
+    CV_Assert(!readNode.empty() || !writeStorage.empty());
+    bool check = false;
+
+    check |= readWriteParameter("minRepDistance", refineParameters.minRepDistance, *readNode, *writeStorage);
+    check |= readWriteParameter("errorCorrectionRate", refineParameters.errorCorrectionRate, *readNode, *writeStorage);
+    check |= readWriteParameter("checkAllOrders", refineParameters.checkAllOrders, *readNode, *writeStorage);
+    return check;
+}
+
+RefineParameters::RefineParameters(float _minRepDistance, float _errorCorrectionRate, bool _checkAllOrders):
+                                   minRepDistance(_minRepDistance), errorCorrectionRate(_errorCorrectionRate),
+                                   checkAllOrders(_checkAllOrders){}
+
+bool RefineParameters::readRefineParameters(const FileNode &fn) {
+    if(fn.empty())
+        return false;
+    Ptr<FileNode> pfn = makePtr<FileNode>(fn);
+    return readWrite(*this, pfn);
+}
+
+bool RefineParameters::writeRefineParameters(FileStorage &fs) {
+    if(!fs.isOpened())
+        return false;
+    return readWrite(*this, nullptr, makePtr<FileStorage>(fs));
+}
+
+bool RefineParameters::writeRefineParameters(const Ptr<FileStorage>& fs, const String& name) {
+    if(fs.empty())
+        return false;
+    if(name.empty())
+        return writeRefineParameters(*fs);
+    *fs << name << "{";
+    bool res = writeRefineParameters(*fs);
+    *fs << "}";
+    return res;
+}
+
+/**
+  * @brief Threshold input image using adaptive thresholding
+  */
+static void _threshold(InputArray _in, OutputArray _out, int winSize, double constant) {
+
+    CV_Assert(winSize >= 3);
+    if(winSize % 2 == 0) winSize++; // win size must be odd
+    adaptiveThreshold(_in, _out, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, winSize, constant);
+}
+
+
+/**
+  * @brief Given a tresholded image, find the contours, calculate their polygonal approximation
+  * and take those that accomplish some conditions
+  */
+static void _findMarkerContours(const Mat &in, vector<vector<Point2f> > &candidates,
+                                vector<vector<Point> > &contoursOut, double minPerimeterRate,
+                                double maxPerimeterRate, double accuracyRate,
+                                double minCornerDistanceRate, int minDistanceToBorder, int minSize) {
+
+    CV_Assert(minPerimeterRate > 0 && maxPerimeterRate > 0 && accuracyRate > 0 &&
+              minCornerDistanceRate >= 0 && minDistanceToBorder >= 0);
+
+    // calculate maximum and minimum sizes in pixels
+    unsigned int minPerimeterPixels =
+        (unsigned int)(minPerimeterRate * max(in.cols, in.rows));
+    unsigned int maxPerimeterPixels =
+        (unsigned int)(maxPerimeterRate * max(in.cols, in.rows));
+
+    // for aruco3 functionality
+    if (minSize != 0) {
+        minPerimeterPixels = 4*minSize;
+    }
+
+    Mat contoursImg;
+    in.copyTo(contoursImg);
+    vector<vector<Point> > contours;
+    findContours(contoursImg, contours, RETR_LIST, CHAIN_APPROX_NONE);
+    // now filter list of contours
+    for(unsigned int i = 0; i < contours.size(); i++) {
+        // check perimeter
+        if(contours[i].size() < minPerimeterPixels || contours[i].size() > maxPerimeterPixels)
+            continue;
+
+        // check is square and is convex
+        vector<Point> approxCurve;
+        approxPolyDP(contours[i], approxCurve, double(contours[i].size()) * accuracyRate, true);
+        if(approxCurve.size() != 4 || !isContourConvex(approxCurve)) continue;
+
+        // check min distance between corners
+        double minDistSq =
+            max(contoursImg.cols, contoursImg.rows) * max(contoursImg.cols, contoursImg.rows);
+        for(int j = 0; j < 4; j++) {
+            double d = (double)(approxCurve[j].x - approxCurve[(j + 1) % 4].x) *
+                           (double)(approxCurve[j].x - approxCurve[(j + 1) % 4].x) +
+                       (double)(approxCurve[j].y - approxCurve[(j + 1) % 4].y) *
+                           (double)(approxCurve[j].y - approxCurve[(j + 1) % 4].y);
+            minDistSq = min(minDistSq, d);
+        }
+        double minCornerDistancePixels = double(contours[i].size()) * minCornerDistanceRate;
+        if(minDistSq < minCornerDistancePixels * minCornerDistancePixels) continue;
+
+        // check if it is too near to the image border
+        bool tooNearBorder = false;
+        for(int j = 0; j < 4; j++) {
+            if(approxCurve[j].x < minDistanceToBorder || approxCurve[j].y < minDistanceToBorder ||
+               approxCurve[j].x > contoursImg.cols - 1 - minDistanceToBorder ||
+               approxCurve[j].y > contoursImg.rows - 1 - minDistanceToBorder)
+                tooNearBorder = true;
+        }
+        if(tooNearBorder) continue;
+
+        // if it passes all the test, add to candidates vector
+        vector<Point2f> currentCandidate;
+        currentCandidate.resize(4);
+        for(int j = 0; j < 4; j++) {
+            currentCandidate[j] = Point2f((float)approxCurve[j].x, (float)approxCurve[j].y);
+        }
+        candidates.push_back(currentCandidate);
+        contoursOut.push_back(contours[i]);
+    }
+}
+
+
+/**
+  * @brief Assure order of candidate corners is clockwise direction
+  */
+static void _reorderCandidatesCorners(vector<vector<Point2f> > &candidates) {
+
+    for(unsigned int i = 0; i < candidates.size(); i++) {
+        double dx1 = candidates[i][1].x - candidates[i][0].x;
+        double dy1 = candidates[i][1].y - candidates[i][0].y;
+        double dx2 = candidates[i][2].x - candidates[i][0].x;
+        double dy2 = candidates[i][2].y - candidates[i][0].y;
+        double crossProduct = (dx1 * dy2) - (dy1 * dx2);
+
+        if(crossProduct < 0.0) { // not clockwise direction
+            swap(candidates[i][1], candidates[i][3]);
+        }
+    }
+}
+
+/**
+  * @brief to make sure that the corner's order of both candidates (default/white) is the same
+  */
+static vector<Point2f> alignContourOrder(Point2f corner, vector<Point2f> candidate) {
+    uint8_t r=0;
+    double min = norm( Vec2f( corner - candidate[0] ), NORM_L2SQR);
+    for(uint8_t pos=1; pos < 4; pos++) {
+        double nDiff = norm( Vec2f( corner - candidate[pos] ), NORM_L2SQR);
+        if(nDiff < min){
+            r = pos;
+            min =nDiff;
+        }
+    }
+    std::rotate(candidate.begin(), candidate.begin() + r, candidate.end());
+    return candidate;
+}
+
+/**
+  * @brief Check candidates that are too close to each other, save the potential candidates
+  *        (i.e. biggest/smallest contour) and remove the rest
+  */
+static void _filterTooCloseCandidates(const vector<vector<Point2f> > &candidatesIn,
+                                      vector<vector<vector<Point2f> > > &candidatesSetOut,
+                                      const vector<vector<Point> > &contoursIn,
+                                      vector<vector<vector<Point> > > &contoursSetOut,
+                                      double minMarkerDistanceRate, bool detectInvertedMarker) {
+
+    CV_Assert(minMarkerDistanceRate >= 0);
+    vector<int> candGroup;
+    candGroup.resize(candidatesIn.size(), -1);
+    vector<vector<unsigned int> > groupedCandidates;
+    for(unsigned int i = 0; i < candidatesIn.size(); i++) {
+        bool isSingleContour = true;
+        for(unsigned int j = i + 1; j < candidatesIn.size(); j++) {
+
+            int minimumPerimeter = min((int)contoursIn[i].size(), (int)contoursIn[j].size() );
+
+            // fc is the first corner considered on one of the markers, 4 combinations are possible
+            for(int fc = 0; fc < 4; fc++) {
+                double distSq = 0;
+                for(int c = 0; c < 4; c++) {
+                    // modC is the corner considering first corner is fc
+                    int modC = (c + fc) % 4;
+                    distSq += (candidatesIn[i][modC].x - candidatesIn[j][c].x) *
+                                  (candidatesIn[i][modC].x - candidatesIn[j][c].x) +
+                              (candidatesIn[i][modC].y - candidatesIn[j][c].y) *
+                                  (candidatesIn[i][modC].y - candidatesIn[j][c].y);
+                }
+                distSq /= 4.;
+
+                // if mean square distance is too low, remove the smaller one of the two markers
+                double minMarkerDistancePixels = double(minimumPerimeter) * minMarkerDistanceRate;
+                if(distSq < minMarkerDistancePixels * minMarkerDistancePixels) {
+                    isSingleContour = false;
+                    // i and j are not related to a group
+                    if(candGroup[i]<0 && candGroup[j]<0){
+                        // mark candidates with their corresponding group number
+                        candGroup[i] = candGroup[j] = (int)groupedCandidates.size();
+
+                        // create group
+                        vector<unsigned int> grouped;
+                        grouped.push_back(i);
+                        grouped.push_back(j);
+                        groupedCandidates.push_back( grouped );
+                    }
+                    // i is related to a group
+                    else if(candGroup[i] > -1 && candGroup[j] == -1){
+                        int group = candGroup[i];
+                        candGroup[j] = group;
+
+                        // add to group
+                        groupedCandidates[group].push_back( j );
+                    }
+                    // j is related to a group
+                    else if(candGroup[j] > -1 && candGroup[i] == -1){
+                        int group = candGroup[j];
+                        candGroup[i] = group;
+
+                        // add to group
+                        groupedCandidates[group].push_back( i );
+                    }
+                }
+            }
+        }
+        if (isSingleContour && candGroup[i] < 0)
+        {
+            candGroup[i] = (int)groupedCandidates.size();
+            vector<unsigned int> grouped;
+            grouped.push_back(i);
+            grouped.push_back(i); // step "save possible candidates" require minimum 2 elements
+            groupedCandidates.push_back(grouped);
+        }
+    }
+
+    // save possible candidates
+    candidatesSetOut.clear();
+    contoursSetOut.clear();
+
+    vector<vector<Point2f> > biggerCandidates;
+    vector<vector<Point> > biggerContours;
+    vector<vector<Point2f> > smallerCandidates;
+    vector<vector<Point> > smallerContours;
+
+    // save possible candidates
+    for(unsigned int i = 0; i < groupedCandidates.size(); i++) {
+        unsigned int smallerIdx = groupedCandidates[i][0];
+        unsigned int biggerIdx = smallerIdx;
+        double smallerArea = contourArea(candidatesIn[smallerIdx]);
+        double biggerArea = smallerArea;
+
+        // evaluate group elements
+        for(unsigned int j = 1; j < groupedCandidates[i].size(); j++) {
+            unsigned int currIdx = groupedCandidates[i][j];
+            double currArea = contourArea(candidatesIn[currIdx]);
+
+            // check if current contour is bigger
+            if(currArea >= biggerArea) {
+                biggerIdx = currIdx;
+                biggerArea = currArea;
+            }
+
+            // check if current contour is smaller
+            if(currArea < smallerArea && detectInvertedMarker) {
+                smallerIdx = currIdx;
+                smallerArea = currArea;
+            }
+        }
+
+        // add contours and candidates
+        biggerCandidates.push_back(candidatesIn[biggerIdx]);
+        biggerContours.push_back(contoursIn[biggerIdx]);
+        if(detectInvertedMarker) {
+            smallerCandidates.push_back(alignContourOrder(candidatesIn[biggerIdx][0], candidatesIn[smallerIdx]));
+            smallerContours.push_back(contoursIn[smallerIdx]);
+        }
+    }
+    // to preserve the structure :: candidateSet< defaultCandidates, whiteCandidates >
+    // default candidates
+    candidatesSetOut.push_back(biggerCandidates);
+    contoursSetOut.push_back(biggerContours);
+    // white candidates
+    candidatesSetOut.push_back(smallerCandidates);
+    contoursSetOut.push_back(smallerContours);
+}
+
+/**
+ * @brief Initial steps on finding square candidates
+ */
+static void _detectInitialCandidates(const Mat &grey, vector<vector<Point2f> > &candidates,
+                                     vector<vector<Point> > &contours,
+                                     const DetectorParameters &params) {
+
+    CV_Assert(params.adaptiveThreshWinSizeMin >= 3 && params.adaptiveThreshWinSizeMax >= 3);
+    CV_Assert(params.adaptiveThreshWinSizeMax >= params.adaptiveThreshWinSizeMin);
+    CV_Assert(params.adaptiveThreshWinSizeStep > 0);
+
+    // number of window sizes (scales) to apply adaptive thresholding
+    int nScales =  (params.adaptiveThreshWinSizeMax - params.adaptiveThreshWinSizeMin) /
+                      params.adaptiveThreshWinSizeStep + 1;
+
+    vector<vector<vector<Point2f> > > candidatesArrays((size_t) nScales);
+    vector<vector<vector<Point> > > contoursArrays((size_t) nScales);
+
+    ////for each value in the interval of thresholding window sizes
+    parallel_for_(Range(0, nScales), [&](const Range& range) {
+        const int begin = range.start;
+        const int end = range.end;
+
+        for (int i = begin; i < end; i++) {
+            int currScale = params.adaptiveThreshWinSizeMin + i * params.adaptiveThreshWinSizeStep;
+            // threshold
+            Mat thresh;
+            _threshold(grey, thresh, currScale, params.adaptiveThreshConstant);
+
+            // detect rectangles
+            _findMarkerContours(thresh, candidatesArrays[i], contoursArrays[i],
+                                params.minMarkerPerimeterRate, params.maxMarkerPerimeterRate,
+                                params.polygonalApproxAccuracyRate, params.minCornerDistanceRate,
+                                params.minDistanceToBorder, params.minSideLengthCanonicalImg);
+        }
+    });
+    // join candidates
+    for(int i = 0; i < nScales; i++) {
+        for(unsigned int j = 0; j < candidatesArrays[i].size(); j++) {
+            candidates.push_back(candidatesArrays[i][j]);
+            contours.push_back(contoursArrays[i][j]);
+        }
+    }
+}
+
+
+/**
+ * @brief Detect square candidates in the input image
+ */
+static void _detectCandidates(InputArray _grayImage, vector<vector<vector<Point2f> > >& candidatesSetOut,
+                              vector<vector<vector<Point> > >& contoursSetOut, const DetectorParameters &_params) {
+    Mat grey = _grayImage.getMat();
+    CV_DbgAssert(grey.total() != 0);
+    CV_DbgAssert(grey.type() == CV_8UC1);
+
+    /// 1. DETECT FIRST SET OF CANDIDATES
+    vector<vector<Point2f> > candidates;
+    vector<vector<Point> > contours;
+    _detectInitialCandidates(grey, candidates, contours, _params);
+    /// 2. SORT CORNERS
+    _reorderCandidatesCorners(candidates);
+
+    /// 3. FILTER OUT NEAR CANDIDATE PAIRS
+    // save the outter/inner border (i.e. potential candidates)
+    _filterTooCloseCandidates(candidates, candidatesSetOut, contours, contoursSetOut,
+                              _params.minMarkerDistanceRate, _params.detectInvertedMarker);
+}
+
+
+/**
+  * @brief Given an input image and candidate corners, extract the bits of the candidate, including
+  * the border bits
+  */
+static Mat _extractBits(InputArray _image, const vector<Point2f>& corners, int markerSize,
+                        int markerBorderBits, int cellSize, double cellMarginRate, double minStdDevOtsu) {
+    CV_Assert(_image.getMat().channels() == 1);
+    CV_Assert(corners.size() == 4ull);
+    CV_Assert(markerBorderBits > 0 && cellSize > 0 && cellMarginRate >= 0 && cellMarginRate <= 1);
+    CV_Assert(minStdDevOtsu >= 0);
+
+    // number of bits in the marker
+    int markerSizeWithBorders = markerSize + 2 * markerBorderBits;
+    int cellMarginPixels = int(cellMarginRate * cellSize);
+
+    Mat resultImg; // marker image after removing perspective
+    int resultImgSize = markerSizeWithBorders * cellSize;
+    Mat resultImgCorners(4, 1, CV_32FC2);
+    resultImgCorners.ptr<Point2f>(0)[0] = Point2f(0, 0);
+    resultImgCorners.ptr<Point2f>(0)[1] = Point2f((float)resultImgSize - 1, 0);
+    resultImgCorners.ptr<Point2f>(0)[2] =
+        Point2f((float)resultImgSize - 1, (float)resultImgSize - 1);
+    resultImgCorners.ptr<Point2f>(0)[3] = Point2f(0, (float)resultImgSize - 1);
+
+    // remove perspective
+    Mat transformation = getPerspectiveTransform(corners, resultImgCorners);
+    warpPerspective(_image, resultImg, transformation, Size(resultImgSize, resultImgSize),
+                    INTER_NEAREST);
+
+    // output image containing the bits
+    Mat bits(markerSizeWithBorders, markerSizeWithBorders, CV_8UC1, Scalar::all(0));
+
+    // check if standard deviation is enough to apply Otsu
+    // if not enough, it probably means all bits are the same color (black or white)
+    Mat mean, stddev;
+    // Remove some border just to avoid border noise from perspective transformation
+    Mat innerRegion = resultImg.colRange(cellSize / 2, resultImg.cols - cellSize / 2)
+                          .rowRange(cellSize / 2, resultImg.rows - cellSize / 2);
+    meanStdDev(innerRegion, mean, stddev);
+    if(stddev.ptr< double >(0)[0] < minStdDevOtsu) {
+        // all black or all white, depending on mean value
+        if(mean.ptr< double >(0)[0] > 127)
+            bits.setTo(1);
+        else
+            bits.setTo(0);
+        return bits;
+    }
+
+    // now extract code, first threshold using Otsu
+    threshold(resultImg, resultImg, 125, 255, THRESH_BINARY | THRESH_OTSU);
+
+    // for each cell
+    for(int y = 0; y < markerSizeWithBorders; y++) {
+        for(int x = 0; x < markerSizeWithBorders; x++) {
+            int Xstart = x * (cellSize) + cellMarginPixels;
+            int Ystart = y * (cellSize) + cellMarginPixels;
+            Mat square = resultImg(Rect(Xstart, Ystart, cellSize - 2 * cellMarginPixels,
+                                        cellSize - 2 * cellMarginPixels));
+            // count white pixels on each cell to assign its value
+            size_t nZ = (size_t) countNonZero(square);
+            if(nZ > square.total() / 2) bits.at<unsigned char>(y, x) = 1;
+        }
+    }
+
+    return bits;
+}
+
+
+
+/**
+  * @brief Return number of erroneous bits in border, i.e. number of white bits in border.
+  */
+static int _getBorderErrors(const Mat &bits, int markerSize, int borderSize) {
+
+    int sizeWithBorders = markerSize + 2 * borderSize;
+
+    CV_Assert(markerSize > 0 && bits.cols == sizeWithBorders && bits.rows == sizeWithBorders);
+
+    int totalErrors = 0;
+    for(int y = 0; y < sizeWithBorders; y++) {
+        for(int k = 0; k < borderSize; k++) {
+            if(bits.ptr<unsigned char>(y)[k] != 0) totalErrors++;
+            if(bits.ptr<unsigned char>(y)[sizeWithBorders - 1 - k] != 0) totalErrors++;
+        }
+    }
+    for(int x = borderSize; x < sizeWithBorders - borderSize; x++) {
+        for(int k = 0; k < borderSize; k++) {
+            if(bits.ptr<unsigned char>(k)[x] != 0) totalErrors++;
+            if(bits.ptr<unsigned char>(sizeWithBorders - 1 - k)[x] != 0) totalErrors++;
+        }
+    }
+    return totalErrors;
+}
+
+
+/**
+ * @brief Tries to identify one candidate given the dictionary
+ * @return candidate typ. zero if the candidate is not valid,
+ *                           1 if the candidate is a black candidate (default candidate)
+ *                           2 if the candidate is a white candidate
+ */
+static uint8_t _identifyOneCandidate(const Dictionary& dictionary, InputArray _image,
+                                     const vector<Point2f>& _corners, int& idx,
+                                     const DetectorParameters& params, int& rotation,
+                                     const float scale = 1.f) {
+    CV_DbgAssert(_corners.size() == 4);
+    CV_DbgAssert(_image.getMat().total() != 0);
+    CV_DbgAssert(params.markerBorderBits > 0);
+    uint8_t typ=1;
+    // get bits
+    // scale corners to the correct size to search on the corresponding image pyramid
+    vector<Point2f> scaled_corners(4);
+    for (int i = 0; i < 4; ++i) {
+        scaled_corners[i].x = _corners[i].x * scale;
+        scaled_corners[i].y = _corners[i].y * scale;
+    }
+
+    Mat candidateBits =
+        _extractBits(_image, scaled_corners, dictionary.markerSize, params.markerBorderBits,
+                     params.perspectiveRemovePixelPerCell,
+                     params.perspectiveRemoveIgnoredMarginPerCell, params.minOtsuStdDev);
+
+    // analyze border bits
+    int maximumErrorsInBorder =
+        int(dictionary.markerSize * dictionary.markerSize * params.maxErroneousBitsInBorderRate);
+    int borderErrors =
+        _getBorderErrors(candidateBits, dictionary.markerSize, params.markerBorderBits);
+
+    // check if it is a white marker
+    if(params.detectInvertedMarker){
+        // to get from 255 to 1
+        Mat invertedImg = ~candidateBits-254;
+        int invBError = _getBorderErrors(invertedImg, dictionary.markerSize, params.markerBorderBits);
+        // white marker
+        if(invBError<borderErrors){
+            borderErrors = invBError;
+            invertedImg.copyTo(candidateBits);
+            typ=2;
+        }
+    }
+    if(borderErrors > maximumErrorsInBorder) return 0; // border is wrong
+
+    // take only inner bits
+    Mat onlyBits =
+        candidateBits.rowRange(params.markerBorderBits,
+                               candidateBits.rows - params.markerBorderBits)
+            .colRange(params.markerBorderBits, candidateBits.cols - params.markerBorderBits);
+
+    // try to indentify the marker
+    if(!dictionary.identify(onlyBits, idx, rotation, params.errorCorrectionRate))
+        return 0;
+
+    return typ;
+}
+
+/**
+ * @brief rotate the initial corner to get to the right position
+ */
+static void correctCornerPosition(vector<Point2f>& _candidate, int rotate){
+    std::rotate(_candidate.begin(), _candidate.begin() + 4 - rotate, _candidate.end());
+}
+
+static size_t _findOptPyrImageForCanonicalImg(
+        const vector<Mat>& img_pyr,
+        const int scaled_width,
+        const int cur_perimeter,
+        const int min_perimeter) {
+    CV_Assert(scaled_width > 0);
+    size_t optLevel = 0;
+    float dist = std::numeric_limits<float>::max();
+    for (size_t i = 0; i < img_pyr.size(); ++i) {
+        const float scale = img_pyr[i].cols / static_cast<float>(scaled_width);
+        const float perimeter_scaled = cur_perimeter * scale;
+        // instead of std::abs() favor the larger pyramid level by checking if the distance is postive
+        // will slow down the algorithm but find more corners in the end
+        const float new_dist = perimeter_scaled - min_perimeter;
+        if (new_dist < dist && new_dist > 0.f) {
+            dist = new_dist;
+            optLevel = i;
+        }
+    }
+    return optLevel;
+}
+
+/**
+ * @brief Identify square candidates according to a marker dictionary
+ */
+
+static void _identifyCandidates(InputArray grey,
+                                const vector<Mat>& image_pyr,
+                                vector<vector<vector<Point2f> > >& _candidatesSet,
+                                vector<vector<vector<Point> > >& _contoursSet, const Dictionary &_dictionary,
+                                vector<vector<Point2f> >& _accepted, vector<vector<Point> >& _contours, vector<int>& ids,
+                                const DetectorParameters &params,
+                                OutputArrayOfArrays _rejected = noArray()) {
+    CV_DbgAssert(grey.getMat().total() != 0);
+    CV_DbgAssert(grey.getMat().type() == CV_8UC1);
+    int ncandidates = (int)_candidatesSet[0].size();
+    vector<vector<Point2f> > accepted;
+    vector<vector<Point2f> > rejected;
+    vector<vector<Point> > contours;
+
+    vector<int> idsTmp(ncandidates, -1);
+    vector<int> rotated(ncandidates, 0);
+    vector<uint8_t> validCandidates(ncandidates, 0);
+
+    //// Analyze each of the candidates
+    parallel_for_(Range(0, ncandidates), [&](const Range &range) {
+        const int begin = range.start;
+        const int end = range.end;
+
+        vector<vector<Point2f> >& candidates = params.detectInvertedMarker ? _candidatesSet[1] : _candidatesSet[0];
+        vector<vector<Point> >& contourS = params.detectInvertedMarker ? _contoursSet[1] : _contoursSet[0];
+
+        for(int i = begin; i < end; i++) {
+            int currId = -1;
+            // implements equation (4)
+            if (params.useAruco3Detection) {
+                const int perimeterOfContour = static_cast<int>(contourS[i].size());
+                const int min_perimeter = params.minSideLengthCanonicalImg * 4;
+                const size_t nearestImgId = _findOptPyrImageForCanonicalImg(image_pyr, grey.cols(), perimeterOfContour, min_perimeter);
+                const float scale = image_pyr[nearestImgId].cols / static_cast<float>(grey.cols());
+
+                validCandidates[i] = _identifyOneCandidate(_dictionary, image_pyr[nearestImgId], candidates[i], currId, params, rotated[i], scale);
+            }
+            else {
+                validCandidates[i] = _identifyOneCandidate(_dictionary, grey, candidates[i], currId, params, rotated[i]);
+            }
+
+            if(validCandidates[i] > 0)
+                idsTmp[i] = currId;
+        }
+    });
+
+    for(int i = 0; i < ncandidates; i++) {
+        if(validCandidates[i] > 0) {
+            // to choose the right set of candidates :: 0 for default, 1 for white markers
+            uint8_t set = validCandidates[i]-1;
+
+            // shift corner positions to the correct rotation
+            correctCornerPosition(_candidatesSet[set][i], rotated[i]);
+
+            if( !params.detectInvertedMarker && validCandidates[i] == 2 )
+                continue;
+
+            // add valid candidate
+            accepted.push_back(_candidatesSet[set][i]);
+            ids.push_back(idsTmp[i]);
+
+            contours.push_back(_contoursSet[set][i]);
+
+        } else {
+            rejected.push_back(_candidatesSet[0][i]);
+        }
+    }
+
+    // parse output
+    _accepted = accepted;
+
+    _contours= contours;
+
+    if(_rejected.needed()) {
+        _copyVector2Output(rejected, _rejected);
+    }
+}
+
+/**
+ * Line fitting  A * B = C :: Called from function refineCandidateLines
+ * @param nContours, contour-container
+ */
+static Point3f _interpolate2Dline(const vector<Point2f>& nContours){
+    CV_Assert(nContours.size() >= 2);
+    float minX, minY, maxX, maxY;
+    minX = maxX = nContours[0].x;
+    minY = maxY = nContours[0].y;
+
+    for(unsigned int i = 0; i< nContours.size(); i++){
+        minX = nContours[i].x < minX ? nContours[i].x : minX;
+        minY = nContours[i].y < minY ? nContours[i].y : minY;
+        maxX = nContours[i].x > maxX ? nContours[i].x : maxX;
+        maxY = nContours[i].y > maxY ? nContours[i].y : maxY;
+    }
+
+    Mat A = Mat::ones((int)nContours.size(), 2, CV_32F); // Coefficient Matrix (N x 2)
+    Mat B((int)nContours.size(), 1, CV_32F);                // Variables   Matrix (N x 1)
+    Mat C;                                            // Constant
+
+    if(maxX - minX > maxY - minY){
+        for(unsigned int i =0; i < nContours.size(); i++){
+            A.at<float>(i,0)= nContours[i].x;
+            B.at<float>(i,0)= nContours[i].y;
+        }
+
+        solve(A, B, C, DECOMP_NORMAL);
+
+        return Point3f(C.at<float>(0, 0), -1., C.at<float>(1, 0));
+    }
+    else{
+        for(unsigned int i =0; i < nContours.size(); i++){
+            A.at<float>(i,0)= nContours[i].y;
+            B.at<float>(i,0)= nContours[i].x;
+        }
+
+        solve(A, B, C, DECOMP_NORMAL);
+
+        return Point3f(-1., C.at<float>(0, 0), C.at<float>(1, 0));
+    }
+
+}
+
+/**
+ * Find the Point where the lines crosses :: Called from function refineCandidateLines
+ * @param nLine1
+ * @param nLine2
+ * @return Crossed Point
+ */
+static Point2f _getCrossPoint(Point3f nLine1, Point3f nLine2){
+    Matx22f A(nLine1.x, nLine1.y, nLine2.x, nLine2.y);
+    Vec2f B(-nLine1.z, -nLine2.z);
+    return Vec2f(A.solve(B).val);
+}
+
+/**
+ * Refine Corners using the contour vector :: Called from function detectMarkers
+ * @param nContours, contour-container
+ * @param nCorners, candidate Corners
+ * @param camMatrix, cameraMatrix input 3x3 floating-point camera matrix
+ * @param distCoeff, distCoeffs vector of distortion coefficient
+ */
+static void _refineCandidateLines(vector<Point>& nContours, vector<Point2f>& nCorners){
+    vector<Point2f> contour2f(nContours.begin(), nContours.end());
+    /* 5 groups :: to group the edges
+     * 4 - classified by its corner
+     * extra group - (temporary) if contours do not begin with a corner
+     */
+    vector<Point2f> cntPts[5];
+    int cornerIndex[4]={-1};
+    int group=4;
+
+    for ( unsigned int i =0; i < nContours.size(); i++ ) {
+        for(unsigned int j=0; j<4; j++){
+            if ( nCorners[j] == contour2f[i] ){
+                cornerIndex[j] = i;
+                group=j;
+            }
+        }
+        cntPts[group].push_back(contour2f[i]);
+    }
+    for (int i = 0; i < 4; i++)
+    {
+        CV_Assert(cornerIndex[i] != -1);
+    }
+    // saves extra group into corresponding
+    if( !cntPts[4].empty() ){
+        for( unsigned int i=0; i < cntPts[4].size() ; i++ )
+            cntPts[group].push_back(cntPts[4].at(i));
+        cntPts[4].clear();
+    }
+
+    //Evaluate contour direction :: using the position of the detected corners
+    int inc=1;
+
+        inc = ( (cornerIndex[0] > cornerIndex[1]) &&  (cornerIndex[3] > cornerIndex[0]) ) ? -1:inc;
+    inc = ( (cornerIndex[2] > cornerIndex[3]) &&  (cornerIndex[1] > cornerIndex[2]) ) ? -1:inc;
+
+    // calculate the line :: who passes through the grouped points
+    Point3f lines[4];
+    for(int i=0; i<4; i++){
+        lines[i]=_interpolate2Dline(cntPts[i]);
+    }
+
+    /*
+     * calculate the corner :: where the lines crosses to each other
+     * clockwise direction        no clockwise direction
+     *      0                           1
+     *      .---. 1                     .---. 2
+     *      |   |                       |   |
+     *    3 .___.                     0 .___.
+     *          2                           3
+     */
+    for(int i=0; i < 4; i++){
+        if(inc<0)
+            nCorners[i] = _getCrossPoint(lines[ i ], lines[ (i+1)%4 ]);    // 01 12 23 30
+        else
+            nCorners[i] = _getCrossPoint(lines[ i ], lines[ (i+3)%4 ]);    // 30 01 12 23
+    }
+}
+
+static inline void findCornerInPyrImage(const float scale_init, const int closest_pyr_image_idx,
+                                        const vector<Mat>& grey_pyramid, Mat corners,
+                                        const DetectorParameters& params) {
+    // scale them to the closest pyramid level
+    if (scale_init != 1.f)
+        corners *= scale_init; // scale_init * scale_pyr
+    for (int idx = closest_pyr_image_idx - 1; idx >= 0; --idx) {
+        // scale them to new pyramid level
+        corners *= 2.f; // *= scale_pyr;
+        // use larger win size for larger images
+        const int subpix_win_size = std::max(grey_pyramid[idx].cols, grey_pyramid[idx].rows) > 1080 ? 5 : 3;
+        cornerSubPix(grey_pyramid[idx], corners,
+                     Size(subpix_win_size, subpix_win_size),
+                     Size(-1, -1),
+                     TermCriteria(TermCriteria::MAX_ITER | TermCriteria::EPS,
+                                  params.cornerRefinementMaxIterations,
+                                  params.cornerRefinementMinAccuracy));
+    }
+}
+
+struct ArucoDetector::ArucoDetectorImpl {
+    /// dictionary indicates the type of markers that will be searched
+    Dictionary dictionary;
+
+    /// marker detection parameters, check DetectorParameters docs to see available settings
+    DetectorParameters detectorParams;
+
+    /// marker refine parameters
+    RefineParameters refineParams;
+    ArucoDetectorImpl() {}
+
+    ArucoDetectorImpl(const Dictionary &_dictionary, const DetectorParameters &_detectorParams,
+                      const RefineParameters& _refineParams): dictionary(_dictionary),
+                      detectorParams(_detectorParams), refineParams(_refineParams) {}
+
+};
+
+ArucoDetector::ArucoDetector(const Dictionary &_dictionary,
+                             const DetectorParameters &_detectorParams,
+                             const RefineParameters& _refineParams) {
+    arucoDetectorImpl = makePtr<ArucoDetectorImpl>(_dictionary, _detectorParams, _refineParams);
+}
+
+void ArucoDetector::detectMarkers(InputArray _image, OutputArrayOfArrays _corners, OutputArray _ids,
+                                  OutputArrayOfArrays _rejectedImgPoints) {
+    CV_Assert(!_image.empty());
+    DetectorParameters& detectorParams = arucoDetectorImpl->detectorParams;
+    const Dictionary& dictionary = arucoDetectorImpl->dictionary;
+
+    CV_Assert(detectorParams.markerBorderBits > 0);
+    // check that the parameters are set correctly if Aruco3 is used
+    CV_Assert(!(detectorParams.useAruco3Detection == true &&
+                detectorParams.minSideLengthCanonicalImg == 0 &&
+                detectorParams.minMarkerLengthRatioOriginalImg == 0.0));
+
+    Mat grey;
+    _convertToGrey(_image.getMat(), grey);
+
+    // Aruco3 functionality is the extension of Aruco.
+    // The description can be found in:
+    // [1] Speeded up detection of squared fiducial markers, 2018, FJ Romera-Ramirez et al.
+    // if Aruco3 functionality if not wanted
+    // change some parameters to be sure to turn it off
+    if (!detectorParams.useAruco3Detection) {
+        detectorParams.minMarkerLengthRatioOriginalImg = 0.0;
+        detectorParams.minSideLengthCanonicalImg = 0;
+    }
+    else {
+        // always turn on corner refinement in case of Aruco3, due to upsampling
+        detectorParams.cornerRefinementMethod = CORNER_REFINE_SUBPIX;
+        // only CORNER_REFINE_SUBPIX implement correctly for useAruco3Detection
+        // Todo: update other CORNER_REFINE methods
+    }
+
+    /// Step 0: equation (2) from paper [1]
+    const float fxfy = (!detectorParams.useAruco3Detection ? 1.f : detectorParams.minSideLengthCanonicalImg /
+                       (detectorParams.minSideLengthCanonicalImg + std::max(grey.cols, grey.rows)*
+                       detectorParams.minMarkerLengthRatioOriginalImg));
+
+    /// Step 1: create image pyramid. Section 3.4. in [1]
+    vector<Mat> grey_pyramid;
+    int closest_pyr_image_idx = 0, num_levels = 0;
+    //// Step 1.1: resize image with equation (1) from paper [1]
+    if (detectorParams.useAruco3Detection) {
+        const float scale_pyr = 2.f;
+        const float img_area = static_cast<float>(grey.rows*grey.cols);
+        const float min_area_marker = static_cast<float>(detectorParams.minSideLengthCanonicalImg*
+                                                         detectorParams.minSideLengthCanonicalImg);
+        // find max level
+        num_levels = static_cast<int>(log2(img_area / min_area_marker)/scale_pyr);
+        // the closest pyramid image to the downsampled segmentation image
+        // will later be used as start index for corner upsampling
+        const float scale_img_area = img_area * fxfy * fxfy;
+        closest_pyr_image_idx = cvRound(log2(img_area / scale_img_area)/scale_pyr);
+    }
+    buildPyramid(grey, grey_pyramid, num_levels);
+
+    // resize to segmentation image
+    // in this reduces size the contours will be detected
+    if (fxfy != 1.f)
+        resize(grey, grey, Size(cvRound(fxfy * grey.cols), cvRound(fxfy * grey.rows)));
+
+    /// STEP 2: Detect marker candidates
+    vector<vector<Point2f> > candidates;
+    vector<vector<Point> > contours;
+    vector<int> ids;
+
+    vector<vector<vector<Point2f> > > candidatesSet;
+    vector<vector<vector<Point> > > contoursSet;
+
+    /// STEP 2.a Detect marker candidates :: using AprilTag
+    if(detectorParams.cornerRefinementMethod == CORNER_REFINE_APRILTAG){
+        _apriltag(grey, detectorParams, candidates, contours);
+
+        candidatesSet.push_back(candidates);
+        contoursSet.push_back(contours);
+    }
+    /// STEP 2.b Detect marker candidates :: traditional way
+    else
+        _detectCandidates(grey, candidatesSet, contoursSet, detectorParams);
+
+    /// STEP 2: Check candidate codification (identify markers)
+    _identifyCandidates(grey, grey_pyramid, candidatesSet, contoursSet, dictionary,
+                        candidates, contours, ids, detectorParams, _rejectedImgPoints);
+
+    /// STEP 3: Corner refinement :: use corner subpix
+    if (detectorParams.cornerRefinementMethod == CORNER_REFINE_SUBPIX) {
+        CV_Assert(detectorParams.cornerRefinementWinSize > 0 && detectorParams.cornerRefinementMaxIterations > 0 &&
+                  detectorParams.cornerRefinementMinAccuracy > 0);
+        // Do subpixel estimation. In Aruco3 start on the lowest pyramid level and upscale the corners
+        parallel_for_(Range(0, (int)candidates.size()), [&](const Range& range) {
+            const int begin = range.start;
+            const int end = range.end;
+
+            for (int i = begin; i < end; i++) {
+                if (detectorParams.useAruco3Detection) {
+                    const float scale_init = (float) grey_pyramid[closest_pyr_image_idx].cols / grey.cols;
+                    findCornerInPyrImage(scale_init, closest_pyr_image_idx, grey_pyramid, Mat(candidates[i]), detectorParams);
+                }
+                else
+                cornerSubPix(grey, Mat(candidates[i]),
+                             Size(detectorParams.cornerRefinementWinSize, detectorParams.cornerRefinementWinSize),
+                             Size(-1, -1),
+                             TermCriteria(TermCriteria::MAX_ITER | TermCriteria::EPS,
+                                          detectorParams.cornerRefinementMaxIterations,
+                                          detectorParams.cornerRefinementMinAccuracy));
+            }
+        });
+    }
+
+    /// STEP 3, Optional : Corner refinement :: use contour container
+    if (detectorParams.cornerRefinementMethod == CORNER_REFINE_CONTOUR){
+
+        if (!_ids.empty()) {
+
+            // do corner refinement using the contours for each detected markers
+            parallel_for_(Range(0, (int)candidates.size()), [&](const Range& range) {
+                for (int i = range.start; i < range.end; i++) {
+                    _refineCandidateLines(contours[i], candidates[i]);
+                }
+            });
+        }
+    }
+
+    if (detectorParams.cornerRefinementMethod != CORNER_REFINE_SUBPIX && fxfy != 1.f) {
+        // only CORNER_REFINE_SUBPIX implement correctly for useAruco3Detection
+        // Todo: update other CORNER_REFINE methods
+
+        // scale to orignal size, this however will lead to inaccurate detections!
+        for (auto &vecPoints : candidates)
+            for (auto &point : vecPoints)
+                point *= 1.f/fxfy;
+    }
+
+    // copy to output arrays
+    _copyVector2Output(candidates, _corners);
+    Mat(ids).copyTo(_ids);
+}
+
+/**
+  * Project board markers that are not included in the list of detected markers
+  */
+static void _projectUndetectedMarkers(const Ptr<Board> &_board, InputOutputArrayOfArrays _detectedCorners,
+                               InputOutputArray _detectedIds, InputArray _cameraMatrix, InputArray _distCoeffs,
+                               vector<vector<Point2f> >& _undetectedMarkersProjectedCorners,
+                               OutputArray _undetectedMarkersIds) {
+    // first estimate board pose with the current avaible markers
+    Mat rvec, tvec;
+    int boardDetectedMarkers = 0;
+    {
+        CV_Assert(_detectedCorners.total() == _detectedIds.total());
+        // get object and image points for the solvePnP function
+        Mat detectedObjPoints, imgPoints;
+        _board->matchImagePoints(_detectedCorners, _detectedIds, detectedObjPoints, imgPoints);
+        CV_Assert(imgPoints.total() == detectedObjPoints.total());
+        if(detectedObjPoints.total() > 0) // 0 of the detected markers in board
+        {
+            solvePnP(detectedObjPoints, imgPoints, _cameraMatrix, _distCoeffs, rvec, tvec);
+            // divide by four since all the four corners are concatenated in the array for each marker
+            boardDetectedMarkers = static_cast<int>(detectedObjPoints.total()) / 4;
+        }
+    }
+
+    // at least one marker from board so rvec and tvec are valid
+    if(boardDetectedMarkers == 0) return;
+
+    // search undetected markers and project them using the previous pose
+    vector<vector<Point2f> > undetectedCorners;
+    vector<int> undetectedIds;
+    for(unsigned int i = 0; i < _board->getIds().size(); i++) {
+        int foundIdx = -1;
+        for(unsigned int j = 0; j < _detectedIds.total(); j++) {
+            if(_board->getIds()[i] == _detectedIds.getMat().ptr<int>()[j]) {
+                foundIdx = j;
+                break;
+            }
+        }
+
+        // not detected
+        if(foundIdx == -1) {
+            undetectedCorners.push_back(vector<Point2f>());
+            undetectedIds.push_back(_board->getIds()[i]);
+            projectPoints(_board->getObjPoints()[i], rvec, tvec, _cameraMatrix, _distCoeffs,
+                          undetectedCorners.back());
+        }
+    }
+    // parse output
+    Mat(undetectedIds).copyTo(_undetectedMarkersIds);
+    _undetectedMarkersProjectedCorners = undetectedCorners;
+}
+
+/**
+  * Interpolate board markers that are not included in the list of detected markers using
+  * global homography
+  */
+static void _projectUndetectedMarkers(const Ptr<Board> &_board, InputOutputArrayOfArrays _detectedCorners,
+                               InputOutputArray _detectedIds,
+                               vector<vector<Point2f> >& _undetectedMarkersProjectedCorners,
+                               OutputArray _undetectedMarkersIds) {
+    // check board points are in the same plane, if not, global homography cannot be applied
+    CV_Assert(_board->getObjPoints().size() > 0);
+    CV_Assert(_board->getObjPoints()[0].size() > 0);
+    float boardZ = _board->getObjPoints()[0][0].z;
+    for(unsigned int i = 0; i < _board->getObjPoints().size(); i++) {
+        for(unsigned int j = 0; j < _board->getObjPoints()[i].size(); j++)
+            CV_Assert(boardZ == _board->getObjPoints()[i][j].z);
+    }
+
+    vector<Point2f> detectedMarkersObj2DAll; // Object coordinates (without Z) of all the detected
+                                             // marker corners in a single vector
+    vector<Point2f> imageCornersAll; // Image corners of all detected markers in a single vector
+    vector<vector<Point2f> > undetectedMarkersObj2D; // Object coordinates (without Z) of all
+                                                        // missing markers in different vectors
+    vector<int> undetectedMarkersIds; // ids of missing markers
+    // find markers included in board, and missing markers from board. Fill the previous vectors
+    for(unsigned int j = 0; j < _board->getIds().size(); j++) {
+        bool found = false;
+        for(unsigned int i = 0; i < _detectedIds.total(); i++) {
+            if(_detectedIds.getMat().ptr<int>()[i] == _board->getIds()[j]) {
+                for(int c = 0; c < 4; c++) {
+                    imageCornersAll.push_back(_detectedCorners.getMat(i).ptr<Point2f>()[c]);
+                    detectedMarkersObj2DAll.push_back(
+                        Point2f(_board->getObjPoints()[j][c].x, _board->getObjPoints()[j][c].y));
+                }
+                found = true;
+                break;
+            }
+        }
+        if(!found) {
+            undetectedMarkersObj2D.push_back(vector<Point2f>());
+            for(int c = 0; c < 4; c++) {
+                undetectedMarkersObj2D.back().push_back(
+                    Point2f(_board->getObjPoints()[j][c].x, _board->getObjPoints()[j][c].y));
+            }
+            undetectedMarkersIds.push_back(_board->getIds()[j]);
+        }
+    }
+    if(imageCornersAll.size() == 0) return;
+
+    // get homography from detected markers
+    Mat transformation = findHomography(detectedMarkersObj2DAll, imageCornersAll);
+
+    _undetectedMarkersProjectedCorners.resize(undetectedMarkersIds.size());
+
+    // for each undetected marker, apply transformation
+    for(unsigned int i = 0; i < undetectedMarkersObj2D.size(); i++) {
+        perspectiveTransform(undetectedMarkersObj2D[i], _undetectedMarkersProjectedCorners[i], transformation);
+    }
+    Mat(undetectedMarkersIds).copyTo(_undetectedMarkersIds);
+}
+
+void ArucoDetector::refineDetectedMarkers(InputArray _image, const Ptr<Board> &_board,
+                                          InputOutputArrayOfArrays _detectedCorners, InputOutputArray _detectedIds,
+                                          InputOutputArrayOfArrays _rejectedCorners, InputArray _cameraMatrix,
+                                          InputArray _distCoeffs, OutputArray _recoveredIdxs) {
+    DetectorParameters& detectorParams = arucoDetectorImpl->detectorParams;
+    const Dictionary& dictionary = arucoDetectorImpl->dictionary;
+    RefineParameters& refineParams = arucoDetectorImpl->refineParams;
+    CV_Assert(refineParams.minRepDistance > 0);
+
+    if(_detectedIds.total() == 0 || _rejectedCorners.total() == 0) return;
+
+    // get projections of missing markers in the board
+    vector<vector<Point2f> > undetectedMarkersCorners;
+    vector<int> undetectedMarkersIds;
+    if(_cameraMatrix.total() != 0) {
+        // reproject based on camera projection model
+        _projectUndetectedMarkers(_board, _detectedCorners, _detectedIds, _cameraMatrix, _distCoeffs,
+                                  undetectedMarkersCorners, undetectedMarkersIds);
+
+    } else {
+        // reproject based on global homography
+        _projectUndetectedMarkers(_board, _detectedCorners, _detectedIds, undetectedMarkersCorners,
+                                  undetectedMarkersIds);
+    }
+
+    // list of missing markers indicating if they have been assigned to a candidate
+    vector<bool > alreadyIdentified(_rejectedCorners.total(), false);
+
+    // maximum bits that can be corrected
+    int maxCorrectionRecalculated =
+        int(double(dictionary.maxCorrectionBits) * refineParams.errorCorrectionRate);
+
+    Mat grey;
+    _convertToGrey(_image, grey);
+
+    // vector of final detected marker corners and ids
+    vector<vector<Point2f> > finalAcceptedCorners;
+    vector<int> finalAcceptedIds;
+    // fill with the current markers
+    finalAcceptedCorners.resize(_detectedCorners.total());
+    finalAcceptedIds.resize(_detectedIds.total());
+    for(unsigned int i = 0; i < _detectedIds.total(); i++) {
+        finalAcceptedCorners[i] = _detectedCorners.getMat(i).clone();
+        finalAcceptedIds[i] = _detectedIds.getMat().ptr<int>()[i];
+    }
+    vector<int> recoveredIdxs; // original indexes of accepted markers in _rejectedCorners
+
+    // for each missing marker, try to find a correspondence
+    for(unsigned int i = 0; i < undetectedMarkersIds.size(); i++) {
+
+        // best match at the moment
+        int closestCandidateIdx = -1;
+        double closestCandidateDistance = refineParams.minRepDistance * refineParams.minRepDistance + 1;
+        Mat closestRotatedMarker;
+
+        for(unsigned int j = 0; j < _rejectedCorners.total(); j++) {
+            if(alreadyIdentified[j]) continue;
+
+            // check distance
+            double minDistance = closestCandidateDistance + 1;
+            bool valid = false;
+            int validRot = 0;
+            for(int c = 0; c < 4; c++) { // first corner in rejected candidate
+                double currentMaxDistance = 0;
+                for(int k = 0; k < 4; k++) {
+                    Point2f rejCorner = _rejectedCorners.getMat(j).ptr<Point2f>()[(c + k) % 4];
+                    Point2f distVector = undetectedMarkersCorners[i][k] - rejCorner;
+                    double cornerDist = distVector.x * distVector.x + distVector.y * distVector.y;
+                    currentMaxDistance = max(currentMaxDistance, cornerDist);
+                }
+                // if distance is better than current best distance
+                if(currentMaxDistance < closestCandidateDistance) {
+                    valid = true;
+                    validRot = c;
+                    minDistance = currentMaxDistance;
+                }
+                if(!refineParams.checkAllOrders) break;
+            }
+
+            if(!valid) continue;
+
+            // apply rotation
+            Mat rotatedMarker;
+            if(refineParams.checkAllOrders) {
+                rotatedMarker = Mat(4, 1, CV_32FC2);
+                for(int c = 0; c < 4; c++)
+                    rotatedMarker.ptr<Point2f>()[c] =
+                        _rejectedCorners.getMat(j).ptr<Point2f>()[(c + 4 + validRot) % 4];
+            }
+            else rotatedMarker = _rejectedCorners.getMat(j);
+
+            // last filter, check if inner code is close enough to the assigned marker code
+            int codeDistance = 0;
+            // if errorCorrectionRate, dont check code
+            if(refineParams.errorCorrectionRate >= 0) {
+
+                // extract bits
+                Mat bits = _extractBits(
+                    grey, rotatedMarker, dictionary.markerSize, detectorParams.markerBorderBits,
+                    detectorParams.perspectiveRemovePixelPerCell,
+                    detectorParams.perspectiveRemoveIgnoredMarginPerCell, detectorParams.minOtsuStdDev);
+
+                Mat onlyBits =
+                    bits.rowRange(detectorParams.markerBorderBits, bits.rows - detectorParams.markerBorderBits)
+                        .colRange(detectorParams.markerBorderBits, bits.rows - detectorParams.markerBorderBits);
+
+                codeDistance =
+                    dictionary.getDistanceToId(onlyBits, undetectedMarkersIds[i], false);
+            }
+
+            // if everythin is ok, assign values to current best match
+            if(refineParams.errorCorrectionRate < 0 || codeDistance < maxCorrectionRecalculated) {
+                closestCandidateIdx = j;
+                closestCandidateDistance = minDistance;
+                closestRotatedMarker = rotatedMarker;
+            }
+        }
+
+        // if at least one good match, we have rescue the missing marker
+        if(closestCandidateIdx >= 0) {
+
+            // subpixel refinement
+            if(detectorParams.cornerRefinementMethod == CORNER_REFINE_SUBPIX) {
+                CV_Assert(detectorParams.cornerRefinementWinSize > 0 &&
+                          detectorParams.cornerRefinementMaxIterations > 0 &&
+                          detectorParams.cornerRefinementMinAccuracy > 0);
+                cornerSubPix(grey, closestRotatedMarker,
+                             Size(detectorParams.cornerRefinementWinSize, detectorParams.cornerRefinementWinSize),
+                             Size(-1, -1), TermCriteria(TermCriteria::MAX_ITER | TermCriteria::EPS,
+                                                        detectorParams.cornerRefinementMaxIterations,
+                                                        detectorParams.cornerRefinementMinAccuracy));
+            }
+
+            // remove from rejected
+            alreadyIdentified[closestCandidateIdx] = true;
+
+            // add to detected
+            finalAcceptedCorners.push_back(closestRotatedMarker);
+            finalAcceptedIds.push_back(undetectedMarkersIds[i]);
+
+            // add the original index of the candidate
+            recoveredIdxs.push_back(closestCandidateIdx);
+        }
+    }
+
+    // parse output
+    if(finalAcceptedIds.size() != _detectedIds.total()) {
+        // parse output
+        Mat(finalAcceptedIds).copyTo(_detectedIds);
+        _copyVector2Output(finalAcceptedCorners, _detectedCorners);
+
+        // recalculate _rejectedCorners based on alreadyIdentified
+        vector<vector<Point2f> > finalRejected;
+        for(unsigned int i = 0; i < alreadyIdentified.size(); i++) {
+            if(!alreadyIdentified[i]) {
+                finalRejected.push_back(_rejectedCorners.getMat(i).clone());
+            }
+        }
+        _copyVector2Output(finalRejected, _rejectedCorners);
+
+        if(_recoveredIdxs.needed()) {
+            Mat(recoveredIdxs).copyTo(_recoveredIdxs);
+        }
+    }
+}
+
+void ArucoDetector::write(FileStorage &fs) const {
+    Ptr<FileStorage> pfs = makePtr<FileStorage>(fs);
+    arucoDetectorImpl->dictionary.writeDictionary(pfs);
+    arucoDetectorImpl->detectorParams.writeDetectorParameters(fs);
+    arucoDetectorImpl->refineParams.writeRefineParameters(fs);
+}
+
+void ArucoDetector::read(const FileNode &fn) {
+    arucoDetectorImpl->dictionary.readDictionary(fn);
+    arucoDetectorImpl->detectorParams.readDetectorParameters(fn);
+    arucoDetectorImpl->refineParams.readRefineParameters(fn);
+}
+
+const Dictionary& ArucoDetector::getDictionary() const {
+    return arucoDetectorImpl->dictionary;
+}
+
+void ArucoDetector::setDictionary(const Dictionary& dictionary) {
+    arucoDetectorImpl->dictionary = dictionary;
+}
+
+const DetectorParameters& ArucoDetector::getDetectorParameters() const {
+    return arucoDetectorImpl->detectorParams;
+}
+
+void ArucoDetector::setDetectorParameters(const DetectorParameters& detectorParameters) {
+    arucoDetectorImpl->detectorParams = detectorParameters;
+}
+
+const RefineParameters& ArucoDetector::getRefineParameters() const {
+    return arucoDetectorImpl->refineParams;
+}
+
+void ArucoDetector::setRefineParameters(const RefineParameters& refineParameters) {
+    arucoDetectorImpl->refineParams = refineParameters;
+}
+
+void drawDetectedMarkers(InputOutputArray _image, InputArrayOfArrays _corners,
+                         InputArray _ids, Scalar borderColor) {
+    CV_Assert(_image.getMat().total() != 0 &&
+              (_image.getMat().channels() == 1 || _image.getMat().channels() == 3));
+    CV_Assert((_corners.total() == _ids.total()) || _ids.total() == 0);
+
+    // calculate colors
+    Scalar textColor, cornerColor;
+    textColor = cornerColor = borderColor;
+    swap(textColor.val[0], textColor.val[1]);     // text color just sawp G and R
+    swap(cornerColor.val[1], cornerColor.val[2]); // corner color just sawp G and B
+
+    int nMarkers = (int)_corners.total();
+    for(int i = 0; i < nMarkers; i++) {
+        Mat currentMarker = _corners.getMat(i);
+        CV_Assert(currentMarker.total() == 4 && currentMarker.type() == CV_32FC2);
+
+        // draw marker sides
+        for(int j = 0; j < 4; j++) {
+            Point2f p0, p1;
+            p0 = currentMarker.ptr<Point2f>(0)[j];
+            p1 = currentMarker.ptr<Point2f>(0)[(j + 1) % 4];
+            line(_image, p0, p1, borderColor, 1);
+        }
+        // draw first corner mark
+        rectangle(_image, currentMarker.ptr<Point2f>(0)[0] - Point2f(3, 3),
+                  currentMarker.ptr<Point2f>(0)[0] + Point2f(3, 3), cornerColor, 1, LINE_AA);
+
+        // draw ID
+        if(_ids.total() != 0) {
+            Point2f cent(0, 0);
+            for(int p = 0; p < 4; p++)
+                cent += currentMarker.ptr<Point2f>(0)[p];
+            cent = cent / 4.;
+            stringstream s;
+            s << "id=" << _ids.getMat().ptr<int>(0)[i];
+            putText(_image, s.str(), cent, FONT_HERSHEY_SIMPLEX, 0.5, textColor, 2);
+        }
+    }
+}
+
+void generateImageMarker(const Dictionary &dictionary, int id, int sidePixels, OutputArray _img, int borderBits) {
+    dictionary.generateImageMarker(id, sidePixels, _img, borderBits);
+}
+
+}
+}
diff --git a/modules/objdetect/src/aruco/aruco_dictionary.cpp b/modules/objdetect/src/aruco/aruco_dictionary.cpp
new file mode 100644 (file)
index 0000000..a0177ac
--- /dev/null
@@ -0,0 +1,441 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#include "../precomp.hpp"
+#include "opencv2/core/hal/hal.hpp"
+
+#include "aruco_utils.hpp"
+#include "predefined_dictionaries.hpp"
+#include "apriltag/predefined_dictionaries_apriltag.hpp"
+#include <opencv2/objdetect/aruco_dictionary.hpp>
+
+namespace cv {
+namespace aruco {
+
+using namespace std;
+
+Dictionary::Dictionary(): markerSize(0), maxCorrectionBits(0) {}
+
+
+Dictionary::Dictionary(const Mat &_bytesList, int _markerSize, int _maxcorr) {
+    markerSize = _markerSize;
+    maxCorrectionBits = _maxcorr;
+    bytesList = _bytesList;
+}
+
+
+bool Dictionary::readDictionary(const cv::FileNode& fn) {
+    int nMarkers = 0, _markerSize = 0;
+    if (fn.empty() || !readParameter("nmarkers", nMarkers, fn) || !readParameter("markersize", _markerSize, fn))
+        return false;
+    Mat bytes(0, 0, CV_8UC1), marker(_markerSize, _markerSize, CV_8UC1);
+    std::string markerString;
+    for (int i = 0; i < nMarkers; i++) {
+        std::ostringstream ostr;
+        ostr << i;
+        if (!readParameter("marker_" + ostr.str(), markerString, fn))
+            return false;
+        for (int j = 0; j < (int) markerString.size(); j++)
+            marker.at<unsigned char>(j) = (markerString[j] == '0') ? 0 : 1;
+        bytes.push_back(Dictionary::getByteListFromBits(marker));
+    }
+    int _maxCorrectionBits = 0;
+    readParameter("maxCorrectionBits", _maxCorrectionBits, fn);
+    *this = Dictionary(bytes, _markerSize, _maxCorrectionBits);
+    return true;
+}
+
+void Dictionary::writeDictionary(FileStorage &fs) {
+    fs << "nmarkers" << bytesList.rows;
+    fs << "markersize" << markerSize;
+    fs << "maxCorrectionBits" << maxCorrectionBits;
+    for (int i = 0; i < bytesList.rows; i++) {
+        Mat row = bytesList.row(i);;
+        Mat bitMarker = getBitsFromByteList(row, markerSize);
+        std::ostringstream ostr;
+        ostr << i;
+        string markerName = "marker_" + ostr.str();
+        string marker;
+        for (int j = 0; j < markerSize * markerSize; j++)
+            marker.push_back(bitMarker.at<uint8_t>(j) + '0');
+        fs << markerName << marker;
+    }
+}
+
+void Dictionary::writeDictionary(Ptr<FileStorage>& fs, const String &name) {
+    if(name.empty())
+        return writeDictionary(*fs);
+    *fs << name << "{";
+    writeDictionary(*fs);
+    *fs << "}";
+}
+
+
+bool Dictionary::identify(const Mat &onlyBits, int &idx, int &rotation, double maxCorrectionRate) const {
+    CV_Assert(onlyBits.rows == markerSize && onlyBits.cols == markerSize);
+
+    int maxCorrectionRecalculed = int(double(maxCorrectionBits) * maxCorrectionRate);
+
+    // get as a byte list
+    Mat candidateBytes = getByteListFromBits(onlyBits);
+
+    idx = -1; // by default, not found
+
+    // search closest marker in dict
+    for(int m = 0; m < bytesList.rows; m++) {
+        int currentMinDistance = markerSize * markerSize + 1;
+        int currentRotation = -1;
+        for(unsigned int r = 0; r < 4; r++) {
+            int currentHamming = cv::hal::normHamming(
+                    bytesList.ptr(m)+r*candidateBytes.cols,
+                    candidateBytes.ptr(),
+                    candidateBytes.cols);
+
+            if(currentHamming < currentMinDistance) {
+                currentMinDistance = currentHamming;
+                currentRotation = r;
+            }
+        }
+
+        // if maxCorrection is fulfilled, return this one
+        if(currentMinDistance <= maxCorrectionRecalculed) {
+            idx = m;
+            rotation = currentRotation;
+            break;
+        }
+    }
+
+    return idx != -1;
+}
+
+
+int Dictionary::getDistanceToId(InputArray bits, int id, bool allRotations) const {
+
+    CV_Assert(id >= 0 && id < bytesList.rows);
+
+    unsigned int nRotations = 4;
+    if(!allRotations) nRotations = 1;
+
+    Mat candidateBytes = getByteListFromBits(bits.getMat());
+    int currentMinDistance = int(bits.total() * bits.total());
+    for(unsigned int r = 0; r < nRotations; r++) {
+        int currentHamming = cv::hal::normHamming(
+                bytesList.ptr(id) + r*candidateBytes.cols,
+                candidateBytes.ptr(),
+                candidateBytes.cols);
+
+        if(currentHamming < currentMinDistance) {
+            currentMinDistance = currentHamming;
+        }
+    }
+    return currentMinDistance;
+}
+
+
+void Dictionary::generateImageMarker(int id, int sidePixels, OutputArray _img, int borderBits) const {
+    CV_Assert(sidePixels >= (markerSize + 2*borderBits));
+    CV_Assert(id < bytesList.rows);
+    CV_Assert(borderBits > 0);
+
+    _img.create(sidePixels, sidePixels, CV_8UC1);
+
+    // create small marker with 1 pixel per bin
+    Mat tinyMarker(markerSize + 2 * borderBits, markerSize + 2 * borderBits, CV_8UC1,
+                   Scalar::all(0));
+    Mat innerRegion = tinyMarker.rowRange(borderBits, tinyMarker.rows - borderBits)
+                          .colRange(borderBits, tinyMarker.cols - borderBits);
+    // put inner bits
+    Mat bits = 255 * getBitsFromByteList(bytesList.rowRange(id, id + 1), markerSize);
+    CV_Assert(innerRegion.total() == bits.total());
+    bits.copyTo(innerRegion);
+
+    // resize tiny marker to output size
+    cv::resize(tinyMarker, _img.getMat(), _img.getMat().size(), 0, 0, INTER_NEAREST);
+}
+
+
+Mat Dictionary::getByteListFromBits(const Mat &bits) {
+    // integer ceil
+    int nbytes = (bits.cols * bits.rows + 8 - 1) / 8;
+
+    Mat candidateByteList(1, nbytes, CV_8UC4, Scalar::all(0));
+    unsigned char currentBit = 0;
+    int currentByte = 0;
+
+    // the 4 rotations
+    uchar* rot0 = candidateByteList.ptr();
+    uchar* rot1 = candidateByteList.ptr() + 1*nbytes;
+    uchar* rot2 = candidateByteList.ptr() + 2*nbytes;
+    uchar* rot3 = candidateByteList.ptr() + 3*nbytes;
+
+    for(int row = 0; row < bits.rows; row++) {
+        for(int col = 0; col < bits.cols; col++) {
+            // circular shift
+            rot0[currentByte] <<= 1;
+            rot1[currentByte] <<= 1;
+            rot2[currentByte] <<= 1;
+            rot3[currentByte] <<= 1;
+            // set bit
+            rot0[currentByte] |= bits.at<uchar>(row, col);
+            rot1[currentByte] |= bits.at<uchar>(col, bits.cols - 1 - row);
+            rot2[currentByte] |= bits.at<uchar>(bits.rows - 1 - row, bits.cols - 1 - col);
+            rot3[currentByte] |= bits.at<uchar>(bits.rows - 1 - col, row);
+            currentBit++;
+            if(currentBit == 8) {
+                // next byte
+                currentBit = 0;
+                currentByte++;
+            }
+        }
+    }
+    return candidateByteList;
+}
+
+
+Mat Dictionary::getBitsFromByteList(const Mat &byteList, int markerSize) {
+    CV_Assert(byteList.total() > 0 &&
+              byteList.total() >= (unsigned int)markerSize * markerSize / 8 &&
+              byteList.total() <= (unsigned int)markerSize * markerSize / 8 + 1);
+    Mat bits(markerSize, markerSize, CV_8UC1, Scalar::all(0));
+
+    unsigned char base2List[] = { 128, 64, 32, 16, 8, 4, 2, 1 };
+    int currentByteIdx = 0;
+    // we only need the bytes in normal rotation
+    unsigned char currentByte = byteList.ptr()[0];
+    int currentBit = 0;
+    for(int row = 0; row < bits.rows; row++) {
+        for(int col = 0; col < bits.cols; col++) {
+            if(currentByte >= base2List[currentBit]) {
+                bits.at<unsigned char>(row, col) = 1;
+                currentByte -= base2List[currentBit];
+            }
+            currentBit++;
+            if(currentBit == 8) {
+                currentByteIdx++;
+                currentByte = byteList.ptr()[currentByteIdx];
+                // if not enough bits for one more byte, we are in the end
+                // update bit position accordingly
+                if(8 * (currentByteIdx + 1) > (int)bits.total())
+                    currentBit = 8 * (currentByteIdx + 1) - (int)bits.total();
+                else
+                    currentBit = 0; // ok, bits enough for next byte
+            }
+        }
+    }
+    return bits;
+}
+
+
+Dictionary getPredefinedDictionary(PredefinedDictionaryType name) {
+    // DictionaryData constructors calls
+    //    moved out of globals so construted on first use, which allows lazy-loading of opencv dll
+    static const Dictionary DICT_ARUCO_DATA = Dictionary(Mat(1024, (5 * 5 + 7) / 8, CV_8UC4, (uchar*)DICT_ARUCO_BYTES), 5, 0);
+
+    static const Dictionary DICT_4X4_50_DATA = Dictionary(Mat(50, (4 * 4 + 7) / 8, CV_8UC4, (uchar*)DICT_4X4_1000_BYTES), 4, 1);
+    static const Dictionary DICT_4X4_100_DATA = Dictionary(Mat(100, (4 * 4 + 7) / 8, CV_8UC4, (uchar*)DICT_4X4_1000_BYTES), 4, 1);
+    static const Dictionary DICT_4X4_250_DATA = Dictionary(Mat(250, (4 * 4 + 7) / 8, CV_8UC4, (uchar*)DICT_4X4_1000_BYTES), 4, 1);
+    static const Dictionary DICT_4X4_1000_DATA = Dictionary(Mat(1000, (4 * 4 + 7) / 8, CV_8UC4, (uchar*)DICT_4X4_1000_BYTES), 4, 0);
+
+    static const Dictionary DICT_5X5_50_DATA = Dictionary(Mat(50, (5 * 5 + 7) / 8, CV_8UC4, (uchar*)DICT_5X5_1000_BYTES), 5, 3);
+    static const Dictionary DICT_5X5_100_DATA = Dictionary(Mat(100, (5 * 5 + 7) / 8, CV_8UC4, (uchar*)DICT_5X5_1000_BYTES), 5, 3);
+    static const Dictionary DICT_5X5_250_DATA = Dictionary(Mat(250, (5 * 5 + 7) / 8, CV_8UC4, (uchar*)DICT_5X5_1000_BYTES), 5, 2);
+    static const Dictionary DICT_5X5_1000_DATA = Dictionary(Mat(1000, (5 * 5 + 7) / 8, CV_8UC4, (uchar*)DICT_5X5_1000_BYTES), 5, 2);
+
+    static const Dictionary DICT_6X6_50_DATA = Dictionary(Mat(50, (6 * 6 + 7) / 8, CV_8UC4, (uchar*)DICT_6X6_1000_BYTES), 6, 6);
+    static const Dictionary DICT_6X6_100_DATA = Dictionary(Mat(100, (6 * 6 + 7) / 8, CV_8UC4, (uchar*)DICT_6X6_1000_BYTES), 6, 5);
+    static const Dictionary DICT_6X6_250_DATA = Dictionary(Mat(250, (6 * 6 + 7) / 8, CV_8UC4, (uchar*)DICT_6X6_1000_BYTES), 6, 5);
+    static const Dictionary DICT_6X6_1000_DATA = Dictionary(Mat(1000, (6 * 6 + 7) / 8, CV_8UC4, (uchar*)DICT_6X6_1000_BYTES), 6, 4);
+
+    static const Dictionary DICT_7X7_50_DATA = Dictionary(Mat(50, (7 * 7 + 7) / 8, CV_8UC4, (uchar*)DICT_7X7_1000_BYTES), 7, 9);
+    static const Dictionary DICT_7X7_100_DATA = Dictionary(Mat(100, (7 * 7 + 7) / 8, CV_8UC4, (uchar*)DICT_7X7_1000_BYTES), 7, 8);
+    static const Dictionary DICT_7X7_250_DATA = Dictionary(Mat(250, (7 * 7 + 7) / 8, CV_8UC4, (uchar*)DICT_7X7_1000_BYTES), 7, 8);
+    static const Dictionary DICT_7X7_1000_DATA = Dictionary(Mat(1000, (7 * 7 + 7) / 8, CV_8UC4, (uchar*)DICT_7X7_1000_BYTES), 7, 6);
+
+    static const Dictionary DICT_APRILTAG_16h5_DATA = Dictionary(Mat(30, (4 * 4 + 7) / 8, CV_8UC4, (uchar*)DICT_APRILTAG_16h5_BYTES), 4, 0);
+    static const Dictionary DICT_APRILTAG_25h9_DATA = Dictionary(Mat(35, (5 * 5 + 7) / 8, CV_8UC4, (uchar*)DICT_APRILTAG_25h9_BYTES), 5, 0);
+    static const Dictionary DICT_APRILTAG_36h10_DATA = Dictionary(Mat(2320, (6 * 6 + 7) / 8, CV_8UC4, (uchar*)DICT_APRILTAG_36h10_BYTES), 6, 0);
+    static const Dictionary DICT_APRILTAG_36h11_DATA = Dictionary(Mat(587, (6 * 6 + 7) / 8, CV_8UC4, (uchar*)DICT_APRILTAG_36h11_BYTES), 6, 0);
+
+    switch(name) {
+
+    case DICT_ARUCO_ORIGINAL:
+        return Dictionary(DICT_ARUCO_DATA);
+
+    case DICT_4X4_50:
+        return Dictionary(DICT_4X4_50_DATA);
+    case DICT_4X4_100:
+        return Dictionary(DICT_4X4_100_DATA);
+    case DICT_4X4_250:
+        return Dictionary(DICT_4X4_250_DATA);
+    case DICT_4X4_1000:
+        return Dictionary(DICT_4X4_1000_DATA);
+
+    case DICT_5X5_50:
+        return Dictionary(DICT_5X5_50_DATA);
+    case DICT_5X5_100:
+        return Dictionary(DICT_5X5_100_DATA);
+    case DICT_5X5_250:
+        return Dictionary(DICT_5X5_250_DATA);
+    case DICT_5X5_1000:
+        return Dictionary(DICT_5X5_1000_DATA);
+
+    case DICT_6X6_50:
+        return Dictionary(DICT_6X6_50_DATA);
+    case DICT_6X6_100:
+        return Dictionary(DICT_6X6_100_DATA);
+    case DICT_6X6_250:
+        return Dictionary(DICT_6X6_250_DATA);
+    case DICT_6X6_1000:
+        return Dictionary(DICT_6X6_1000_DATA);
+
+    case DICT_7X7_50:
+        return Dictionary(DICT_7X7_50_DATA);
+    case DICT_7X7_100:
+        return Dictionary(DICT_7X7_100_DATA);
+    case DICT_7X7_250:
+        return Dictionary(DICT_7X7_250_DATA);
+    case DICT_7X7_1000:
+        return Dictionary(DICT_7X7_1000_DATA);
+
+    case DICT_APRILTAG_16h5:
+        return Dictionary(DICT_APRILTAG_16h5_DATA);
+    case DICT_APRILTAG_25h9:
+        return Dictionary(DICT_APRILTAG_25h9_DATA);
+    case DICT_APRILTAG_36h10:
+        return Dictionary(DICT_APRILTAG_36h10_DATA);
+    case DICT_APRILTAG_36h11:
+        return Dictionary(DICT_APRILTAG_36h11_DATA);
+
+    }
+    return Dictionary(DICT_4X4_50_DATA);
+}
+
+
+Dictionary getPredefinedDictionary(int dict) {
+    return getPredefinedDictionary(PredefinedDictionaryType(dict));
+}
+
+
+/**
+ * @brief Generates a random marker Mat of size markerSize x markerSize
+ */
+static Mat _generateRandomMarker(int markerSize, RNG &rng) {
+    Mat marker(markerSize, markerSize, CV_8UC1, Scalar::all(0));
+    for(int i = 0; i < markerSize; i++) {
+        for(int j = 0; j < markerSize; j++) {
+            unsigned char bit = (unsigned char) (rng.uniform(0,2));
+            marker.at<unsigned char>(i, j) = bit;
+        }
+    }
+    return marker;
+}
+
+/**
+ * @brief Calculate selfDistance of the codification of a marker Mat. Self distance is the Hamming
+ * distance of the marker to itself in the other rotations.
+ * See S. Garrido-Jurado, R. Muñoz-Salinas, F. J. Madrid-Cuevas, and M. J. Marín-Jiménez. 2014.
+ * "Automatic generation and detection of highly reliable fiducial markers under occlusion".
+ * Pattern Recogn. 47, 6 (June 2014), 2280-2292. DOI=10.1016/j.patcog.2014.01.005
+ */
+static int _getSelfDistance(const Mat &marker) {
+    Mat bytes = Dictionary::getByteListFromBits(marker);
+    int minHamming = (int)marker.total() + 1;
+    for(int r = 1; r < 4; r++) {
+        int currentHamming = cv::hal::normHamming(bytes.ptr(), bytes.ptr() + bytes.cols*r, bytes.cols);
+        if(currentHamming < minHamming) minHamming = currentHamming;
+    }
+    return minHamming;
+}
+
+
+Dictionary extendDictionary(int nMarkers, int markerSize, const Dictionary &baseDictionary, int randomSeed) {
+    RNG rng((uint64)(randomSeed));
+
+    Dictionary out = Dictionary(Mat(), markerSize);
+    out.markerSize = markerSize;
+
+    // theoretical maximum intermarker distance
+    // See S. Garrido-Jurado, R. Muñoz-Salinas, F. J. Madrid-Cuevas, and M. J. Marín-Jiménez. 2014.
+    // "Automatic generation and detection of highly reliable fiducial markers under occlusion".
+    // Pattern Recogn. 47, 6 (June 2014), 2280-2292. DOI=10.1016/j.patcog.2014.01.005
+    int C = (int)std::floor(float(markerSize * markerSize) / 4.f);
+    int tau = 2 * (int)std::floor(float(C) * 4.f / 3.f);
+
+    // if baseDictionary is provided, calculate its intermarker distance
+    if(baseDictionary.bytesList.rows > 0) {
+        CV_Assert(baseDictionary.markerSize == markerSize);
+        out.bytesList = baseDictionary.bytesList.clone();
+
+        int minDistance = markerSize * markerSize + 1;
+        for(int i = 0; i < out.bytesList.rows; i++) {
+            Mat markerBytes = out.bytesList.rowRange(i, i + 1);
+            Mat markerBits = Dictionary::getBitsFromByteList(markerBytes, markerSize);
+            minDistance = min(minDistance, _getSelfDistance(markerBits));
+            for(int j = i + 1; j < out.bytesList.rows; j++) {
+                minDistance = min(minDistance, out.getDistanceToId(markerBits, j));
+            }
+        }
+        tau = minDistance;
+    }
+
+    // current best option
+    int bestTau = 0;
+    Mat bestMarker;
+
+    // after these number of unproductive iterations, the best option is accepted
+    const int maxUnproductiveIterations = 5000;
+    int unproductiveIterations = 0;
+
+    while(out.bytesList.rows < nMarkers) {
+        Mat currentMarker = _generateRandomMarker(markerSize, rng);
+
+        int selfDistance = _getSelfDistance(currentMarker);
+        int minDistance = selfDistance;
+
+        // if self distance is better or equal than current best option, calculate distance
+        // to previous accepted markers
+        if(selfDistance >= bestTau) {
+            for(int i = 0; i < out.bytesList.rows; i++) {
+                int currentDistance = out.getDistanceToId(currentMarker, i);
+                minDistance = min(currentDistance, minDistance);
+                if(minDistance <= bestTau) {
+                    break;
+                }
+            }
+        }
+
+        // if distance is high enough, accept the marker
+        if(minDistance >= tau) {
+            unproductiveIterations = 0;
+            bestTau = 0;
+            Mat bytes = Dictionary::getByteListFromBits(currentMarker);
+            out.bytesList.push_back(bytes);
+        } else {
+            unproductiveIterations++;
+
+            // if distance is not enough, but is better than the current best option
+            if(minDistance > bestTau) {
+                bestTau = minDistance;
+                bestMarker = currentMarker;
+            }
+
+            // if number of unproductive iterarions has been reached, accept the current best option
+            if(unproductiveIterations == maxUnproductiveIterations) {
+                unproductiveIterations = 0;
+                tau = bestTau;
+                bestTau = 0;
+                Mat bytes = Dictionary::getByteListFromBits(bestMarker);
+                out.bytesList.push_back(bytes);
+            }
+        }
+    }
+
+    // update the maximum number of correction bits for the generated dictionary
+    out.maxCorrectionBits = (tau - 1) / 2;
+
+    return out;
+}
+
+}
+}
diff --git a/modules/objdetect/src/aruco/aruco_utils.cpp b/modules/objdetect/src/aruco/aruco_utils.cpp
new file mode 100644 (file)
index 0000000..4c0d2dc
--- /dev/null
@@ -0,0 +1,50 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#include "../precomp.hpp"
+#include "aruco_utils.hpp"
+
+namespace cv {
+namespace aruco {
+using namespace std;
+
+void _copyVector2Output(vector<vector<Point2f> > &vec, OutputArrayOfArrays out, const float scale) {
+    out.create((int)vec.size(), 1, CV_32FC2);
+    if(out.isMatVector()) {
+        for (unsigned int i = 0; i < vec.size(); i++) {
+            out.create(4, 1, CV_32FC2, i);
+            Mat &m = out.getMatRef(i);
+            Mat(Mat(vec[i]).t()*scale).copyTo(m);
+        }
+    }
+    else if(out.isUMatVector()) {
+        for (unsigned int i = 0; i < vec.size(); i++) {
+            out.create(4, 1, CV_32FC2, i);
+            UMat &m = out.getUMatRef(i);
+            Mat(Mat(vec[i]).t()*scale).copyTo(m);
+        }
+    }
+    else if(out.kind() == _OutputArray::STD_VECTOR_VECTOR){
+        for (unsigned int i = 0; i < vec.size(); i++) {
+            out.create(4, 1, CV_32FC2, i);
+            Mat m = out.getMat(i);
+            Mat(Mat(vec[i]).t()*scale).copyTo(m);
+        }
+    }
+    else {
+        CV_Error(cv::Error::StsNotImplemented,
+                 "Only Mat vector, UMat vector, and vector<vector> OutputArrays are currently supported.");
+    }
+}
+
+void _convertToGrey(InputArray _in, OutputArray _out) {
+    CV_Assert(_in.type() == CV_8UC1 || _in.type() == CV_8UC3);
+    if(_in.type() == CV_8UC3)
+        cvtColor(_in, _out, COLOR_BGR2GRAY);
+    else
+        _in.copyTo(_out);
+}
+
+}
+}
diff --git a/modules/objdetect/src/aruco/aruco_utils.hpp b/modules/objdetect/src/aruco/aruco_utils.hpp
new file mode 100644 (file)
index 0000000..e3aa620
--- /dev/null
@@ -0,0 +1,43 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+#ifndef __OPENCV_OBJDETECT_ARUCO_UTILS_HPP__
+#define __OPENCV_OBJDETECT_ARUCO_UTILS_HPP__
+
+#include <opencv2/core.hpp>
+#include <vector>
+
+namespace cv {
+namespace aruco {
+
+/**
+ * @brief Copy the contents of a corners vector to an OutputArray, settings its size.
+ */
+void _copyVector2Output(std::vector<std::vector<Point2f> > &vec, OutputArrayOfArrays out, const float scale = 1.f);
+
+/**
+  * @brief Convert input image to gray if it is a 3-channels image
+  */
+void _convertToGrey(InputArray _in, OutputArray _out);
+
+template<typename T>
+inline bool readParameter(const std::string& name, T& parameter, const FileNode& node)
+{
+    if (!node.empty() && !node[name].empty()) {
+        node[name] >> parameter;
+        return true;
+    }
+    return false;
+}
+
+template<typename T>
+inline bool readWriteParameter(const std::string& name, T& parameter, const FileNode& readNode, FileStorage& writeStorage) {
+    if (!readNode.empty())
+        return readParameter(name, parameter, readNode);
+    writeStorage << name << parameter;
+    return true;
+}
+
+}
+}
+#endif
diff --git a/modules/objdetect/src/aruco/predefined_dictionaries.hpp b/modules/objdetect/src/aruco/predefined_dictionaries.hpp
new file mode 100644 (file)
index 0000000..f343183
--- /dev/null
@@ -0,0 +1,20127 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+namespace {
+
+
+
+/**
+  * Dictionaries are stored as a list of bytes in its four rotations
+  * On each rotation, the marker is divided in bytes assuming a row-major order
+  * This format allows a faster marker identification.
+  * For a dictionary composed by M markers of NxN bits, the structure dimensions should be:
+  * const char name[nMarkers][4rotations][nBytes], or more specifically:
+  * const char name[M][4][ceil(NxN/8)]
+  * The element [i][j][k] represents the k-th byte of the i-th marker in the dictionary
+  * in its j-th rotation.
+  * Each rotation implies a 90 degree rotation of the marker in anticlockwise direction.
+  */
+
+static unsigned char DICT_ARUCO_BYTES[][4][4] = {
+    { { 132, 33, 8, 0 },
+      { 0, 0, 15, 1 },
+      { 8, 66, 16, 1 },
+      { 248, 0, 0, 0 }, },
+    { { 132, 33, 11, 1 },
+      { 8, 66, 15, 1 },
+      { 232, 66, 16, 1 },
+      { 248, 33, 8, 0 }, },
+    { { 132, 33, 4, 1 },
+      { 8, 0, 31, 0 },
+      { 144, 66, 16, 1 },
+      { 124, 0, 8, 0 }, },
+    { { 132, 33, 7, 0 },
+      { 0, 66, 31, 0 },
+      { 112, 66, 16, 1 },
+      { 124, 33, 0, 0 }, },
+    { { 132, 33, 120, 0 },
+      { 16, 132, 15, 1 },
+      { 15, 66, 16, 1 },
+      { 248, 16, 132, 0 }, },
+    { { 132, 33, 123, 1 },
+      { 24, 198, 15, 1 },
+      { 239, 66, 16, 1 },
+      { 248, 49, 140, 0 }, },
+    { { 132, 33, 116, 1 },
+      { 24, 132, 31, 0 },
+      { 151, 66, 16, 1 },
+      { 124, 16, 140, 0 }, },
+    { { 132, 33, 119, 0 },
+      { 16, 198, 31, 0 },
+      { 119, 66, 16, 1 },
+      { 124, 49, 132, 0 }, },
+    { { 132, 32, 152, 0 },
+      { 16, 0, 46, 1 },
+      { 12, 130, 16, 1 },
+      { 186, 0, 4, 0 }, },
+    { { 132, 32, 155, 1 },
+      { 24, 66, 46, 1 },
+      { 236, 130, 16, 1 },
+      { 186, 33, 12, 0 }, },
+    { { 132, 32, 148, 1 },
+      { 24, 0, 62, 0 },
+      { 148, 130, 16, 1 },
+      { 62, 0, 12, 0 }, },
+    { { 132, 32, 151, 0 },
+      { 16, 66, 62, 0 },
+      { 116, 130, 16, 1 },
+      { 62, 33, 4, 0 }, },
+    { { 132, 32, 232, 0 },
+      { 0, 132, 46, 1 },
+      { 11, 130, 16, 1 },
+      { 186, 16, 128, 0 }, },
+    { { 132, 32, 235, 1 },
+      { 8, 198, 46, 1 },
+      { 235, 130, 16, 1 },
+      { 186, 49, 136, 0 }, },
+    { { 132, 32, 228, 1 },
+      { 8, 132, 62, 0 },
+      { 147, 130, 16, 1 },
+      { 62, 16, 136, 0 }, },
+    { { 132, 32, 231, 0 },
+      { 0, 198, 62, 0 },
+      { 115, 130, 16, 1 },
+      { 62, 49, 128, 0 }, },
+    { { 132, 47, 8, 0 },
+      { 33, 8, 15, 1 },
+      { 8, 122, 16, 1 },
+      { 248, 8, 66, 0 }, },
+    { { 132, 47, 11, 1 },
+      { 41, 74, 15, 1 },
+      { 232, 122, 16, 1 },
+      { 248, 41, 74, 0 }, },
+    { { 132, 47, 4, 1 },
+      { 41, 8, 31, 0 },
+      { 144, 122, 16, 1 },
+      { 124, 8, 74, 0 }, },
+    { { 132, 47, 7, 0 },
+      { 33, 74, 31, 0 },
+      { 112, 122, 16, 1 },
+      { 124, 41, 66, 0 }, },
+    { { 132, 47, 120, 0 },
+      { 49, 140, 15, 1 },
+      { 15, 122, 16, 1 },
+      { 248, 24, 198, 0 }, },
+    { { 132, 47, 123, 1 },
+      { 57, 206, 15, 1 },
+      { 239, 122, 16, 1 },
+      { 248, 57, 206, 0 }, },
+    { { 132, 47, 116, 1 },
+      { 57, 140, 31, 0 },
+      { 151, 122, 16, 1 },
+      { 124, 24, 206, 0 }, },
+    { { 132, 47, 119, 0 },
+      { 49, 206, 31, 0 },
+      { 119, 122, 16, 1 },
+      { 124, 57, 198, 0 }, },
+    { { 132, 46, 152, 0 },
+      { 49, 8, 46, 1 },
+      { 12, 186, 16, 1 },
+      { 186, 8, 70, 0 }, },
+    { { 132, 46, 155, 1 },
+      { 57, 74, 46, 1 },
+      { 236, 186, 16, 1 },
+      { 186, 41, 78, 0 }, },
+    { { 132, 46, 148, 1 },
+      { 57, 8, 62, 0 },
+      { 148, 186, 16, 1 },
+      { 62, 8, 78, 0 }, },
+    { { 132, 46, 151, 0 },
+      { 49, 74, 62, 0 },
+      { 116, 186, 16, 1 },
+      { 62, 41, 70, 0 }, },
+    { { 132, 46, 232, 0 },
+      { 33, 140, 46, 1 },
+      { 11, 186, 16, 1 },
+      { 186, 24, 194, 0 }, },
+    { { 132, 46, 235, 1 },
+      { 41, 206, 46, 1 },
+      { 235, 186, 16, 1 },
+      { 186, 57, 202, 0 }, },
+    { { 132, 46, 228, 1 },
+      { 41, 140, 62, 0 },
+      { 147, 186, 16, 1 },
+      { 62, 24, 202, 0 }, },
+    { { 132, 46, 231, 0 },
+      { 33, 206, 62, 0 },
+      { 115, 186, 16, 1 },
+      { 62, 57, 194, 0 }, },
+    { { 132, 19, 8, 0 },
+      { 32, 0, 77, 1 },
+      { 8, 100, 16, 1 },
+      { 217, 0, 2, 0 }, },
+    { { 132, 19, 11, 1 },
+      { 40, 66, 77, 1 },
+      { 232, 100, 16, 1 },
+      { 217, 33, 10, 0 }, },
+    { { 132, 19, 4, 1 },
+      { 40, 0, 93, 0 },
+      { 144, 100, 16, 1 },
+      { 93, 0, 10, 0 }, },
+    { { 132, 19, 7, 0 },
+      { 32, 66, 93, 0 },
+      { 112, 100, 16, 1 },
+      { 93, 33, 2, 0 }, },
+    { { 132, 19, 120, 0 },
+      { 48, 132, 77, 1 },
+      { 15, 100, 16, 1 },
+      { 217, 16, 134, 0 }, },
+    { { 132, 19, 123, 1 },
+      { 56, 198, 77, 1 },
+      { 239, 100, 16, 1 },
+      { 217, 49, 142, 0 }, },
+    { { 132, 19, 116, 1 },
+      { 56, 132, 93, 0 },
+      { 151, 100, 16, 1 },
+      { 93, 16, 142, 0 }, },
+    { { 132, 19, 119, 0 },
+      { 48, 198, 93, 0 },
+      { 119, 100, 16, 1 },
+      { 93, 49, 134, 0 }, },
+    { { 132, 18, 152, 0 },
+      { 48, 0, 108, 1 },
+      { 12, 164, 16, 1 },
+      { 155, 0, 6, 0 }, },
+    { { 132, 18, 155, 1 },
+      { 56, 66, 108, 1 },
+      { 236, 164, 16, 1 },
+      { 155, 33, 14, 0 }, },
+    { { 132, 18, 148, 1 },
+      { 56, 0, 124, 0 },
+      { 148, 164, 16, 1 },
+      { 31, 0, 14, 0 }, },
+    { { 132, 18, 151, 0 },
+      { 48, 66, 124, 0 },
+      { 116, 164, 16, 1 },
+      { 31, 33, 6, 0 }, },
+    { { 132, 18, 232, 0 },
+      { 32, 132, 108, 1 },
+      { 11, 164, 16, 1 },
+      { 155, 16, 130, 0 }, },
+    { { 132, 18, 235, 1 },
+      { 40, 198, 108, 1 },
+      { 235, 164, 16, 1 },
+      { 155, 49, 138, 0 }, },
+    { { 132, 18, 228, 1 },
+      { 40, 132, 124, 0 },
+      { 147, 164, 16, 1 },
+      { 31, 16, 138, 0 }, },
+    { { 132, 18, 231, 0 },
+      { 32, 198, 124, 0 },
+      { 115, 164, 16, 1 },
+      { 31, 49, 130, 0 }, },
+    { { 132, 29, 8, 0 },
+      { 1, 8, 77, 1 },
+      { 8, 92, 16, 1 },
+      { 217, 8, 64, 0 }, },
+    { { 132, 29, 11, 1 },
+      { 9, 74, 77, 1 },
+      { 232, 92, 16, 1 },
+      { 217, 41, 72, 0 }, },
+    { { 132, 29, 4, 1 },
+      { 9, 8, 93, 0 },
+      { 144, 92, 16, 1 },
+      { 93, 8, 72, 0 }, },
+    { { 132, 29, 7, 0 },
+      { 1, 74, 93, 0 },
+      { 112, 92, 16, 1 },
+      { 93, 41, 64, 0 }, },
+    { { 132, 29, 120, 0 },
+      { 17, 140, 77, 1 },
+      { 15, 92, 16, 1 },
+      { 217, 24, 196, 0 }, },
+    { { 132, 29, 123, 1 },
+      { 25, 206, 77, 1 },
+      { 239, 92, 16, 1 },
+      { 217, 57, 204, 0 }, },
+    { { 132, 29, 116, 1 },
+      { 25, 140, 93, 0 },
+      { 151, 92, 16, 1 },
+      { 93, 24, 204, 0 }, },
+    { { 132, 29, 119, 0 },
+      { 17, 206, 93, 0 },
+      { 119, 92, 16, 1 },
+      { 93, 57, 196, 0 }, },
+    { { 132, 28, 152, 0 },
+      { 17, 8, 108, 1 },
+      { 12, 156, 16, 1 },
+      { 155, 8, 68, 0 }, },
+    { { 132, 28, 155, 1 },
+      { 25, 74, 108, 1 },
+      { 236, 156, 16, 1 },
+      { 155, 41, 76, 0 }, },
+    { { 132, 28, 148, 1 },
+      { 25, 8, 124, 0 },
+      { 148, 156, 16, 1 },
+      { 31, 8, 76, 0 }, },
+    { { 132, 28, 151, 0 },
+      { 17, 74, 124, 0 },
+      { 116, 156, 16, 1 },
+      { 31, 41, 68, 0 }, },
+    { { 132, 28, 232, 0 },
+      { 1, 140, 108, 1 },
+      { 11, 156, 16, 1 },
+      { 155, 24, 192, 0 }, },
+    { { 132, 28, 235, 1 },
+      { 9, 206, 108, 1 },
+      { 235, 156, 16, 1 },
+      { 155, 57, 200, 0 }, },
+    { { 132, 28, 228, 1 },
+      { 9, 140, 124, 0 },
+      { 147, 156, 16, 1 },
+      { 31, 24, 200, 0 }, },
+    { { 132, 28, 231, 0 },
+      { 1, 206, 124, 0 },
+      { 115, 156, 16, 1 },
+      { 31, 57, 192, 0 }, },
+    { { 133, 225, 8, 0 },
+      { 66, 16, 15, 1 },
+      { 8, 67, 208, 1 },
+      { 248, 4, 33, 0 }, },
+    { { 133, 225, 11, 1 },
+      { 74, 82, 15, 1 },
+      { 232, 67, 208, 1 },
+      { 248, 37, 41, 0 }, },
+    { { 133, 225, 4, 1 },
+      { 74, 16, 31, 0 },
+      { 144, 67, 208, 1 },
+      { 124, 4, 41, 0 }, },
+    { { 133, 225, 7, 0 },
+      { 66, 82, 31, 0 },
+      { 112, 67, 208, 1 },
+      { 124, 37, 33, 0 }, },
+    { { 133, 225, 120, 0 },
+      { 82, 148, 15, 1 },
+      { 15, 67, 208, 1 },
+      { 248, 20, 165, 0 }, },
+    { { 133, 225, 123, 1 },
+      { 90, 214, 15, 1 },
+      { 239, 67, 208, 1 },
+      { 248, 53, 173, 0 }, },
+    { { 133, 225, 116, 1 },
+      { 90, 148, 31, 0 },
+      { 151, 67, 208, 1 },
+      { 124, 20, 173, 0 }, },
+    { { 133, 225, 119, 0 },
+      { 82, 214, 31, 0 },
+      { 119, 67, 208, 1 },
+      { 124, 53, 165, 0 }, },
+    { { 133, 224, 152, 0 },
+      { 82, 16, 46, 1 },
+      { 12, 131, 208, 1 },
+      { 186, 4, 37, 0 }, },
+    { { 133, 224, 155, 1 },
+      { 90, 82, 46, 1 },
+      { 236, 131, 208, 1 },
+      { 186, 37, 45, 0 }, },
+    { { 133, 224, 148, 1 },
+      { 90, 16, 62, 0 },
+      { 148, 131, 208, 1 },
+      { 62, 4, 45, 0 }, },
+    { { 133, 224, 151, 0 },
+      { 82, 82, 62, 0 },
+      { 116, 131, 208, 1 },
+      { 62, 37, 37, 0 }, },
+    { { 133, 224, 232, 0 },
+      { 66, 148, 46, 1 },
+      { 11, 131, 208, 1 },
+      { 186, 20, 161, 0 }, },
+    { { 133, 224, 235, 1 },
+      { 74, 214, 46, 1 },
+      { 235, 131, 208, 1 },
+      { 186, 53, 169, 0 }, },
+    { { 133, 224, 228, 1 },
+      { 74, 148, 62, 0 },
+      { 147, 131, 208, 1 },
+      { 62, 20, 169, 0 }, },
+    { { 133, 224, 231, 0 },
+      { 66, 214, 62, 0 },
+      { 115, 131, 208, 1 },
+      { 62, 53, 161, 0 }, },
+    { { 133, 239, 8, 0 },
+      { 99, 24, 15, 1 },
+      { 8, 123, 208, 1 },
+      { 248, 12, 99, 0 }, },
+    { { 133, 239, 11, 1 },
+      { 107, 90, 15, 1 },
+      { 232, 123, 208, 1 },
+      { 248, 45, 107, 0 }, },
+    { { 133, 239, 4, 1 },
+      { 107, 24, 31, 0 },
+      { 144, 123, 208, 1 },
+      { 124, 12, 107, 0 }, },
+    { { 133, 239, 7, 0 },
+      { 99, 90, 31, 0 },
+      { 112, 123, 208, 1 },
+      { 124, 45, 99, 0 }, },
+    { { 133, 239, 120, 0 },
+      { 115, 156, 15, 1 },
+      { 15, 123, 208, 1 },
+      { 248, 28, 231, 0 }, },
+    { { 133, 239, 123, 1 },
+      { 123, 222, 15, 1 },
+      { 239, 123, 208, 1 },
+      { 248, 61, 239, 0 }, },
+    { { 133, 239, 116, 1 },
+      { 123, 156, 31, 0 },
+      { 151, 123, 208, 1 },
+      { 124, 28, 239, 0 }, },
+    { { 133, 239, 119, 0 },
+      { 115, 222, 31, 0 },
+      { 119, 123, 208, 1 },
+      { 124, 61, 231, 0 }, },
+    { { 133, 238, 152, 0 },
+      { 115, 24, 46, 1 },
+      { 12, 187, 208, 1 },
+      { 186, 12, 103, 0 }, },
+    { { 133, 238, 155, 1 },
+      { 123, 90, 46, 1 },
+      { 236, 187, 208, 1 },
+      { 186, 45, 111, 0 }, },
+    { { 133, 238, 148, 1 },
+      { 123, 24, 62, 0 },
+      { 148, 187, 208, 1 },
+      { 62, 12, 111, 0 }, },
+    { { 133, 238, 151, 0 },
+      { 115, 90, 62, 0 },
+      { 116, 187, 208, 1 },
+      { 62, 45, 103, 0 }, },
+    { { 133, 238, 232, 0 },
+      { 99, 156, 46, 1 },
+      { 11, 187, 208, 1 },
+      { 186, 28, 227, 0 }, },
+    { { 133, 238, 235, 1 },
+      { 107, 222, 46, 1 },
+      { 235, 187, 208, 1 },
+      { 186, 61, 235, 0 }, },
+    { { 133, 238, 228, 1 },
+      { 107, 156, 62, 0 },
+      { 147, 187, 208, 1 },
+      { 62, 28, 235, 0 }, },
+    { { 133, 238, 231, 0 },
+      { 99, 222, 62, 0 },
+      { 115, 187, 208, 1 },
+      { 62, 61, 227, 0 }, },
+    { { 133, 211, 8, 0 },
+      { 98, 16, 77, 1 },
+      { 8, 101, 208, 1 },
+      { 217, 4, 35, 0 }, },
+    { { 133, 211, 11, 1 },
+      { 106, 82, 77, 1 },
+      { 232, 101, 208, 1 },
+      { 217, 37, 43, 0 }, },
+    { { 133, 211, 4, 1 },
+      { 106, 16, 93, 0 },
+      { 144, 101, 208, 1 },
+      { 93, 4, 43, 0 }, },
+    { { 133, 211, 7, 0 },
+      { 98, 82, 93, 0 },
+      { 112, 101, 208, 1 },
+      { 93, 37, 35, 0 }, },
+    { { 133, 211, 120, 0 },
+      { 114, 148, 77, 1 },
+      { 15, 101, 208, 1 },
+      { 217, 20, 167, 0 }, },
+    { { 133, 211, 123, 1 },
+      { 122, 214, 77, 1 },
+      { 239, 101, 208, 1 },
+      { 217, 53, 175, 0 }, },
+    { { 133, 211, 116, 1 },
+      { 122, 148, 93, 0 },
+      { 151, 101, 208, 1 },
+      { 93, 20, 175, 0 }, },
+    { { 133, 211, 119, 0 },
+      { 114, 214, 93, 0 },
+      { 119, 101, 208, 1 },
+      { 93, 53, 167, 0 }, },
+    { { 133, 210, 152, 0 },
+      { 114, 16, 108, 1 },
+      { 12, 165, 208, 1 },
+      { 155, 4, 39, 0 }, },
+    { { 133, 210, 155, 1 },
+      { 122, 82, 108, 1 },
+      { 236, 165, 208, 1 },
+      { 155, 37, 47, 0 }, },
+    { { 133, 210, 148, 1 },
+      { 122, 16, 124, 0 },
+      { 148, 165, 208, 1 },
+      { 31, 4, 47, 0 }, },
+    { { 133, 210, 151, 0 },
+      { 114, 82, 124, 0 },
+      { 116, 165, 208, 1 },
+      { 31, 37, 39, 0 }, },
+    { { 133, 210, 232, 0 },
+      { 98, 148, 108, 1 },
+      { 11, 165, 208, 1 },
+      { 155, 20, 163, 0 }, },
+    { { 133, 210, 235, 1 },
+      { 106, 214, 108, 1 },
+      { 235, 165, 208, 1 },
+      { 155, 53, 171, 0 }, },
+    { { 133, 210, 228, 1 },
+      { 106, 148, 124, 0 },
+      { 147, 165, 208, 1 },
+      { 31, 20, 171, 0 }, },
+    { { 133, 210, 231, 0 },
+      { 98, 214, 124, 0 },
+      { 115, 165, 208, 1 },
+      { 31, 53, 163, 0 }, },
+    { { 133, 221, 8, 0 },
+      { 67, 24, 77, 1 },
+      { 8, 93, 208, 1 },
+      { 217, 12, 97, 0 }, },
+    { { 133, 221, 11, 1 },
+      { 75, 90, 77, 1 },
+      { 232, 93, 208, 1 },
+      { 217, 45, 105, 0 }, },
+    { { 133, 221, 4, 1 },
+      { 75, 24, 93, 0 },
+      { 144, 93, 208, 1 },
+      { 93, 12, 105, 0 }, },
+    { { 133, 221, 7, 0 },
+      { 67, 90, 93, 0 },
+      { 112, 93, 208, 1 },
+      { 93, 45, 97, 0 }, },
+    { { 133, 221, 120, 0 },
+      { 83, 156, 77, 1 },
+      { 15, 93, 208, 1 },
+      { 217, 28, 229, 0 }, },
+    { { 133, 221, 123, 1 },
+      { 91, 222, 77, 1 },
+      { 239, 93, 208, 1 },
+      { 217, 61, 237, 0 }, },
+    { { 133, 221, 116, 1 },
+      { 91, 156, 93, 0 },
+      { 151, 93, 208, 1 },
+      { 93, 28, 237, 0 }, },
+    { { 133, 221, 119, 0 },
+      { 83, 222, 93, 0 },
+      { 119, 93, 208, 1 },
+      { 93, 61, 229, 0 }, },
+    { { 133, 220, 152, 0 },
+      { 83, 24, 108, 1 },
+      { 12, 157, 208, 1 },
+      { 155, 12, 101, 0 }, },
+    { { 133, 220, 155, 1 },
+      { 91, 90, 108, 1 },
+      { 236, 157, 208, 1 },
+      { 155, 45, 109, 0 }, },
+    { { 133, 220, 148, 1 },
+      { 91, 24, 124, 0 },
+      { 148, 157, 208, 1 },
+      { 31, 12, 109, 0 }, },
+    { { 133, 220, 151, 0 },
+      { 83, 90, 124, 0 },
+      { 116, 157, 208, 1 },
+      { 31, 45, 101, 0 }, },
+    { { 133, 220, 232, 0 },
+      { 67, 156, 108, 1 },
+      { 11, 157, 208, 1 },
+      { 155, 28, 225, 0 }, },
+    { { 133, 220, 235, 1 },
+      { 75, 222, 108, 1 },
+      { 235, 157, 208, 1 },
+      { 155, 61, 233, 0 }, },
+    { { 133, 220, 228, 1 },
+      { 75, 156, 124, 0 },
+      { 147, 157, 208, 1 },
+      { 31, 28, 233, 0 }, },
+    { { 133, 220, 231, 0 },
+      { 67, 222, 124, 0 },
+      { 115, 157, 208, 1 },
+      { 31, 61, 225, 0 }, },
+    { { 130, 97, 8, 0 },
+      { 64, 0, 139, 1 },
+      { 8, 67, 32, 1 },
+      { 232, 128, 1, 0 }, },
+    { { 130, 97, 11, 1 },
+      { 72, 66, 139, 1 },
+      { 232, 67, 32, 1 },
+      { 232, 161, 9, 0 }, },
+    { { 130, 97, 4, 1 },
+      { 72, 0, 155, 0 },
+      { 144, 67, 32, 1 },
+      { 108, 128, 9, 0 }, },
+    { { 130, 97, 7, 0 },
+      { 64, 66, 155, 0 },
+      { 112, 67, 32, 1 },
+      { 108, 161, 1, 0 }, },
+    { { 130, 97, 120, 0 },
+      { 80, 132, 139, 1 },
+      { 15, 67, 32, 1 },
+      { 232, 144, 133, 0 }, },
+    { { 130, 97, 123, 1 },
+      { 88, 198, 139, 1 },
+      { 239, 67, 32, 1 },
+      { 232, 177, 141, 0 }, },
+    { { 130, 97, 116, 1 },
+      { 88, 132, 155, 0 },
+      { 151, 67, 32, 1 },
+      { 108, 144, 141, 0 }, },
+    { { 130, 97, 119, 0 },
+      { 80, 198, 155, 0 },
+      { 119, 67, 32, 1 },
+      { 108, 177, 133, 0 }, },
+    { { 130, 96, 152, 0 },
+      { 80, 0, 170, 1 },
+      { 12, 131, 32, 1 },
+      { 170, 128, 5, 0 }, },
+    { { 130, 96, 155, 1 },
+      { 88, 66, 170, 1 },
+      { 236, 131, 32, 1 },
+      { 170, 161, 13, 0 }, },
+    { { 130, 96, 148, 1 },
+      { 88, 0, 186, 0 },
+      { 148, 131, 32, 1 },
+      { 46, 128, 13, 0 }, },
+    { { 130, 96, 151, 0 },
+      { 80, 66, 186, 0 },
+      { 116, 131, 32, 1 },
+      { 46, 161, 5, 0 }, },
+    { { 130, 96, 232, 0 },
+      { 64, 132, 170, 1 },
+      { 11, 131, 32, 1 },
+      { 170, 144, 129, 0 }, },
+    { { 130, 96, 235, 1 },
+      { 72, 198, 170, 1 },
+      { 235, 131, 32, 1 },
+      { 170, 177, 137, 0 }, },
+    { { 130, 96, 228, 1 },
+      { 72, 132, 186, 0 },
+      { 147, 131, 32, 1 },
+      { 46, 144, 137, 0 }, },
+    { { 130, 96, 231, 0 },
+      { 64, 198, 186, 0 },
+      { 115, 131, 32, 1 },
+      { 46, 177, 129, 0 }, },
+    { { 130, 111, 8, 0 },
+      { 97, 8, 139, 1 },
+      { 8, 123, 32, 1 },
+      { 232, 136, 67, 0 }, },
+    { { 130, 111, 11, 1 },
+      { 105, 74, 139, 1 },
+      { 232, 123, 32, 1 },
+      { 232, 169, 75, 0 }, },
+    { { 130, 111, 4, 1 },
+      { 105, 8, 155, 0 },
+      { 144, 123, 32, 1 },
+      { 108, 136, 75, 0 }, },
+    { { 130, 111, 7, 0 },
+      { 97, 74, 155, 0 },
+      { 112, 123, 32, 1 },
+      { 108, 169, 67, 0 }, },
+    { { 130, 111, 120, 0 },
+      { 113, 140, 139, 1 },
+      { 15, 123, 32, 1 },
+      { 232, 152, 199, 0 }, },
+    { { 130, 111, 123, 1 },
+      { 121, 206, 139, 1 },
+      { 239, 123, 32, 1 },
+      { 232, 185, 207, 0 }, },
+    { { 130, 111, 116, 1 },
+      { 121, 140, 155, 0 },
+      { 151, 123, 32, 1 },
+      { 108, 152, 207, 0 }, },
+    { { 130, 111, 119, 0 },
+      { 113, 206, 155, 0 },
+      { 119, 123, 32, 1 },
+      { 108, 185, 199, 0 }, },
+    { { 130, 110, 152, 0 },
+      { 113, 8, 170, 1 },
+      { 12, 187, 32, 1 },
+      { 170, 136, 71, 0 }, },
+    { { 130, 110, 155, 1 },
+      { 121, 74, 170, 1 },
+      { 236, 187, 32, 1 },
+      { 170, 169, 79, 0 }, },
+    { { 130, 110, 148, 1 },
+      { 121, 8, 186, 0 },
+      { 148, 187, 32, 1 },
+      { 46, 136, 79, 0 }, },
+    { { 130, 110, 151, 0 },
+      { 113, 74, 186, 0 },
+      { 116, 187, 32, 1 },
+      { 46, 169, 71, 0 }, },
+    { { 130, 110, 232, 0 },
+      { 97, 140, 170, 1 },
+      { 11, 187, 32, 1 },
+      { 170, 152, 195, 0 }, },
+    { { 130, 110, 235, 1 },
+      { 105, 206, 170, 1 },
+      { 235, 187, 32, 1 },
+      { 170, 185, 203, 0 }, },
+    { { 130, 110, 228, 1 },
+      { 105, 140, 186, 0 },
+      { 147, 187, 32, 1 },
+      { 46, 152, 203, 0 }, },
+    { { 130, 110, 231, 0 },
+      { 97, 206, 186, 0 },
+      { 115, 187, 32, 1 },
+      { 46, 185, 195, 0 }, },
+    { { 130, 83, 8, 0 },
+      { 96, 0, 201, 1 },
+      { 8, 101, 32, 1 },
+      { 201, 128, 3, 0 }, },
+    { { 130, 83, 11, 1 },
+      { 104, 66, 201, 1 },
+      { 232, 101, 32, 1 },
+      { 201, 161, 11, 0 }, },
+    { { 130, 83, 4, 1 },
+      { 104, 0, 217, 0 },
+      { 144, 101, 32, 1 },
+      { 77, 128, 11, 0 }, },
+    { { 130, 83, 7, 0 },
+      { 96, 66, 217, 0 },
+      { 112, 101, 32, 1 },
+      { 77, 161, 3, 0 }, },
+    { { 130, 83, 120, 0 },
+      { 112, 132, 201, 1 },
+      { 15, 101, 32, 1 },
+      { 201, 144, 135, 0 }, },
+    { { 130, 83, 123, 1 },
+      { 120, 198, 201, 1 },
+      { 239, 101, 32, 1 },
+      { 201, 177, 143, 0 }, },
+    { { 130, 83, 116, 1 },
+      { 120, 132, 217, 0 },
+      { 151, 101, 32, 1 },
+      { 77, 144, 143, 0 }, },
+    { { 130, 83, 119, 0 },
+      { 112, 198, 217, 0 },
+      { 119, 101, 32, 1 },
+      { 77, 177, 135, 0 }, },
+    { { 130, 82, 152, 0 },
+      { 112, 0, 232, 1 },
+      { 12, 165, 32, 1 },
+      { 139, 128, 7, 0 }, },
+    { { 130, 82, 155, 1 },
+      { 120, 66, 232, 1 },
+      { 236, 165, 32, 1 },
+      { 139, 161, 15, 0 }, },
+    { { 130, 82, 148, 1 },
+      { 120, 0, 248, 0 },
+      { 148, 165, 32, 1 },
+      { 15, 128, 15, 0 }, },
+    { { 130, 82, 151, 0 },
+      { 112, 66, 248, 0 },
+      { 116, 165, 32, 1 },
+      { 15, 161, 7, 0 }, },
+    { { 130, 82, 232, 0 },
+      { 96, 132, 232, 1 },
+      { 11, 165, 32, 1 },
+      { 139, 144, 131, 0 }, },
+    { { 130, 82, 235, 1 },
+      { 104, 198, 232, 1 },
+      { 235, 165, 32, 1 },
+      { 139, 177, 139, 0 }, },
+    { { 130, 82, 228, 1 },
+      { 104, 132, 248, 0 },
+      { 147, 165, 32, 1 },
+      { 15, 144, 139, 0 }, },
+    { { 130, 82, 231, 0 },
+      { 96, 198, 248, 0 },
+      { 115, 165, 32, 1 },
+      { 15, 177, 131, 0 }, },
+    { { 130, 93, 8, 0 },
+      { 65, 8, 201, 1 },
+      { 8, 93, 32, 1 },
+      { 201, 136, 65, 0 }, },
+    { { 130, 93, 11, 1 },
+      { 73, 74, 201, 1 },
+      { 232, 93, 32, 1 },
+      { 201, 169, 73, 0 }, },
+    { { 130, 93, 4, 1 },
+      { 73, 8, 217, 0 },
+      { 144, 93, 32, 1 },
+      { 77, 136, 73, 0 }, },
+    { { 130, 93, 7, 0 },
+      { 65, 74, 217, 0 },
+      { 112, 93, 32, 1 },
+      { 77, 169, 65, 0 }, },
+    { { 130, 93, 120, 0 },
+      { 81, 140, 201, 1 },
+      { 15, 93, 32, 1 },
+      { 201, 152, 197, 0 }, },
+    { { 130, 93, 123, 1 },
+      { 89, 206, 201, 1 },
+      { 239, 93, 32, 1 },
+      { 201, 185, 205, 0 }, },
+    { { 130, 93, 116, 1 },
+      { 89, 140, 217, 0 },
+      { 151, 93, 32, 1 },
+      { 77, 152, 205, 0 }, },
+    { { 130, 93, 119, 0 },
+      { 81, 206, 217, 0 },
+      { 119, 93, 32, 1 },
+      { 77, 185, 197, 0 }, },
+    { { 130, 92, 152, 0 },
+      { 81, 8, 232, 1 },
+      { 12, 157, 32, 1 },
+      { 139, 136, 69, 0 }, },
+    { { 130, 92, 155, 1 },
+      { 89, 74, 232, 1 },
+      { 236, 157, 32, 1 },
+      { 139, 169, 77, 0 }, },
+    { { 130, 92, 148, 1 },
+      { 89, 8, 248, 0 },
+      { 148, 157, 32, 1 },
+      { 15, 136, 77, 0 }, },
+    { { 130, 92, 151, 0 },
+      { 81, 74, 248, 0 },
+      { 116, 157, 32, 1 },
+      { 15, 169, 69, 0 }, },
+    { { 130, 92, 232, 0 },
+      { 65, 140, 232, 1 },
+      { 11, 157, 32, 1 },
+      { 139, 152, 193, 0 }, },
+    { { 130, 92, 235, 1 },
+      { 73, 206, 232, 1 },
+      { 235, 157, 32, 1 },
+      { 139, 185, 201, 0 }, },
+    { { 130, 92, 228, 1 },
+      { 73, 140, 248, 0 },
+      { 147, 157, 32, 1 },
+      { 15, 152, 201, 0 }, },
+    { { 130, 92, 231, 0 },
+      { 65, 206, 248, 0 },
+      { 115, 157, 32, 1 },
+      { 15, 185, 193, 0 }, },
+    { { 131, 161, 8, 0 },
+      { 2, 16, 139, 1 },
+      { 8, 66, 224, 1 },
+      { 232, 132, 32, 0 }, },
+    { { 131, 161, 11, 1 },
+      { 10, 82, 139, 1 },
+      { 232, 66, 224, 1 },
+      { 232, 165, 40, 0 }, },
+    { { 131, 161, 4, 1 },
+      { 10, 16, 155, 0 },
+      { 144, 66, 224, 1 },
+      { 108, 132, 40, 0 }, },
+    { { 131, 161, 7, 0 },
+      { 2, 82, 155, 0 },
+      { 112, 66, 224, 1 },
+      { 108, 165, 32, 0 }, },
+    { { 131, 161, 120, 0 },
+      { 18, 148, 139, 1 },
+      { 15, 66, 224, 1 },
+      { 232, 148, 164, 0 }, },
+    { { 131, 161, 123, 1 },
+      { 26, 214, 139, 1 },
+      { 239, 66, 224, 1 },
+      { 232, 181, 172, 0 }, },
+    { { 131, 161, 116, 1 },
+      { 26, 148, 155, 0 },
+      { 151, 66, 224, 1 },
+      { 108, 148, 172, 0 }, },
+    { { 131, 161, 119, 0 },
+      { 18, 214, 155, 0 },
+      { 119, 66, 224, 1 },
+      { 108, 181, 164, 0 }, },
+    { { 131, 160, 152, 0 },
+      { 18, 16, 170, 1 },
+      { 12, 130, 224, 1 },
+      { 170, 132, 36, 0 }, },
+    { { 131, 160, 155, 1 },
+      { 26, 82, 170, 1 },
+      { 236, 130, 224, 1 },
+      { 170, 165, 44, 0 }, },
+    { { 131, 160, 148, 1 },
+      { 26, 16, 186, 0 },
+      { 148, 130, 224, 1 },
+      { 46, 132, 44, 0 }, },
+    { { 131, 160, 151, 0 },
+      { 18, 82, 186, 0 },
+      { 116, 130, 224, 1 },
+      { 46, 165, 36, 0 }, },
+    { { 131, 160, 232, 0 },
+      { 2, 148, 170, 1 },
+      { 11, 130, 224, 1 },
+      { 170, 148, 160, 0 }, },
+    { { 131, 160, 235, 1 },
+      { 10, 214, 170, 1 },
+      { 235, 130, 224, 1 },
+      { 170, 181, 168, 0 }, },
+    { { 131, 160, 228, 1 },
+      { 10, 148, 186, 0 },
+      { 147, 130, 224, 1 },
+      { 46, 148, 168, 0 }, },
+    { { 131, 160, 231, 0 },
+      { 2, 214, 186, 0 },
+      { 115, 130, 224, 1 },
+      { 46, 181, 160, 0 }, },
+    { { 131, 175, 8, 0 },
+      { 35, 24, 139, 1 },
+      { 8, 122, 224, 1 },
+      { 232, 140, 98, 0 }, },
+    { { 131, 175, 11, 1 },
+      { 43, 90, 139, 1 },
+      { 232, 122, 224, 1 },
+      { 232, 173, 106, 0 }, },
+    { { 131, 175, 4, 1 },
+      { 43, 24, 155, 0 },
+      { 144, 122, 224, 1 },
+      { 108, 140, 106, 0 }, },
+    { { 131, 175, 7, 0 },
+      { 35, 90, 155, 0 },
+      { 112, 122, 224, 1 },
+      { 108, 173, 98, 0 }, },
+    { { 131, 175, 120, 0 },
+      { 51, 156, 139, 1 },
+      { 15, 122, 224, 1 },
+      { 232, 156, 230, 0 }, },
+    { { 131, 175, 123, 1 },
+      { 59, 222, 139, 1 },
+      { 239, 122, 224, 1 },
+      { 232, 189, 238, 0 }, },
+    { { 131, 175, 116, 1 },
+      { 59, 156, 155, 0 },
+      { 151, 122, 224, 1 },
+      { 108, 156, 238, 0 }, },
+    { { 131, 175, 119, 0 },
+      { 51, 222, 155, 0 },
+      { 119, 122, 224, 1 },
+      { 108, 189, 230, 0 }, },
+    { { 131, 174, 152, 0 },
+      { 51, 24, 170, 1 },
+      { 12, 186, 224, 1 },
+      { 170, 140, 102, 0 }, },
+    { { 131, 174, 155, 1 },
+      { 59, 90, 170, 1 },
+      { 236, 186, 224, 1 },
+      { 170, 173, 110, 0 }, },
+    { { 131, 174, 148, 1 },
+      { 59, 24, 186, 0 },
+      { 148, 186, 224, 1 },
+      { 46, 140, 110, 0 }, },
+    { { 131, 174, 151, 0 },
+      { 51, 90, 186, 0 },
+      { 116, 186, 224, 1 },
+      { 46, 173, 102, 0 }, },
+    { { 131, 174, 232, 0 },
+      { 35, 156, 170, 1 },
+      { 11, 186, 224, 1 },
+      { 170, 156, 226, 0 }, },
+    { { 131, 174, 235, 1 },
+      { 43, 222, 170, 1 },
+      { 235, 186, 224, 1 },
+      { 170, 189, 234, 0 }, },
+    { { 131, 174, 228, 1 },
+      { 43, 156, 186, 0 },
+      { 147, 186, 224, 1 },
+      { 46, 156, 234, 0 }, },
+    { { 131, 174, 231, 0 },
+      { 35, 222, 186, 0 },
+      { 115, 186, 224, 1 },
+      { 46, 189, 226, 0 }, },
+    { { 131, 147, 8, 0 },
+      { 34, 16, 201, 1 },
+      { 8, 100, 224, 1 },
+      { 201, 132, 34, 0 }, },
+    { { 131, 147, 11, 1 },
+      { 42, 82, 201, 1 },
+      { 232, 100, 224, 1 },
+      { 201, 165, 42, 0 }, },
+    { { 131, 147, 4, 1 },
+      { 42, 16, 217, 0 },
+      { 144, 100, 224, 1 },
+      { 77, 132, 42, 0 }, },
+    { { 131, 147, 7, 0 },
+      { 34, 82, 217, 0 },
+      { 112, 100, 224, 1 },
+      { 77, 165, 34, 0 }, },
+    { { 131, 147, 120, 0 },
+      { 50, 148, 201, 1 },
+      { 15, 100, 224, 1 },
+      { 201, 148, 166, 0 }, },
+    { { 131, 147, 123, 1 },
+      { 58, 214, 201, 1 },
+      { 239, 100, 224, 1 },
+      { 201, 181, 174, 0 }, },
+    { { 131, 147, 116, 1 },
+      { 58, 148, 217, 0 },
+      { 151, 100, 224, 1 },
+      { 77, 148, 174, 0 }, },
+    { { 131, 147, 119, 0 },
+      { 50, 214, 217, 0 },
+      { 119, 100, 224, 1 },
+      { 77, 181, 166, 0 }, },
+    { { 131, 146, 152, 0 },
+      { 50, 16, 232, 1 },
+      { 12, 164, 224, 1 },
+      { 139, 132, 38, 0 }, },
+    { { 131, 146, 155, 1 },
+      { 58, 82, 232, 1 },
+      { 236, 164, 224, 1 },
+      { 139, 165, 46, 0 }, },
+    { { 131, 146, 148, 1 },
+      { 58, 16, 248, 0 },
+      { 148, 164, 224, 1 },
+      { 15, 132, 46, 0 }, },
+    { { 131, 146, 151, 0 },
+      { 50, 82, 248, 0 },
+      { 116, 164, 224, 1 },
+      { 15, 165, 38, 0 }, },
+    { { 131, 146, 232, 0 },
+      { 34, 148, 232, 1 },
+      { 11, 164, 224, 1 },
+      { 139, 148, 162, 0 }, },
+    { { 131, 146, 235, 1 },
+      { 42, 214, 232, 1 },
+      { 235, 164, 224, 1 },
+      { 139, 181, 170, 0 }, },
+    { { 131, 146, 228, 1 },
+      { 42, 148, 248, 0 },
+      { 147, 164, 224, 1 },
+      { 15, 148, 170, 0 }, },
+    { { 131, 146, 231, 0 },
+      { 34, 214, 248, 0 },
+      { 115, 164, 224, 1 },
+      { 15, 181, 162, 0 }, },
+    { { 131, 157, 8, 0 },
+      { 3, 24, 201, 1 },
+      { 8, 92, 224, 1 },
+      { 201, 140, 96, 0 }, },
+    { { 131, 157, 11, 1 },
+      { 11, 90, 201, 1 },
+      { 232, 92, 224, 1 },
+      { 201, 173, 104, 0 }, },
+    { { 131, 157, 4, 1 },
+      { 11, 24, 217, 0 },
+      { 144, 92, 224, 1 },
+      { 77, 140, 104, 0 }, },
+    { { 131, 157, 7, 0 },
+      { 3, 90, 217, 0 },
+      { 112, 92, 224, 1 },
+      { 77, 173, 96, 0 }, },
+    { { 131, 157, 120, 0 },
+      { 19, 156, 201, 1 },
+      { 15, 92, 224, 1 },
+      { 201, 156, 228, 0 }, },
+    { { 131, 157, 123, 1 },
+      { 27, 222, 201, 1 },
+      { 239, 92, 224, 1 },
+      { 201, 189, 236, 0 }, },
+    { { 131, 157, 116, 1 },
+      { 27, 156, 217, 0 },
+      { 151, 92, 224, 1 },
+      { 77, 156, 236, 0 }, },
+    { { 131, 157, 119, 0 },
+      { 19, 222, 217, 0 },
+      { 119, 92, 224, 1 },
+      { 77, 189, 228, 0 }, },
+    { { 131, 156, 152, 0 },
+      { 19, 24, 232, 1 },
+      { 12, 156, 224, 1 },
+      { 139, 140, 100, 0 }, },
+    { { 131, 156, 155, 1 },
+      { 27, 90, 232, 1 },
+      { 236, 156, 224, 1 },
+      { 139, 173, 108, 0 }, },
+    { { 131, 156, 148, 1 },
+      { 27, 24, 248, 0 },
+      { 148, 156, 224, 1 },
+      { 15, 140, 108, 0 }, },
+    { { 131, 156, 151, 0 },
+      { 19, 90, 248, 0 },
+      { 116, 156, 224, 1 },
+      { 15, 173, 100, 0 }, },
+    { { 131, 156, 232, 0 },
+      { 3, 156, 232, 1 },
+      { 11, 156, 224, 1 },
+      { 139, 156, 224, 0 }, },
+    { { 131, 156, 235, 1 },
+      { 11, 222, 232, 1 },
+      { 235, 156, 224, 1 },
+      { 139, 189, 232, 0 }, },
+    { { 131, 156, 228, 1 },
+      { 11, 156, 248, 0 },
+      { 147, 156, 224, 1 },
+      { 15, 156, 232, 0 }, },
+    { { 131, 156, 231, 0 },
+      { 3, 222, 248, 0 },
+      { 115, 156, 224, 1 },
+      { 15, 189, 224, 0 }, },
+    { { 188, 33, 8, 0 },
+      { 132, 32, 15, 1 },
+      { 8, 66, 30, 1 },
+      { 248, 2, 16, 1 }, },
+    { { 188, 33, 11, 1 },
+      { 140, 98, 15, 1 },
+      { 232, 66, 30, 1 },
+      { 248, 35, 24, 1 }, },
+    { { 188, 33, 4, 1 },
+      { 140, 32, 31, 0 },
+      { 144, 66, 30, 1 },
+      { 124, 2, 24, 1 }, },
+    { { 188, 33, 7, 0 },
+      { 132, 98, 31, 0 },
+      { 112, 66, 30, 1 },
+      { 124, 35, 16, 1 }, },
+    { { 188, 33, 120, 0 },
+      { 148, 164, 15, 1 },
+      { 15, 66, 30, 1 },
+      { 248, 18, 148, 1 }, },
+    { { 188, 33, 123, 1 },
+      { 156, 230, 15, 1 },
+      { 239, 66, 30, 1 },
+      { 248, 51, 156, 1 }, },
+    { { 188, 33, 116, 1 },
+      { 156, 164, 31, 0 },
+      { 151, 66, 30, 1 },
+      { 124, 18, 156, 1 }, },
+    { { 188, 33, 119, 0 },
+      { 148, 230, 31, 0 },
+      { 119, 66, 30, 1 },
+      { 124, 51, 148, 1 }, },
+    { { 188, 32, 152, 0 },
+      { 148, 32, 46, 1 },
+      { 12, 130, 30, 1 },
+      { 186, 2, 20, 1 }, },
+    { { 188, 32, 155, 1 },
+      { 156, 98, 46, 1 },
+      { 236, 130, 30, 1 },
+      { 186, 35, 28, 1 }, },
+    { { 188, 32, 148, 1 },
+      { 156, 32, 62, 0 },
+      { 148, 130, 30, 1 },
+      { 62, 2, 28, 1 }, },
+    { { 188, 32, 151, 0 },
+      { 148, 98, 62, 0 },
+      { 116, 130, 30, 1 },
+      { 62, 35, 20, 1 }, },
+    { { 188, 32, 232, 0 },
+      { 132, 164, 46, 1 },
+      { 11, 130, 30, 1 },
+      { 186, 18, 144, 1 }, },
+    { { 188, 32, 235, 1 },
+      { 140, 230, 46, 1 },
+      { 235, 130, 30, 1 },
+      { 186, 51, 152, 1 }, },
+    { { 188, 32, 228, 1 },
+      { 140, 164, 62, 0 },
+      { 147, 130, 30, 1 },
+      { 62, 18, 152, 1 }, },
+    { { 188, 32, 231, 0 },
+      { 132, 230, 62, 0 },
+      { 115, 130, 30, 1 },
+      { 62, 51, 144, 1 }, },
+    { { 188, 47, 8, 0 },
+      { 165, 40, 15, 1 },
+      { 8, 122, 30, 1 },
+      { 248, 10, 82, 1 }, },
+    { { 188, 47, 11, 1 },
+      { 173, 106, 15, 1 },
+      { 232, 122, 30, 1 },
+      { 248, 43, 90, 1 }, },
+    { { 188, 47, 4, 1 },
+      { 173, 40, 31, 0 },
+      { 144, 122, 30, 1 },
+      { 124, 10, 90, 1 }, },
+    { { 188, 47, 7, 0 },
+      { 165, 106, 31, 0 },
+      { 112, 122, 30, 1 },
+      { 124, 43, 82, 1 }, },
+    { { 188, 47, 120, 0 },
+      { 181, 172, 15, 1 },
+      { 15, 122, 30, 1 },
+      { 248, 26, 214, 1 }, },
+    { { 188, 47, 123, 1 },
+      { 189, 238, 15, 1 },
+      { 239, 122, 30, 1 },
+      { 248, 59, 222, 1 }, },
+    { { 188, 47, 116, 1 },
+      { 189, 172, 31, 0 },
+      { 151, 122, 30, 1 },
+      { 124, 26, 222, 1 }, },
+    { { 188, 47, 119, 0 },
+      { 181, 238, 31, 0 },
+      { 119, 122, 30, 1 },
+      { 124, 59, 214, 1 }, },
+    { { 188, 46, 152, 0 },
+      { 181, 40, 46, 1 },
+      { 12, 186, 30, 1 },
+      { 186, 10, 86, 1 }, },
+    { { 188, 46, 155, 1 },
+      { 189, 106, 46, 1 },
+      { 236, 186, 30, 1 },
+      { 186, 43, 94, 1 }, },
+    { { 188, 46, 148, 1 },
+      { 189, 40, 62, 0 },
+      { 148, 186, 30, 1 },
+      { 62, 10, 94, 1 }, },
+    { { 188, 46, 151, 0 },
+      { 181, 106, 62, 0 },
+      { 116, 186, 30, 1 },
+      { 62, 43, 86, 1 }, },
+    { { 188, 46, 232, 0 },
+      { 165, 172, 46, 1 },
+      { 11, 186, 30, 1 },
+      { 186, 26, 210, 1 }, },
+    { { 188, 46, 235, 1 },
+      { 173, 238, 46, 1 },
+      { 235, 186, 30, 1 },
+      { 186, 59, 218, 1 }, },
+    { { 188, 46, 228, 1 },
+      { 173, 172, 62, 0 },
+      { 147, 186, 30, 1 },
+      { 62, 26, 218, 1 }, },
+    { { 188, 46, 231, 0 },
+      { 165, 238, 62, 0 },
+      { 115, 186, 30, 1 },
+      { 62, 59, 210, 1 }, },
+    { { 188, 19, 8, 0 },
+      { 164, 32, 77, 1 },
+      { 8, 100, 30, 1 },
+      { 217, 2, 18, 1 }, },
+    { { 188, 19, 11, 1 },
+      { 172, 98, 77, 1 },
+      { 232, 100, 30, 1 },
+      { 217, 35, 26, 1 }, },
+    { { 188, 19, 4, 1 },
+      { 172, 32, 93, 0 },
+      { 144, 100, 30, 1 },
+      { 93, 2, 26, 1 }, },
+    { { 188, 19, 7, 0 },
+      { 164, 98, 93, 0 },
+      { 112, 100, 30, 1 },
+      { 93, 35, 18, 1 }, },
+    { { 188, 19, 120, 0 },
+      { 180, 164, 77, 1 },
+      { 15, 100, 30, 1 },
+      { 217, 18, 150, 1 }, },
+    { { 188, 19, 123, 1 },
+      { 188, 230, 77, 1 },
+      { 239, 100, 30, 1 },
+      { 217, 51, 158, 1 }, },
+    { { 188, 19, 116, 1 },
+      { 188, 164, 93, 0 },
+      { 151, 100, 30, 1 },
+      { 93, 18, 158, 1 }, },
+    { { 188, 19, 119, 0 },
+      { 180, 230, 93, 0 },
+      { 119, 100, 30, 1 },
+      { 93, 51, 150, 1 }, },
+    { { 188, 18, 152, 0 },
+      { 180, 32, 108, 1 },
+      { 12, 164, 30, 1 },
+      { 155, 2, 22, 1 }, },
+    { { 188, 18, 155, 1 },
+      { 188, 98, 108, 1 },
+      { 236, 164, 30, 1 },
+      { 155, 35, 30, 1 }, },
+    { { 188, 18, 148, 1 },
+      { 188, 32, 124, 0 },
+      { 148, 164, 30, 1 },
+      { 31, 2, 30, 1 }, },
+    { { 188, 18, 151, 0 },
+      { 180, 98, 124, 0 },
+      { 116, 164, 30, 1 },
+      { 31, 35, 22, 1 }, },
+    { { 188, 18, 232, 0 },
+      { 164, 164, 108, 1 },
+      { 11, 164, 30, 1 },
+      { 155, 18, 146, 1 }, },
+    { { 188, 18, 235, 1 },
+      { 172, 230, 108, 1 },
+      { 235, 164, 30, 1 },
+      { 155, 51, 154, 1 }, },
+    { { 188, 18, 228, 1 },
+      { 172, 164, 124, 0 },
+      { 147, 164, 30, 1 },
+      { 31, 18, 154, 1 }, },
+    { { 188, 18, 231, 0 },
+      { 164, 230, 124, 0 },
+      { 115, 164, 30, 1 },
+      { 31, 51, 146, 1 }, },
+    { { 188, 29, 8, 0 },
+      { 133, 40, 77, 1 },
+      { 8, 92, 30, 1 },
+      { 217, 10, 80, 1 }, },
+    { { 188, 29, 11, 1 },
+      { 141, 106, 77, 1 },
+      { 232, 92, 30, 1 },
+      { 217, 43, 88, 1 }, },
+    { { 188, 29, 4, 1 },
+      { 141, 40, 93, 0 },
+      { 144, 92, 30, 1 },
+      { 93, 10, 88, 1 }, },
+    { { 188, 29, 7, 0 },
+      { 133, 106, 93, 0 },
+      { 112, 92, 30, 1 },
+      { 93, 43, 80, 1 }, },
+    { { 188, 29, 120, 0 },
+      { 149, 172, 77, 1 },
+      { 15, 92, 30, 1 },
+      { 217, 26, 212, 1 }, },
+    { { 188, 29, 123, 1 },
+      { 157, 238, 77, 1 },
+      { 239, 92, 30, 1 },
+      { 217, 59, 220, 1 }, },
+    { { 188, 29, 116, 1 },
+      { 157, 172, 93, 0 },
+      { 151, 92, 30, 1 },
+      { 93, 26, 220, 1 }, },
+    { { 188, 29, 119, 0 },
+      { 149, 238, 93, 0 },
+      { 119, 92, 30, 1 },
+      { 93, 59, 212, 1 }, },
+    { { 188, 28, 152, 0 },
+      { 149, 40, 108, 1 },
+      { 12, 156, 30, 1 },
+      { 155, 10, 84, 1 }, },
+    { { 188, 28, 155, 1 },
+      { 157, 106, 108, 1 },
+      { 236, 156, 30, 1 },
+      { 155, 43, 92, 1 }, },
+    { { 188, 28, 148, 1 },
+      { 157, 40, 124, 0 },
+      { 148, 156, 30, 1 },
+      { 31, 10, 92, 1 }, },
+    { { 188, 28, 151, 0 },
+      { 149, 106, 124, 0 },
+      { 116, 156, 30, 1 },
+      { 31, 43, 84, 1 }, },
+    { { 188, 28, 232, 0 },
+      { 133, 172, 108, 1 },
+      { 11, 156, 30, 1 },
+      { 155, 26, 208, 1 }, },
+    { { 188, 28, 235, 1 },
+      { 141, 238, 108, 1 },
+      { 235, 156, 30, 1 },
+      { 155, 59, 216, 1 }, },
+    { { 188, 28, 228, 1 },
+      { 141, 172, 124, 0 },
+      { 147, 156, 30, 1 },
+      { 31, 26, 216, 1 }, },
+    { { 188, 28, 231, 0 },
+      { 133, 238, 124, 0 },
+      { 115, 156, 30, 1 },
+      { 31, 59, 208, 1 }, },
+    { { 189, 225, 8, 0 },
+      { 198, 48, 15, 1 },
+      { 8, 67, 222, 1 },
+      { 248, 6, 49, 1 }, },
+    { { 189, 225, 11, 1 },
+      { 206, 114, 15, 1 },
+      { 232, 67, 222, 1 },
+      { 248, 39, 57, 1 }, },
+    { { 189, 225, 4, 1 },
+      { 206, 48, 31, 0 },
+      { 144, 67, 222, 1 },
+      { 124, 6, 57, 1 }, },
+    { { 189, 225, 7, 0 },
+      { 198, 114, 31, 0 },
+      { 112, 67, 222, 1 },
+      { 124, 39, 49, 1 }, },
+    { { 189, 225, 120, 0 },
+      { 214, 180, 15, 1 },
+      { 15, 67, 222, 1 },
+      { 248, 22, 181, 1 }, },
+    { { 189, 225, 123, 1 },
+      { 222, 246, 15, 1 },
+      { 239, 67, 222, 1 },
+      { 248, 55, 189, 1 }, },
+    { { 189, 225, 116, 1 },
+      { 222, 180, 31, 0 },
+      { 151, 67, 222, 1 },
+      { 124, 22, 189, 1 }, },
+    { { 189, 225, 119, 0 },
+      { 214, 246, 31, 0 },
+      { 119, 67, 222, 1 },
+      { 124, 55, 181, 1 }, },
+    { { 189, 224, 152, 0 },
+      { 214, 48, 46, 1 },
+      { 12, 131, 222, 1 },
+      { 186, 6, 53, 1 }, },
+    { { 189, 224, 155, 1 },
+      { 222, 114, 46, 1 },
+      { 236, 131, 222, 1 },
+      { 186, 39, 61, 1 }, },
+    { { 189, 224, 148, 1 },
+      { 222, 48, 62, 0 },
+      { 148, 131, 222, 1 },
+      { 62, 6, 61, 1 }, },
+    { { 189, 224, 151, 0 },
+      { 214, 114, 62, 0 },
+      { 116, 131, 222, 1 },
+      { 62, 39, 53, 1 }, },
+    { { 189, 224, 232, 0 },
+      { 198, 180, 46, 1 },
+      { 11, 131, 222, 1 },
+      { 186, 22, 177, 1 }, },
+    { { 189, 224, 235, 1 },
+      { 206, 246, 46, 1 },
+      { 235, 131, 222, 1 },
+      { 186, 55, 185, 1 }, },
+    { { 189, 224, 228, 1 },
+      { 206, 180, 62, 0 },
+      { 147, 131, 222, 1 },
+      { 62, 22, 185, 1 }, },
+    { { 189, 224, 231, 0 },
+      { 198, 246, 62, 0 },
+      { 115, 131, 222, 1 },
+      { 62, 55, 177, 1 }, },
+    { { 189, 239, 8, 0 },
+      { 231, 56, 15, 1 },
+      { 8, 123, 222, 1 },
+      { 248, 14, 115, 1 }, },
+    { { 189, 239, 11, 1 },
+      { 239, 122, 15, 1 },
+      { 232, 123, 222, 1 },
+      { 248, 47, 123, 1 }, },
+    { { 189, 239, 4, 1 },
+      { 239, 56, 31, 0 },
+      { 144, 123, 222, 1 },
+      { 124, 14, 123, 1 }, },
+    { { 189, 239, 7, 0 },
+      { 231, 122, 31, 0 },
+      { 112, 123, 222, 1 },
+      { 124, 47, 115, 1 }, },
+    { { 189, 239, 120, 0 },
+      { 247, 188, 15, 1 },
+      { 15, 123, 222, 1 },
+      { 248, 30, 247, 1 }, },
+    { { 189, 239, 123, 1 },
+      { 255, 254, 15, 1 },
+      { 239, 123, 222, 1 },
+      { 248, 63, 255, 1 }, },
+    { { 189, 239, 116, 1 },
+      { 255, 188, 31, 0 },
+      { 151, 123, 222, 1 },
+      { 124, 30, 255, 1 }, },
+    { { 189, 239, 119, 0 },
+      { 247, 254, 31, 0 },
+      { 119, 123, 222, 1 },
+      { 124, 63, 247, 1 }, },
+    { { 189, 238, 152, 0 },
+      { 247, 56, 46, 1 },
+      { 12, 187, 222, 1 },
+      { 186, 14, 119, 1 }, },
+    { { 189, 238, 155, 1 },
+      { 255, 122, 46, 1 },
+      { 236, 187, 222, 1 },
+      { 186, 47, 127, 1 }, },
+    { { 189, 238, 148, 1 },
+      { 255, 56, 62, 0 },
+      { 148, 187, 222, 1 },
+      { 62, 14, 127, 1 }, },
+    { { 189, 238, 151, 0 },
+      { 247, 122, 62, 0 },
+      { 116, 187, 222, 1 },
+      { 62, 47, 119, 1 }, },
+    { { 189, 238, 232, 0 },
+      { 231, 188, 46, 1 },
+      { 11, 187, 222, 1 },
+      { 186, 30, 243, 1 }, },
+    { { 189, 238, 235, 1 },
+      { 239, 254, 46, 1 },
+      { 235, 187, 222, 1 },
+      { 186, 63, 251, 1 }, },
+    { { 189, 238, 228, 1 },
+      { 239, 188, 62, 0 },
+      { 147, 187, 222, 1 },
+      { 62, 30, 251, 1 }, },
+    { { 189, 238, 231, 0 },
+      { 231, 254, 62, 0 },
+      { 115, 187, 222, 1 },
+      { 62, 63, 243, 1 }, },
+    { { 189, 211, 8, 0 },
+      { 230, 48, 77, 1 },
+      { 8, 101, 222, 1 },
+      { 217, 6, 51, 1 }, },
+    { { 189, 211, 11, 1 },
+      { 238, 114, 77, 1 },
+      { 232, 101, 222, 1 },
+      { 217, 39, 59, 1 }, },
+    { { 189, 211, 4, 1 },
+      { 238, 48, 93, 0 },
+      { 144, 101, 222, 1 },
+      { 93, 6, 59, 1 }, },
+    { { 189, 211, 7, 0 },
+      { 230, 114, 93, 0 },
+      { 112, 101, 222, 1 },
+      { 93, 39, 51, 1 }, },
+    { { 189, 211, 120, 0 },
+      { 246, 180, 77, 1 },
+      { 15, 101, 222, 1 },
+      { 217, 22, 183, 1 }, },
+    { { 189, 211, 123, 1 },
+      { 254, 246, 77, 1 },
+      { 239, 101, 222, 1 },
+      { 217, 55, 191, 1 }, },
+    { { 189, 211, 116, 1 },
+      { 254, 180, 93, 0 },
+      { 151, 101, 222, 1 },
+      { 93, 22, 191, 1 }, },
+    { { 189, 211, 119, 0 },
+      { 246, 246, 93, 0 },
+      { 119, 101, 222, 1 },
+      { 93, 55, 183, 1 }, },
+    { { 189, 210, 152, 0 },
+      { 246, 48, 108, 1 },
+      { 12, 165, 222, 1 },
+      { 155, 6, 55, 1 }, },
+    { { 189, 210, 155, 1 },
+      { 254, 114, 108, 1 },
+      { 236, 165, 222, 1 },
+      { 155, 39, 63, 1 }, },
+    { { 189, 210, 148, 1 },
+      { 254, 48, 124, 0 },
+      { 148, 165, 222, 1 },
+      { 31, 6, 63, 1 }, },
+    { { 189, 210, 151, 0 },
+      { 246, 114, 124, 0 },
+      { 116, 165, 222, 1 },
+      { 31, 39, 55, 1 }, },
+    { { 189, 210, 232, 0 },
+      { 230, 180, 108, 1 },
+      { 11, 165, 222, 1 },
+      { 155, 22, 179, 1 }, },
+    { { 189, 210, 235, 1 },
+      { 238, 246, 108, 1 },
+      { 235, 165, 222, 1 },
+      { 155, 55, 187, 1 }, },
+    { { 189, 210, 228, 1 },
+      { 238, 180, 124, 0 },
+      { 147, 165, 222, 1 },
+      { 31, 22, 187, 1 }, },
+    { { 189, 210, 231, 0 },
+      { 230, 246, 124, 0 },
+      { 115, 165, 222, 1 },
+      { 31, 55, 179, 1 }, },
+    { { 189, 221, 8, 0 },
+      { 199, 56, 77, 1 },
+      { 8, 93, 222, 1 },
+      { 217, 14, 113, 1 }, },
+    { { 189, 221, 11, 1 },
+      { 207, 122, 77, 1 },
+      { 232, 93, 222, 1 },
+      { 217, 47, 121, 1 }, },
+    { { 189, 221, 4, 1 },
+      { 207, 56, 93, 0 },
+      { 144, 93, 222, 1 },
+      { 93, 14, 121, 1 }, },
+    { { 189, 221, 7, 0 },
+      { 199, 122, 93, 0 },
+      { 112, 93, 222, 1 },
+      { 93, 47, 113, 1 }, },
+    { { 189, 221, 120, 0 },
+      { 215, 188, 77, 1 },
+      { 15, 93, 222, 1 },
+      { 217, 30, 245, 1 }, },
+    { { 189, 221, 123, 1 },
+      { 223, 254, 77, 1 },
+      { 239, 93, 222, 1 },
+      { 217, 63, 253, 1 }, },
+    { { 189, 221, 116, 1 },
+      { 223, 188, 93, 0 },
+      { 151, 93, 222, 1 },
+      { 93, 30, 253, 1 }, },
+    { { 189, 221, 119, 0 },
+      { 215, 254, 93, 0 },
+      { 119, 93, 222, 1 },
+      { 93, 63, 245, 1 }, },
+    { { 189, 220, 152, 0 },
+      { 215, 56, 108, 1 },
+      { 12, 157, 222, 1 },
+      { 155, 14, 117, 1 }, },
+    { { 189, 220, 155, 1 },
+      { 223, 122, 108, 1 },
+      { 236, 157, 222, 1 },
+      { 155, 47, 125, 1 }, },
+    { { 189, 220, 148, 1 },
+      { 223, 56, 124, 0 },
+      { 148, 157, 222, 1 },
+      { 31, 14, 125, 1 }, },
+    { { 189, 220, 151, 0 },
+      { 215, 122, 124, 0 },
+      { 116, 157, 222, 1 },
+      { 31, 47, 117, 1 }, },
+    { { 189, 220, 232, 0 },
+      { 199, 188, 108, 1 },
+      { 11, 157, 222, 1 },
+      { 155, 30, 241, 1 }, },
+    { { 189, 220, 235, 1 },
+      { 207, 254, 108, 1 },
+      { 235, 157, 222, 1 },
+      { 155, 63, 249, 1 }, },
+    { { 189, 220, 228, 1 },
+      { 207, 188, 124, 0 },
+      { 147, 157, 222, 1 },
+      { 31, 30, 249, 1 }, },
+    { { 189, 220, 231, 0 },
+      { 199, 254, 124, 0 },
+      { 115, 157, 222, 1 },
+      { 31, 63, 241, 1 }, },
+    { { 186, 97, 8, 0 },
+      { 196, 32, 139, 1 },
+      { 8, 67, 46, 1 },
+      { 232, 130, 17, 1 }, },
+    { { 186, 97, 11, 1 },
+      { 204, 98, 139, 1 },
+      { 232, 67, 46, 1 },
+      { 232, 163, 25, 1 }, },
+    { { 186, 97, 4, 1 },
+      { 204, 32, 155, 0 },
+      { 144, 67, 46, 1 },
+      { 108, 130, 25, 1 }, },
+    { { 186, 97, 7, 0 },
+      { 196, 98, 155, 0 },
+      { 112, 67, 46, 1 },
+      { 108, 163, 17, 1 }, },
+    { { 186, 97, 120, 0 },
+      { 212, 164, 139, 1 },
+      { 15, 67, 46, 1 },
+      { 232, 146, 149, 1 }, },
+    { { 186, 97, 123, 1 },
+      { 220, 230, 139, 1 },
+      { 239, 67, 46, 1 },
+      { 232, 179, 157, 1 }, },
+    { { 186, 97, 116, 1 },
+      { 220, 164, 155, 0 },
+      { 151, 67, 46, 1 },
+      { 108, 146, 157, 1 }, },
+    { { 186, 97, 119, 0 },
+      { 212, 230, 155, 0 },
+      { 119, 67, 46, 1 },
+      { 108, 179, 149, 1 }, },
+    { { 186, 96, 152, 0 },
+      { 212, 32, 170, 1 },
+      { 12, 131, 46, 1 },
+      { 170, 130, 21, 1 }, },
+    { { 186, 96, 155, 1 },
+      { 220, 98, 170, 1 },
+      { 236, 131, 46, 1 },
+      { 170, 163, 29, 1 }, },
+    { { 186, 96, 148, 1 },
+      { 220, 32, 186, 0 },
+      { 148, 131, 46, 1 },
+      { 46, 130, 29, 1 }, },
+    { { 186, 96, 151, 0 },
+      { 212, 98, 186, 0 },
+      { 116, 131, 46, 1 },
+      { 46, 163, 21, 1 }, },
+    { { 186, 96, 232, 0 },
+      { 196, 164, 170, 1 },
+      { 11, 131, 46, 1 },
+      { 170, 146, 145, 1 }, },
+    { { 186, 96, 235, 1 },
+      { 204, 230, 170, 1 },
+      { 235, 131, 46, 1 },
+      { 170, 179, 153, 1 }, },
+    { { 186, 96, 228, 1 },
+      { 204, 164, 186, 0 },
+      { 147, 131, 46, 1 },
+      { 46, 146, 153, 1 }, },
+    { { 186, 96, 231, 0 },
+      { 196, 230, 186, 0 },
+      { 115, 131, 46, 1 },
+      { 46, 179, 145, 1 }, },
+    { { 186, 111, 8, 0 },
+      { 229, 40, 139, 1 },
+      { 8, 123, 46, 1 },
+      { 232, 138, 83, 1 }, },
+    { { 186, 111, 11, 1 },
+      { 237, 106, 139, 1 },
+      { 232, 123, 46, 1 },
+      { 232, 171, 91, 1 }, },
+    { { 186, 111, 4, 1 },
+      { 237, 40, 155, 0 },
+      { 144, 123, 46, 1 },
+      { 108, 138, 91, 1 }, },
+    { { 186, 111, 7, 0 },
+      { 229, 106, 155, 0 },
+      { 112, 123, 46, 1 },
+      { 108, 171, 83, 1 }, },
+    { { 186, 111, 120, 0 },
+      { 245, 172, 139, 1 },
+      { 15, 123, 46, 1 },
+      { 232, 154, 215, 1 }, },
+    { { 186, 111, 123, 1 },
+      { 253, 238, 139, 1 },
+      { 239, 123, 46, 1 },
+      { 232, 187, 223, 1 }, },
+    { { 186, 111, 116, 1 },
+      { 253, 172, 155, 0 },
+      { 151, 123, 46, 1 },
+      { 108, 154, 223, 1 }, },
+    { { 186, 111, 119, 0 },
+      { 245, 238, 155, 0 },
+      { 119, 123, 46, 1 },
+      { 108, 187, 215, 1 }, },
+    { { 186, 110, 152, 0 },
+      { 245, 40, 170, 1 },
+      { 12, 187, 46, 1 },
+      { 170, 138, 87, 1 }, },
+    { { 186, 110, 155, 1 },
+      { 253, 106, 170, 1 },
+      { 236, 187, 46, 1 },
+      { 170, 171, 95, 1 }, },
+    { { 186, 110, 148, 1 },
+      { 253, 40, 186, 0 },
+      { 148, 187, 46, 1 },
+      { 46, 138, 95, 1 }, },
+    { { 186, 110, 151, 0 },
+      { 245, 106, 186, 0 },
+      { 116, 187, 46, 1 },
+      { 46, 171, 87, 1 }, },
+    { { 186, 110, 232, 0 },
+      { 229, 172, 170, 1 },
+      { 11, 187, 46, 1 },
+      { 170, 154, 211, 1 }, },
+    { { 186, 110, 235, 1 },
+      { 237, 238, 170, 1 },
+      { 235, 187, 46, 1 },
+      { 170, 187, 219, 1 }, },
+    { { 186, 110, 228, 1 },
+      { 237, 172, 186, 0 },
+      { 147, 187, 46, 1 },
+      { 46, 154, 219, 1 }, },
+    { { 186, 110, 231, 0 },
+      { 229, 238, 186, 0 },
+      { 115, 187, 46, 1 },
+      { 46, 187, 211, 1 }, },
+    { { 186, 83, 8, 0 },
+      { 228, 32, 201, 1 },
+      { 8, 101, 46, 1 },
+      { 201, 130, 19, 1 }, },
+    { { 186, 83, 11, 1 },
+      { 236, 98, 201, 1 },
+      { 232, 101, 46, 1 },
+      { 201, 163, 27, 1 }, },
+    { { 186, 83, 4, 1 },
+      { 236, 32, 217, 0 },
+      { 144, 101, 46, 1 },
+      { 77, 130, 27, 1 }, },
+    { { 186, 83, 7, 0 },
+      { 228, 98, 217, 0 },
+      { 112, 101, 46, 1 },
+      { 77, 163, 19, 1 }, },
+    { { 186, 83, 120, 0 },
+      { 244, 164, 201, 1 },
+      { 15, 101, 46, 1 },
+      { 201, 146, 151, 1 }, },
+    { { 186, 83, 123, 1 },
+      { 252, 230, 201, 1 },
+      { 239, 101, 46, 1 },
+      { 201, 179, 159, 1 }, },
+    { { 186, 83, 116, 1 },
+      { 252, 164, 217, 0 },
+      { 151, 101, 46, 1 },
+      { 77, 146, 159, 1 }, },
+    { { 186, 83, 119, 0 },
+      { 244, 230, 217, 0 },
+      { 119, 101, 46, 1 },
+      { 77, 179, 151, 1 }, },
+    { { 186, 82, 152, 0 },
+      { 244, 32, 232, 1 },
+      { 12, 165, 46, 1 },
+      { 139, 130, 23, 1 }, },
+    { { 186, 82, 155, 1 },
+      { 252, 98, 232, 1 },
+      { 236, 165, 46, 1 },
+      { 139, 163, 31, 1 }, },
+    { { 186, 82, 148, 1 },
+      { 252, 32, 248, 0 },
+      { 148, 165, 46, 1 },
+      { 15, 130, 31, 1 }, },
+    { { 186, 82, 151, 0 },
+      { 244, 98, 248, 0 },
+      { 116, 165, 46, 1 },
+      { 15, 163, 23, 1 }, },
+    { { 186, 82, 232, 0 },
+      { 228, 164, 232, 1 },
+      { 11, 165, 46, 1 },
+      { 139, 146, 147, 1 }, },
+    { { 186, 82, 235, 1 },
+      { 236, 230, 232, 1 },
+      { 235, 165, 46, 1 },
+      { 139, 179, 155, 1 }, },
+    { { 186, 82, 228, 1 },
+      { 236, 164, 248, 0 },
+      { 147, 165, 46, 1 },
+      { 15, 146, 155, 1 }, },
+    { { 186, 82, 231, 0 },
+      { 228, 230, 248, 0 },
+      { 115, 165, 46, 1 },
+      { 15, 179, 147, 1 }, },
+    { { 186, 93, 8, 0 },
+      { 197, 40, 201, 1 },
+      { 8, 93, 46, 1 },
+      { 201, 138, 81, 1 }, },
+    { { 186, 93, 11, 1 },
+      { 205, 106, 201, 1 },
+      { 232, 93, 46, 1 },
+      { 201, 171, 89, 1 }, },
+    { { 186, 93, 4, 1 },
+      { 205, 40, 217, 0 },
+      { 144, 93, 46, 1 },
+      { 77, 138, 89, 1 }, },
+    { { 186, 93, 7, 0 },
+      { 197, 106, 217, 0 },
+      { 112, 93, 46, 1 },
+      { 77, 171, 81, 1 }, },
+    { { 186, 93, 120, 0 },
+      { 213, 172, 201, 1 },
+      { 15, 93, 46, 1 },
+      { 201, 154, 213, 1 }, },
+    { { 186, 93, 123, 1 },
+      { 221, 238, 201, 1 },
+      { 239, 93, 46, 1 },
+      { 201, 187, 221, 1 }, },
+    { { 186, 93, 116, 1 },
+      { 221, 172, 217, 0 },
+      { 151, 93, 46, 1 },
+      { 77, 154, 221, 1 }, },
+    { { 186, 93, 119, 0 },
+      { 213, 238, 217, 0 },
+      { 119, 93, 46, 1 },
+      { 77, 187, 213, 1 }, },
+    { { 186, 92, 152, 0 },
+      { 213, 40, 232, 1 },
+      { 12, 157, 46, 1 },
+      { 139, 138, 85, 1 }, },
+    { { 186, 92, 155, 1 },
+      { 221, 106, 232, 1 },
+      { 236, 157, 46, 1 },
+      { 139, 171, 93, 1 }, },
+    { { 186, 92, 148, 1 },
+      { 221, 40, 248, 0 },
+      { 148, 157, 46, 1 },
+      { 15, 138, 93, 1 }, },
+    { { 186, 92, 151, 0 },
+      { 213, 106, 248, 0 },
+      { 116, 157, 46, 1 },
+      { 15, 171, 85, 1 }, },
+    { { 186, 92, 232, 0 },
+      { 197, 172, 232, 1 },
+      { 11, 157, 46, 1 },
+      { 139, 154, 209, 1 }, },
+    { { 186, 92, 235, 1 },
+      { 205, 238, 232, 1 },
+      { 235, 157, 46, 1 },
+      { 139, 187, 217, 1 }, },
+    { { 186, 92, 228, 1 },
+      { 205, 172, 248, 0 },
+      { 147, 157, 46, 1 },
+      { 15, 154, 217, 1 }, },
+    { { 186, 92, 231, 0 },
+      { 197, 238, 248, 0 },
+      { 115, 157, 46, 1 },
+      { 15, 187, 209, 1 }, },
+    { { 187, 161, 8, 0 },
+      { 134, 48, 139, 1 },
+      { 8, 66, 238, 1 },
+      { 232, 134, 48, 1 }, },
+    { { 187, 161, 11, 1 },
+      { 142, 114, 139, 1 },
+      { 232, 66, 238, 1 },
+      { 232, 167, 56, 1 }, },
+    { { 187, 161, 4, 1 },
+      { 142, 48, 155, 0 },
+      { 144, 66, 238, 1 },
+      { 108, 134, 56, 1 }, },
+    { { 187, 161, 7, 0 },
+      { 134, 114, 155, 0 },
+      { 112, 66, 238, 1 },
+      { 108, 167, 48, 1 }, },
+    { { 187, 161, 120, 0 },
+      { 150, 180, 139, 1 },
+      { 15, 66, 238, 1 },
+      { 232, 150, 180, 1 }, },
+    { { 187, 161, 123, 1 },
+      { 158, 246, 139, 1 },
+      { 239, 66, 238, 1 },
+      { 232, 183, 188, 1 }, },
+    { { 187, 161, 116, 1 },
+      { 158, 180, 155, 0 },
+      { 151, 66, 238, 1 },
+      { 108, 150, 188, 1 }, },
+    { { 187, 161, 119, 0 },
+      { 150, 246, 155, 0 },
+      { 119, 66, 238, 1 },
+      { 108, 183, 180, 1 }, },
+    { { 187, 160, 152, 0 },
+      { 150, 48, 170, 1 },
+      { 12, 130, 238, 1 },
+      { 170, 134, 52, 1 }, },
+    { { 187, 160, 155, 1 },
+      { 158, 114, 170, 1 },
+      { 236, 130, 238, 1 },
+      { 170, 167, 60, 1 }, },
+    { { 187, 160, 148, 1 },
+      { 158, 48, 186, 0 },
+      { 148, 130, 238, 1 },
+      { 46, 134, 60, 1 }, },
+    { { 187, 160, 151, 0 },
+      { 150, 114, 186, 0 },
+      { 116, 130, 238, 1 },
+      { 46, 167, 52, 1 }, },
+    { { 187, 160, 232, 0 },
+      { 134, 180, 170, 1 },
+      { 11, 130, 238, 1 },
+      { 170, 150, 176, 1 }, },
+    { { 187, 160, 235, 1 },
+      { 142, 246, 170, 1 },
+      { 235, 130, 238, 1 },
+      { 170, 183, 184, 1 }, },
+    { { 187, 160, 228, 1 },
+      { 142, 180, 186, 0 },
+      { 147, 130, 238, 1 },
+      { 46, 150, 184, 1 }, },
+    { { 187, 160, 231, 0 },
+      { 134, 246, 186, 0 },
+      { 115, 130, 238, 1 },
+      { 46, 183, 176, 1 }, },
+    { { 187, 175, 8, 0 },
+      { 167, 56, 139, 1 },
+      { 8, 122, 238, 1 },
+      { 232, 142, 114, 1 }, },
+    { { 187, 175, 11, 1 },
+      { 175, 122, 139, 1 },
+      { 232, 122, 238, 1 },
+      { 232, 175, 122, 1 }, },
+    { { 187, 175, 4, 1 },
+      { 175, 56, 155, 0 },
+      { 144, 122, 238, 1 },
+      { 108, 142, 122, 1 }, },
+    { { 187, 175, 7, 0 },
+      { 167, 122, 155, 0 },
+      { 112, 122, 238, 1 },
+      { 108, 175, 114, 1 }, },
+    { { 187, 175, 120, 0 },
+      { 183, 188, 139, 1 },
+      { 15, 122, 238, 1 },
+      { 232, 158, 246, 1 }, },
+    { { 187, 175, 123, 1 },
+      { 191, 254, 139, 1 },
+      { 239, 122, 238, 1 },
+      { 232, 191, 254, 1 }, },
+    { { 187, 175, 116, 1 },
+      { 191, 188, 155, 0 },
+      { 151, 122, 238, 1 },
+      { 108, 158, 254, 1 }, },
+    { { 187, 175, 119, 0 },
+      { 183, 254, 155, 0 },
+      { 119, 122, 238, 1 },
+      { 108, 191, 246, 1 }, },
+    { { 187, 174, 152, 0 },
+      { 183, 56, 170, 1 },
+      { 12, 186, 238, 1 },
+      { 170, 142, 118, 1 }, },
+    { { 187, 174, 155, 1 },
+      { 191, 122, 170, 1 },
+      { 236, 186, 238, 1 },
+      { 170, 175, 126, 1 }, },
+    { { 187, 174, 148, 1 },
+      { 191, 56, 186, 0 },
+      { 148, 186, 238, 1 },
+      { 46, 142, 126, 1 }, },
+    { { 187, 174, 151, 0 },
+      { 183, 122, 186, 0 },
+      { 116, 186, 238, 1 },
+      { 46, 175, 118, 1 }, },
+    { { 187, 174, 232, 0 },
+      { 167, 188, 170, 1 },
+      { 11, 186, 238, 1 },
+      { 170, 158, 242, 1 }, },
+    { { 187, 174, 235, 1 },
+      { 175, 254, 170, 1 },
+      { 235, 186, 238, 1 },
+      { 170, 191, 250, 1 }, },
+    { { 187, 174, 228, 1 },
+      { 175, 188, 186, 0 },
+      { 147, 186, 238, 1 },
+      { 46, 158, 250, 1 }, },
+    { { 187, 174, 231, 0 },
+      { 167, 254, 186, 0 },
+      { 115, 186, 238, 1 },
+      { 46, 191, 242, 1 }, },
+    { { 187, 147, 8, 0 },
+      { 166, 48, 201, 1 },
+      { 8, 100, 238, 1 },
+      { 201, 134, 50, 1 }, },
+    { { 187, 147, 11, 1 },
+      { 174, 114, 201, 1 },
+      { 232, 100, 238, 1 },
+      { 201, 167, 58, 1 }, },
+    { { 187, 147, 4, 1 },
+      { 174, 48, 217, 0 },
+      { 144, 100, 238, 1 },
+      { 77, 134, 58, 1 }, },
+    { { 187, 147, 7, 0 },
+      { 166, 114, 217, 0 },
+      { 112, 100, 238, 1 },
+      { 77, 167, 50, 1 }, },
+    { { 187, 147, 120, 0 },
+      { 182, 180, 201, 1 },
+      { 15, 100, 238, 1 },
+      { 201, 150, 182, 1 }, },
+    { { 187, 147, 123, 1 },
+      { 190, 246, 201, 1 },
+      { 239, 100, 238, 1 },
+      { 201, 183, 190, 1 }, },
+    { { 187, 147, 116, 1 },
+      { 190, 180, 217, 0 },
+      { 151, 100, 238, 1 },
+      { 77, 150, 190, 1 }, },
+    { { 187, 147, 119, 0 },
+      { 182, 246, 217, 0 },
+      { 119, 100, 238, 1 },
+      { 77, 183, 182, 1 }, },
+    { { 187, 146, 152, 0 },
+      { 182, 48, 232, 1 },
+      { 12, 164, 238, 1 },
+      { 139, 134, 54, 1 }, },
+    { { 187, 146, 155, 1 },
+      { 190, 114, 232, 1 },
+      { 236, 164, 238, 1 },
+      { 139, 167, 62, 1 }, },
+    { { 187, 146, 148, 1 },
+      { 190, 48, 248, 0 },
+      { 148, 164, 238, 1 },
+      { 15, 134, 62, 1 }, },
+    { { 187, 146, 151, 0 },
+      { 182, 114, 248, 0 },
+      { 116, 164, 238, 1 },
+      { 15, 167, 54, 1 }, },
+    { { 187, 146, 232, 0 },
+      { 166, 180, 232, 1 },
+      { 11, 164, 238, 1 },
+      { 139, 150, 178, 1 }, },
+    { { 187, 146, 235, 1 },
+      { 174, 246, 232, 1 },
+      { 235, 164, 238, 1 },
+      { 139, 183, 186, 1 }, },
+    { { 187, 146, 228, 1 },
+      { 174, 180, 248, 0 },
+      { 147, 164, 238, 1 },
+      { 15, 150, 186, 1 }, },
+    { { 187, 146, 231, 0 },
+      { 166, 246, 248, 0 },
+      { 115, 164, 238, 1 },
+      { 15, 183, 178, 1 }, },
+    { { 187, 157, 8, 0 },
+      { 135, 56, 201, 1 },
+      { 8, 92, 238, 1 },
+      { 201, 142, 112, 1 }, },
+    { { 187, 157, 11, 1 },
+      { 143, 122, 201, 1 },
+      { 232, 92, 238, 1 },
+      { 201, 175, 120, 1 }, },
+    { { 187, 157, 4, 1 },
+      { 143, 56, 217, 0 },
+      { 144, 92, 238, 1 },
+      { 77, 142, 120, 1 }, },
+    { { 187, 157, 7, 0 },
+      { 135, 122, 217, 0 },
+      { 112, 92, 238, 1 },
+      { 77, 175, 112, 1 }, },
+    { { 187, 157, 120, 0 },
+      { 151, 188, 201, 1 },
+      { 15, 92, 238, 1 },
+      { 201, 158, 244, 1 }, },
+    { { 187, 157, 123, 1 },
+      { 159, 254, 201, 1 },
+      { 239, 92, 238, 1 },
+      { 201, 191, 252, 1 }, },
+    { { 187, 157, 116, 1 },
+      { 159, 188, 217, 0 },
+      { 151, 92, 238, 1 },
+      { 77, 158, 252, 1 }, },
+    { { 187, 157, 119, 0 },
+      { 151, 254, 217, 0 },
+      { 119, 92, 238, 1 },
+      { 77, 191, 244, 1 }, },
+    { { 187, 156, 152, 0 },
+      { 151, 56, 232, 1 },
+      { 12, 156, 238, 1 },
+      { 139, 142, 116, 1 }, },
+    { { 187, 156, 155, 1 },
+      { 159, 122, 232, 1 },
+      { 236, 156, 238, 1 },
+      { 139, 175, 124, 1 }, },
+    { { 187, 156, 148, 1 },
+      { 159, 56, 248, 0 },
+      { 148, 156, 238, 1 },
+      { 15, 142, 124, 1 }, },
+    { { 187, 156, 151, 0 },
+      { 151, 122, 248, 0 },
+      { 116, 156, 238, 1 },
+      { 15, 175, 116, 1 }, },
+    { { 187, 156, 232, 0 },
+      { 135, 188, 232, 1 },
+      { 11, 156, 238, 1 },
+      { 139, 158, 240, 1 }, },
+    { { 187, 156, 235, 1 },
+      { 143, 254, 232, 1 },
+      { 235, 156, 238, 1 },
+      { 139, 191, 248, 1 }, },
+    { { 187, 156, 228, 1 },
+      { 143, 188, 248, 0 },
+      { 147, 156, 238, 1 },
+      { 15, 158, 248, 1 }, },
+    { { 187, 156, 231, 0 },
+      { 135, 254, 248, 0 },
+      { 115, 156, 238, 1 },
+      { 15, 191, 240, 1 }, },
+    { { 76, 33, 8, 0 },
+      { 128, 1, 7, 1 },
+      { 8, 66, 25, 0 },
+      { 240, 64, 0, 1 }, },
+    { { 76, 33, 11, 1 },
+      { 136, 67, 7, 1 },
+      { 232, 66, 25, 0 },
+      { 240, 97, 8, 1 }, },
+    { { 76, 33, 4, 1 },
+      { 136, 1, 23, 0 },
+      { 144, 66, 25, 0 },
+      { 116, 64, 8, 1 }, },
+    { { 76, 33, 7, 0 },
+      { 128, 67, 23, 0 },
+      { 112, 66, 25, 0 },
+      { 116, 97, 0, 1 }, },
+    { { 76, 33, 120, 0 },
+      { 144, 133, 7, 1 },
+      { 15, 66, 25, 0 },
+      { 240, 80, 132, 1 }, },
+    { { 76, 33, 123, 1 },
+      { 152, 199, 7, 1 },
+      { 239, 66, 25, 0 },
+      { 240, 113, 140, 1 }, },
+    { { 76, 33, 116, 1 },
+      { 152, 133, 23, 0 },
+      { 151, 66, 25, 0 },
+      { 116, 80, 140, 1 }, },
+    { { 76, 33, 119, 0 },
+      { 144, 199, 23, 0 },
+      { 119, 66, 25, 0 },
+      { 116, 113, 132, 1 }, },
+    { { 76, 32, 152, 0 },
+      { 144, 1, 38, 1 },
+      { 12, 130, 25, 0 },
+      { 178, 64, 4, 1 }, },
+    { { 76, 32, 155, 1 },
+      { 152, 67, 38, 1 },
+      { 236, 130, 25, 0 },
+      { 178, 97, 12, 1 }, },
+    { { 76, 32, 148, 1 },
+      { 152, 1, 54, 0 },
+      { 148, 130, 25, 0 },
+      { 54, 64, 12, 1 }, },
+    { { 76, 32, 151, 0 },
+      { 144, 67, 54, 0 },
+      { 116, 130, 25, 0 },
+      { 54, 97, 4, 1 }, },
+    { { 76, 32, 232, 0 },
+      { 128, 133, 38, 1 },
+      { 11, 130, 25, 0 },
+      { 178, 80, 128, 1 }, },
+    { { 76, 32, 235, 1 },
+      { 136, 199, 38, 1 },
+      { 235, 130, 25, 0 },
+      { 178, 113, 136, 1 }, },
+    { { 76, 32, 228, 1 },
+      { 136, 133, 54, 0 },
+      { 147, 130, 25, 0 },
+      { 54, 80, 136, 1 }, },
+    { { 76, 32, 231, 0 },
+      { 128, 199, 54, 0 },
+      { 115, 130, 25, 0 },
+      { 54, 113, 128, 1 }, },
+    { { 76, 47, 8, 0 },
+      { 161, 9, 7, 1 },
+      { 8, 122, 25, 0 },
+      { 240, 72, 66, 1 }, },
+    { { 76, 47, 11, 1 },
+      { 169, 75, 7, 1 },
+      { 232, 122, 25, 0 },
+      { 240, 105, 74, 1 }, },
+    { { 76, 47, 4, 1 },
+      { 169, 9, 23, 0 },
+      { 144, 122, 25, 0 },
+      { 116, 72, 74, 1 }, },
+    { { 76, 47, 7, 0 },
+      { 161, 75, 23, 0 },
+      { 112, 122, 25, 0 },
+      { 116, 105, 66, 1 }, },
+    { { 76, 47, 120, 0 },
+      { 177, 141, 7, 1 },
+      { 15, 122, 25, 0 },
+      { 240, 88, 198, 1 }, },
+    { { 76, 47, 123, 1 },
+      { 185, 207, 7, 1 },
+      { 239, 122, 25, 0 },
+      { 240, 121, 206, 1 }, },
+    { { 76, 47, 116, 1 },
+      { 185, 141, 23, 0 },
+      { 151, 122, 25, 0 },
+      { 116, 88, 206, 1 }, },
+    { { 76, 47, 119, 0 },
+      { 177, 207, 23, 0 },
+      { 119, 122, 25, 0 },
+      { 116, 121, 198, 1 }, },
+    { { 76, 46, 152, 0 },
+      { 177, 9, 38, 1 },
+      { 12, 186, 25, 0 },
+      { 178, 72, 70, 1 }, },
+    { { 76, 46, 155, 1 },
+      { 185, 75, 38, 1 },
+      { 236, 186, 25, 0 },
+      { 178, 105, 78, 1 }, },
+    { { 76, 46, 148, 1 },
+      { 185, 9, 54, 0 },
+      { 148, 186, 25, 0 },
+      { 54, 72, 78, 1 }, },
+    { { 76, 46, 151, 0 },
+      { 177, 75, 54, 0 },
+      { 116, 186, 25, 0 },
+      { 54, 105, 70, 1 }, },
+    { { 76, 46, 232, 0 },
+      { 161, 141, 38, 1 },
+      { 11, 186, 25, 0 },
+      { 178, 88, 194, 1 }, },
+    { { 76, 46, 235, 1 },
+      { 169, 207, 38, 1 },
+      { 235, 186, 25, 0 },
+      { 178, 121, 202, 1 }, },
+    { { 76, 46, 228, 1 },
+      { 169, 141, 54, 0 },
+      { 147, 186, 25, 0 },
+      { 54, 88, 202, 1 }, },
+    { { 76, 46, 231, 0 },
+      { 161, 207, 54, 0 },
+      { 115, 186, 25, 0 },
+      { 54, 121, 194, 1 }, },
+    { { 76, 19, 8, 0 },
+      { 160, 1, 69, 1 },
+      { 8, 100, 25, 0 },
+      { 209, 64, 2, 1 }, },
+    { { 76, 19, 11, 1 },
+      { 168, 67, 69, 1 },
+      { 232, 100, 25, 0 },
+      { 209, 97, 10, 1 }, },
+    { { 76, 19, 4, 1 },
+      { 168, 1, 85, 0 },
+      { 144, 100, 25, 0 },
+      { 85, 64, 10, 1 }, },
+    { { 76, 19, 7, 0 },
+      { 160, 67, 85, 0 },
+      { 112, 100, 25, 0 },
+      { 85, 97, 2, 1 }, },
+    { { 76, 19, 120, 0 },
+      { 176, 133, 69, 1 },
+      { 15, 100, 25, 0 },
+      { 209, 80, 134, 1 }, },
+    { { 76, 19, 123, 1 },
+      { 184, 199, 69, 1 },
+      { 239, 100, 25, 0 },
+      { 209, 113, 142, 1 }, },
+    { { 76, 19, 116, 1 },
+      { 184, 133, 85, 0 },
+      { 151, 100, 25, 0 },
+      { 85, 80, 142, 1 }, },
+    { { 76, 19, 119, 0 },
+      { 176, 199, 85, 0 },
+      { 119, 100, 25, 0 },
+      { 85, 113, 134, 1 }, },
+    { { 76, 18, 152, 0 },
+      { 176, 1, 100, 1 },
+      { 12, 164, 25, 0 },
+      { 147, 64, 6, 1 }, },
+    { { 76, 18, 155, 1 },
+      { 184, 67, 100, 1 },
+      { 236, 164, 25, 0 },
+      { 147, 97, 14, 1 }, },
+    { { 76, 18, 148, 1 },
+      { 184, 1, 116, 0 },
+      { 148, 164, 25, 0 },
+      { 23, 64, 14, 1 }, },
+    { { 76, 18, 151, 0 },
+      { 176, 67, 116, 0 },
+      { 116, 164, 25, 0 },
+      { 23, 97, 6, 1 }, },
+    { { 76, 18, 232, 0 },
+      { 160, 133, 100, 1 },
+      { 11, 164, 25, 0 },
+      { 147, 80, 130, 1 }, },
+    { { 76, 18, 235, 1 },
+      { 168, 199, 100, 1 },
+      { 235, 164, 25, 0 },
+      { 147, 113, 138, 1 }, },
+    { { 76, 18, 228, 1 },
+      { 168, 133, 116, 0 },
+      { 147, 164, 25, 0 },
+      { 23, 80, 138, 1 }, },
+    { { 76, 18, 231, 0 },
+      { 160, 199, 116, 0 },
+      { 115, 164, 25, 0 },
+      { 23, 113, 130, 1 }, },
+    { { 76, 29, 8, 0 },
+      { 129, 9, 69, 1 },
+      { 8, 92, 25, 0 },
+      { 209, 72, 64, 1 }, },
+    { { 76, 29, 11, 1 },
+      { 137, 75, 69, 1 },
+      { 232, 92, 25, 0 },
+      { 209, 105, 72, 1 }, },
+    { { 76, 29, 4, 1 },
+      { 137, 9, 85, 0 },
+      { 144, 92, 25, 0 },
+      { 85, 72, 72, 1 }, },
+    { { 76, 29, 7, 0 },
+      { 129, 75, 85, 0 },
+      { 112, 92, 25, 0 },
+      { 85, 105, 64, 1 }, },
+    { { 76, 29, 120, 0 },
+      { 145, 141, 69, 1 },
+      { 15, 92, 25, 0 },
+      { 209, 88, 196, 1 }, },
+    { { 76, 29, 123, 1 },
+      { 153, 207, 69, 1 },
+      { 239, 92, 25, 0 },
+      { 209, 121, 204, 1 }, },
+    { { 76, 29, 116, 1 },
+      { 153, 141, 85, 0 },
+      { 151, 92, 25, 0 },
+      { 85, 88, 204, 1 }, },
+    { { 76, 29, 119, 0 },
+      { 145, 207, 85, 0 },
+      { 119, 92, 25, 0 },
+      { 85, 121, 196, 1 }, },
+    { { 76, 28, 152, 0 },
+      { 145, 9, 100, 1 },
+      { 12, 156, 25, 0 },
+      { 147, 72, 68, 1 }, },
+    { { 76, 28, 155, 1 },
+      { 153, 75, 100, 1 },
+      { 236, 156, 25, 0 },
+      { 147, 105, 76, 1 }, },
+    { { 76, 28, 148, 1 },
+      { 153, 9, 116, 0 },
+      { 148, 156, 25, 0 },
+      { 23, 72, 76, 1 }, },
+    { { 76, 28, 151, 0 },
+      { 145, 75, 116, 0 },
+      { 116, 156, 25, 0 },
+      { 23, 105, 68, 1 }, },
+    { { 76, 28, 232, 0 },
+      { 129, 141, 100, 1 },
+      { 11, 156, 25, 0 },
+      { 147, 88, 192, 1 }, },
+    { { 76, 28, 235, 1 },
+      { 137, 207, 100, 1 },
+      { 235, 156, 25, 0 },
+      { 147, 121, 200, 1 }, },
+    { { 76, 28, 228, 1 },
+      { 137, 141, 116, 0 },
+      { 147, 156, 25, 0 },
+      { 23, 88, 200, 1 }, },
+    { { 76, 28, 231, 0 },
+      { 129, 207, 116, 0 },
+      { 115, 156, 25, 0 },
+      { 23, 121, 192, 1 }, },
+    { { 77, 225, 8, 0 },
+      { 194, 17, 7, 1 },
+      { 8, 67, 217, 0 },
+      { 240, 68, 33, 1 }, },
+    { { 77, 225, 11, 1 },
+      { 202, 83, 7, 1 },
+      { 232, 67, 217, 0 },
+      { 240, 101, 41, 1 }, },
+    { { 77, 225, 4, 1 },
+      { 202, 17, 23, 0 },
+      { 144, 67, 217, 0 },
+      { 116, 68, 41, 1 }, },
+    { { 77, 225, 7, 0 },
+      { 194, 83, 23, 0 },
+      { 112, 67, 217, 0 },
+      { 116, 101, 33, 1 }, },
+    { { 77, 225, 120, 0 },
+      { 210, 149, 7, 1 },
+      { 15, 67, 217, 0 },
+      { 240, 84, 165, 1 }, },
+    { { 77, 225, 123, 1 },
+      { 218, 215, 7, 1 },
+      { 239, 67, 217, 0 },
+      { 240, 117, 173, 1 }, },
+    { { 77, 225, 116, 1 },
+      { 218, 149, 23, 0 },
+      { 151, 67, 217, 0 },
+      { 116, 84, 173, 1 }, },
+    { { 77, 225, 119, 0 },
+      { 210, 215, 23, 0 },
+      { 119, 67, 217, 0 },
+      { 116, 117, 165, 1 }, },
+    { { 77, 224, 152, 0 },
+      { 210, 17, 38, 1 },
+      { 12, 131, 217, 0 },
+      { 178, 68, 37, 1 }, },
+    { { 77, 224, 155, 1 },
+      { 218, 83, 38, 1 },
+      { 236, 131, 217, 0 },
+      { 178, 101, 45, 1 }, },
+    { { 77, 224, 148, 1 },
+      { 218, 17, 54, 0 },
+      { 148, 131, 217, 0 },
+      { 54, 68, 45, 1 }, },
+    { { 77, 224, 151, 0 },
+      { 210, 83, 54, 0 },
+      { 116, 131, 217, 0 },
+      { 54, 101, 37, 1 }, },
+    { { 77, 224, 232, 0 },
+      { 194, 149, 38, 1 },
+      { 11, 131, 217, 0 },
+      { 178, 84, 161, 1 }, },
+    { { 77, 224, 235, 1 },
+      { 202, 215, 38, 1 },
+      { 235, 131, 217, 0 },
+      { 178, 117, 169, 1 }, },
+    { { 77, 224, 228, 1 },
+      { 202, 149, 54, 0 },
+      { 147, 131, 217, 0 },
+      { 54, 84, 169, 1 }, },
+    { { 77, 224, 231, 0 },
+      { 194, 215, 54, 0 },
+      { 115, 131, 217, 0 },
+      { 54, 117, 161, 1 }, },
+    { { 77, 239, 8, 0 },
+      { 227, 25, 7, 1 },
+      { 8, 123, 217, 0 },
+      { 240, 76, 99, 1 }, },
+    { { 77, 239, 11, 1 },
+      { 235, 91, 7, 1 },
+      { 232, 123, 217, 0 },
+      { 240, 109, 107, 1 }, },
+    { { 77, 239, 4, 1 },
+      { 235, 25, 23, 0 },
+      { 144, 123, 217, 0 },
+      { 116, 76, 107, 1 }, },
+    { { 77, 239, 7, 0 },
+      { 227, 91, 23, 0 },
+      { 112, 123, 217, 0 },
+      { 116, 109, 99, 1 }, },
+    { { 77, 239, 120, 0 },
+      { 243, 157, 7, 1 },
+      { 15, 123, 217, 0 },
+      { 240, 92, 231, 1 }, },
+    { { 77, 239, 123, 1 },
+      { 251, 223, 7, 1 },
+      { 239, 123, 217, 0 },
+      { 240, 125, 239, 1 }, },
+    { { 77, 239, 116, 1 },
+      { 251, 157, 23, 0 },
+      { 151, 123, 217, 0 },
+      { 116, 92, 239, 1 }, },
+    { { 77, 239, 119, 0 },
+      { 243, 223, 23, 0 },
+      { 119, 123, 217, 0 },
+      { 116, 125, 231, 1 }, },
+    { { 77, 238, 152, 0 },
+      { 243, 25, 38, 1 },
+      { 12, 187, 217, 0 },
+      { 178, 76, 103, 1 }, },
+    { { 77, 238, 155, 1 },
+      { 251, 91, 38, 1 },
+      { 236, 187, 217, 0 },
+      { 178, 109, 111, 1 }, },
+    { { 77, 238, 148, 1 },
+      { 251, 25, 54, 0 },
+      { 148, 187, 217, 0 },
+      { 54, 76, 111, 1 }, },
+    { { 77, 238, 151, 0 },
+      { 243, 91, 54, 0 },
+      { 116, 187, 217, 0 },
+      { 54, 109, 103, 1 }, },
+    { { 77, 238, 232, 0 },
+      { 227, 157, 38, 1 },
+      { 11, 187, 217, 0 },
+      { 178, 92, 227, 1 }, },
+    { { 77, 238, 235, 1 },
+      { 235, 223, 38, 1 },
+      { 235, 187, 217, 0 },
+      { 178, 125, 235, 1 }, },
+    { { 77, 238, 228, 1 },
+      { 235, 157, 54, 0 },
+      { 147, 187, 217, 0 },
+      { 54, 92, 235, 1 }, },
+    { { 77, 238, 231, 0 },
+      { 227, 223, 54, 0 },
+      { 115, 187, 217, 0 },
+      { 54, 125, 227, 1 }, },
+    { { 77, 211, 8, 0 },
+      { 226, 17, 69, 1 },
+      { 8, 101, 217, 0 },
+      { 209, 68, 35, 1 }, },
+    { { 77, 211, 11, 1 },
+      { 234, 83, 69, 1 },
+      { 232, 101, 217, 0 },
+      { 209, 101, 43, 1 }, },
+    { { 77, 211, 4, 1 },
+      { 234, 17, 85, 0 },
+      { 144, 101, 217, 0 },
+      { 85, 68, 43, 1 }, },
+    { { 77, 211, 7, 0 },
+      { 226, 83, 85, 0 },
+      { 112, 101, 217, 0 },
+      { 85, 101, 35, 1 }, },
+    { { 77, 211, 120, 0 },
+      { 242, 149, 69, 1 },
+      { 15, 101, 217, 0 },
+      { 209, 84, 167, 1 }, },
+    { { 77, 211, 123, 1 },
+      { 250, 215, 69, 1 },
+      { 239, 101, 217, 0 },
+      { 209, 117, 175, 1 }, },
+    { { 77, 211, 116, 1 },
+      { 250, 149, 85, 0 },
+      { 151, 101, 217, 0 },
+      { 85, 84, 175, 1 }, },
+    { { 77, 211, 119, 0 },
+      { 242, 215, 85, 0 },
+      { 119, 101, 217, 0 },
+      { 85, 117, 167, 1 }, },
+    { { 77, 210, 152, 0 },
+      { 242, 17, 100, 1 },
+      { 12, 165, 217, 0 },
+      { 147, 68, 39, 1 }, },
+    { { 77, 210, 155, 1 },
+      { 250, 83, 100, 1 },
+      { 236, 165, 217, 0 },
+      { 147, 101, 47, 1 }, },
+    { { 77, 210, 148, 1 },
+      { 250, 17, 116, 0 },
+      { 148, 165, 217, 0 },
+      { 23, 68, 47, 1 }, },
+    { { 77, 210, 151, 0 },
+      { 242, 83, 116, 0 },
+      { 116, 165, 217, 0 },
+      { 23, 101, 39, 1 }, },
+    { { 77, 210, 232, 0 },
+      { 226, 149, 100, 1 },
+      { 11, 165, 217, 0 },
+      { 147, 84, 163, 1 }, },
+    { { 77, 210, 235, 1 },
+      { 234, 215, 100, 1 },
+      { 235, 165, 217, 0 },
+      { 147, 117, 171, 1 }, },
+    { { 77, 210, 228, 1 },
+      { 234, 149, 116, 0 },
+      { 147, 165, 217, 0 },
+      { 23, 84, 171, 1 }, },
+    { { 77, 210, 231, 0 },
+      { 226, 215, 116, 0 },
+      { 115, 165, 217, 0 },
+      { 23, 117, 163, 1 }, },
+    { { 77, 221, 8, 0 },
+      { 195, 25, 69, 1 },
+      { 8, 93, 217, 0 },
+      { 209, 76, 97, 1 }, },
+    { { 77, 221, 11, 1 },
+      { 203, 91, 69, 1 },
+      { 232, 93, 217, 0 },
+      { 209, 109, 105, 1 }, },
+    { { 77, 221, 4, 1 },
+      { 203, 25, 85, 0 },
+      { 144, 93, 217, 0 },
+      { 85, 76, 105, 1 }, },
+    { { 77, 221, 7, 0 },
+      { 195, 91, 85, 0 },
+      { 112, 93, 217, 0 },
+      { 85, 109, 97, 1 }, },
+    { { 77, 221, 120, 0 },
+      { 211, 157, 69, 1 },
+      { 15, 93, 217, 0 },
+      { 209, 92, 229, 1 }, },
+    { { 77, 221, 123, 1 },
+      { 219, 223, 69, 1 },
+      { 239, 93, 217, 0 },
+      { 209, 125, 237, 1 }, },
+    { { 77, 221, 116, 1 },
+      { 219, 157, 85, 0 },
+      { 151, 93, 217, 0 },
+      { 85, 92, 237, 1 }, },
+    { { 77, 221, 119, 0 },
+      { 211, 223, 85, 0 },
+      { 119, 93, 217, 0 },
+      { 85, 125, 229, 1 }, },
+    { { 77, 220, 152, 0 },
+      { 211, 25, 100, 1 },
+      { 12, 157, 217, 0 },
+      { 147, 76, 101, 1 }, },
+    { { 77, 220, 155, 1 },
+      { 219, 91, 100, 1 },
+      { 236, 157, 217, 0 },
+      { 147, 109, 109, 1 }, },
+    { { 77, 220, 148, 1 },
+      { 219, 25, 116, 0 },
+      { 148, 157, 217, 0 },
+      { 23, 76, 109, 1 }, },
+    { { 77, 220, 151, 0 },
+      { 211, 91, 116, 0 },
+      { 116, 157, 217, 0 },
+      { 23, 109, 101, 1 }, },
+    { { 77, 220, 232, 0 },
+      { 195, 157, 100, 1 },
+      { 11, 157, 217, 0 },
+      { 147, 92, 225, 1 }, },
+    { { 77, 220, 235, 1 },
+      { 203, 223, 100, 1 },
+      { 235, 157, 217, 0 },
+      { 147, 125, 233, 1 }, },
+    { { 77, 220, 228, 1 },
+      { 203, 157, 116, 0 },
+      { 147, 157, 217, 0 },
+      { 23, 92, 233, 1 }, },
+    { { 77, 220, 231, 0 },
+      { 195, 223, 116, 0 },
+      { 115, 157, 217, 0 },
+      { 23, 125, 225, 1 }, },
+    { { 74, 97, 8, 0 },
+      { 192, 1, 131, 1 },
+      { 8, 67, 41, 0 },
+      { 224, 192, 1, 1 }, },
+    { { 74, 97, 11, 1 },
+      { 200, 67, 131, 1 },
+      { 232, 67, 41, 0 },
+      { 224, 225, 9, 1 }, },
+    { { 74, 97, 4, 1 },
+      { 200, 1, 147, 0 },
+      { 144, 67, 41, 0 },
+      { 100, 192, 9, 1 }, },
+    { { 74, 97, 7, 0 },
+      { 192, 67, 147, 0 },
+      { 112, 67, 41, 0 },
+      { 100, 225, 1, 1 }, },
+    { { 74, 97, 120, 0 },
+      { 208, 133, 131, 1 },
+      { 15, 67, 41, 0 },
+      { 224, 208, 133, 1 }, },
+    { { 74, 97, 123, 1 },
+      { 216, 199, 131, 1 },
+      { 239, 67, 41, 0 },
+      { 224, 241, 141, 1 }, },
+    { { 74, 97, 116, 1 },
+      { 216, 133, 147, 0 },
+      { 151, 67, 41, 0 },
+      { 100, 208, 141, 1 }, },
+    { { 74, 97, 119, 0 },
+      { 208, 199, 147, 0 },
+      { 119, 67, 41, 0 },
+      { 100, 241, 133, 1 }, },
+    { { 74, 96, 152, 0 },
+      { 208, 1, 162, 1 },
+      { 12, 131, 41, 0 },
+      { 162, 192, 5, 1 }, },
+    { { 74, 96, 155, 1 },
+      { 216, 67, 162, 1 },
+      { 236, 131, 41, 0 },
+      { 162, 225, 13, 1 }, },
+    { { 74, 96, 148, 1 },
+      { 216, 1, 178, 0 },
+      { 148, 131, 41, 0 },
+      { 38, 192, 13, 1 }, },
+    { { 74, 96, 151, 0 },
+      { 208, 67, 178, 0 },
+      { 116, 131, 41, 0 },
+      { 38, 225, 5, 1 }, },
+    { { 74, 96, 232, 0 },
+      { 192, 133, 162, 1 },
+      { 11, 131, 41, 0 },
+      { 162, 208, 129, 1 }, },
+    { { 74, 96, 235, 1 },
+      { 200, 199, 162, 1 },
+      { 235, 131, 41, 0 },
+      { 162, 241, 137, 1 }, },
+    { { 74, 96, 228, 1 },
+      { 200, 133, 178, 0 },
+      { 147, 131, 41, 0 },
+      { 38, 208, 137, 1 }, },
+    { { 74, 96, 231, 0 },
+      { 192, 199, 178, 0 },
+      { 115, 131, 41, 0 },
+      { 38, 241, 129, 1 }, },
+    { { 74, 111, 8, 0 },
+      { 225, 9, 131, 1 },
+      { 8, 123, 41, 0 },
+      { 224, 200, 67, 1 }, },
+    { { 74, 111, 11, 1 },
+      { 233, 75, 131, 1 },
+      { 232, 123, 41, 0 },
+      { 224, 233, 75, 1 }, },
+    { { 74, 111, 4, 1 },
+      { 233, 9, 147, 0 },
+      { 144, 123, 41, 0 },
+      { 100, 200, 75, 1 }, },
+    { { 74, 111, 7, 0 },
+      { 225, 75, 147, 0 },
+      { 112, 123, 41, 0 },
+      { 100, 233, 67, 1 }, },
+    { { 74, 111, 120, 0 },
+      { 241, 141, 131, 1 },
+      { 15, 123, 41, 0 },
+      { 224, 216, 199, 1 }, },
+    { { 74, 111, 123, 1 },
+      { 249, 207, 131, 1 },
+      { 239, 123, 41, 0 },
+      { 224, 249, 207, 1 }, },
+    { { 74, 111, 116, 1 },
+      { 249, 141, 147, 0 },
+      { 151, 123, 41, 0 },
+      { 100, 216, 207, 1 }, },
+    { { 74, 111, 119, 0 },
+      { 241, 207, 147, 0 },
+      { 119, 123, 41, 0 },
+      { 100, 249, 199, 1 }, },
+    { { 74, 110, 152, 0 },
+      { 241, 9, 162, 1 },
+      { 12, 187, 41, 0 },
+      { 162, 200, 71, 1 }, },
+    { { 74, 110, 155, 1 },
+      { 249, 75, 162, 1 },
+      { 236, 187, 41, 0 },
+      { 162, 233, 79, 1 }, },
+    { { 74, 110, 148, 1 },
+      { 249, 9, 178, 0 },
+      { 148, 187, 41, 0 },
+      { 38, 200, 79, 1 }, },
+    { { 74, 110, 151, 0 },
+      { 241, 75, 178, 0 },
+      { 116, 187, 41, 0 },
+      { 38, 233, 71, 1 }, },
+    { { 74, 110, 232, 0 },
+      { 225, 141, 162, 1 },
+      { 11, 187, 41, 0 },
+      { 162, 216, 195, 1 }, },
+    { { 74, 110, 235, 1 },
+      { 233, 207, 162, 1 },
+      { 235, 187, 41, 0 },
+      { 162, 249, 203, 1 }, },
+    { { 74, 110, 228, 1 },
+      { 233, 141, 178, 0 },
+      { 147, 187, 41, 0 },
+      { 38, 216, 203, 1 }, },
+    { { 74, 110, 231, 0 },
+      { 225, 207, 178, 0 },
+      { 115, 187, 41, 0 },
+      { 38, 249, 195, 1 }, },
+    { { 74, 83, 8, 0 },
+      { 224, 1, 193, 1 },
+      { 8, 101, 41, 0 },
+      { 193, 192, 3, 1 }, },
+    { { 74, 83, 11, 1 },
+      { 232, 67, 193, 1 },
+      { 232, 101, 41, 0 },
+      { 193, 225, 11, 1 }, },
+    { { 74, 83, 4, 1 },
+      { 232, 1, 209, 0 },
+      { 144, 101, 41, 0 },
+      { 69, 192, 11, 1 }, },
+    { { 74, 83, 7, 0 },
+      { 224, 67, 209, 0 },
+      { 112, 101, 41, 0 },
+      { 69, 225, 3, 1 }, },
+    { { 74, 83, 120, 0 },
+      { 240, 133, 193, 1 },
+      { 15, 101, 41, 0 },
+      { 193, 208, 135, 1 }, },
+    { { 74, 83, 123, 1 },
+      { 248, 199, 193, 1 },
+      { 239, 101, 41, 0 },
+      { 193, 241, 143, 1 }, },
+    { { 74, 83, 116, 1 },
+      { 248, 133, 209, 0 },
+      { 151, 101, 41, 0 },
+      { 69, 208, 143, 1 }, },
+    { { 74, 83, 119, 0 },
+      { 240, 199, 209, 0 },
+      { 119, 101, 41, 0 },
+      { 69, 241, 135, 1 }, },
+    { { 74, 82, 152, 0 },
+      { 240, 1, 224, 1 },
+      { 12, 165, 41, 0 },
+      { 131, 192, 7, 1 }, },
+    { { 74, 82, 155, 1 },
+      { 248, 67, 224, 1 },
+      { 236, 165, 41, 0 },
+      { 131, 225, 15, 1 }, },
+    { { 74, 82, 148, 1 },
+      { 248, 1, 240, 0 },
+      { 148, 165, 41, 0 },
+      { 7, 192, 15, 1 }, },
+    { { 74, 82, 151, 0 },
+      { 240, 67, 240, 0 },
+      { 116, 165, 41, 0 },
+      { 7, 225, 7, 1 }, },
+    { { 74, 82, 232, 0 },
+      { 224, 133, 224, 1 },
+      { 11, 165, 41, 0 },
+      { 131, 208, 131, 1 }, },
+    { { 74, 82, 235, 1 },
+      { 232, 199, 224, 1 },
+      { 235, 165, 41, 0 },
+      { 131, 241, 139, 1 }, },
+    { { 74, 82, 228, 1 },
+      { 232, 133, 240, 0 },
+      { 147, 165, 41, 0 },
+      { 7, 208, 139, 1 }, },
+    { { 74, 82, 231, 0 },
+      { 224, 199, 240, 0 },
+      { 115, 165, 41, 0 },
+      { 7, 241, 131, 1 }, },
+    { { 74, 93, 8, 0 },
+      { 193, 9, 193, 1 },
+      { 8, 93, 41, 0 },
+      { 193, 200, 65, 1 }, },
+    { { 74, 93, 11, 1 },
+      { 201, 75, 193, 1 },
+      { 232, 93, 41, 0 },
+      { 193, 233, 73, 1 }, },
+    { { 74, 93, 4, 1 },
+      { 201, 9, 209, 0 },
+      { 144, 93, 41, 0 },
+      { 69, 200, 73, 1 }, },
+    { { 74, 93, 7, 0 },
+      { 193, 75, 209, 0 },
+      { 112, 93, 41, 0 },
+      { 69, 233, 65, 1 }, },
+    { { 74, 93, 120, 0 },
+      { 209, 141, 193, 1 },
+      { 15, 93, 41, 0 },
+      { 193, 216, 197, 1 }, },
+    { { 74, 93, 123, 1 },
+      { 217, 207, 193, 1 },
+      { 239, 93, 41, 0 },
+      { 193, 249, 205, 1 }, },
+    { { 74, 93, 116, 1 },
+      { 217, 141, 209, 0 },
+      { 151, 93, 41, 0 },
+      { 69, 216, 205, 1 }, },
+    { { 74, 93, 119, 0 },
+      { 209, 207, 209, 0 },
+      { 119, 93, 41, 0 },
+      { 69, 249, 197, 1 }, },
+    { { 74, 92, 152, 0 },
+      { 209, 9, 224, 1 },
+      { 12, 157, 41, 0 },
+      { 131, 200, 69, 1 }, },
+    { { 74, 92, 155, 1 },
+      { 217, 75, 224, 1 },
+      { 236, 157, 41, 0 },
+      { 131, 233, 77, 1 }, },
+    { { 74, 92, 148, 1 },
+      { 217, 9, 240, 0 },
+      { 148, 157, 41, 0 },
+      { 7, 200, 77, 1 }, },
+    { { 74, 92, 151, 0 },
+      { 209, 75, 240, 0 },
+      { 116, 157, 41, 0 },
+      { 7, 233, 69, 1 }, },
+    { { 74, 92, 232, 0 },
+      { 193, 141, 224, 1 },
+      { 11, 157, 41, 0 },
+      { 131, 216, 193, 1 }, },
+    { { 74, 92, 235, 1 },
+      { 201, 207, 224, 1 },
+      { 235, 157, 41, 0 },
+      { 131, 249, 201, 1 }, },
+    { { 74, 92, 228, 1 },
+      { 201, 141, 240, 0 },
+      { 147, 157, 41, 0 },
+      { 7, 216, 201, 1 }, },
+    { { 74, 92, 231, 0 },
+      { 193, 207, 240, 0 },
+      { 115, 157, 41, 0 },
+      { 7, 249, 193, 1 }, },
+    { { 75, 161, 8, 0 },
+      { 130, 17, 131, 1 },
+      { 8, 66, 233, 0 },
+      { 224, 196, 32, 1 }, },
+    { { 75, 161, 11, 1 },
+      { 138, 83, 131, 1 },
+      { 232, 66, 233, 0 },
+      { 224, 229, 40, 1 }, },
+    { { 75, 161, 4, 1 },
+      { 138, 17, 147, 0 },
+      { 144, 66, 233, 0 },
+      { 100, 196, 40, 1 }, },
+    { { 75, 161, 7, 0 },
+      { 130, 83, 147, 0 },
+      { 112, 66, 233, 0 },
+      { 100, 229, 32, 1 }, },
+    { { 75, 161, 120, 0 },
+      { 146, 149, 131, 1 },
+      { 15, 66, 233, 0 },
+      { 224, 212, 164, 1 }, },
+    { { 75, 161, 123, 1 },
+      { 154, 215, 131, 1 },
+      { 239, 66, 233, 0 },
+      { 224, 245, 172, 1 }, },
+    { { 75, 161, 116, 1 },
+      { 154, 149, 147, 0 },
+      { 151, 66, 233, 0 },
+      { 100, 212, 172, 1 }, },
+    { { 75, 161, 119, 0 },
+      { 146, 215, 147, 0 },
+      { 119, 66, 233, 0 },
+      { 100, 245, 164, 1 }, },
+    { { 75, 160, 152, 0 },
+      { 146, 17, 162, 1 },
+      { 12, 130, 233, 0 },
+      { 162, 196, 36, 1 }, },
+    { { 75, 160, 155, 1 },
+      { 154, 83, 162, 1 },
+      { 236, 130, 233, 0 },
+      { 162, 229, 44, 1 }, },
+    { { 75, 160, 148, 1 },
+      { 154, 17, 178, 0 },
+      { 148, 130, 233, 0 },
+      { 38, 196, 44, 1 }, },
+    { { 75, 160, 151, 0 },
+      { 146, 83, 178, 0 },
+      { 116, 130, 233, 0 },
+      { 38, 229, 36, 1 }, },
+    { { 75, 160, 232, 0 },
+      { 130, 149, 162, 1 },
+      { 11, 130, 233, 0 },
+      { 162, 212, 160, 1 }, },
+    { { 75, 160, 235, 1 },
+      { 138, 215, 162, 1 },
+      { 235, 130, 233, 0 },
+      { 162, 245, 168, 1 }, },
+    { { 75, 160, 228, 1 },
+      { 138, 149, 178, 0 },
+      { 147, 130, 233, 0 },
+      { 38, 212, 168, 1 }, },
+    { { 75, 160, 231, 0 },
+      { 130, 215, 178, 0 },
+      { 115, 130, 233, 0 },
+      { 38, 245, 160, 1 }, },
+    { { 75, 175, 8, 0 },
+      { 163, 25, 131, 1 },
+      { 8, 122, 233, 0 },
+      { 224, 204, 98, 1 }, },
+    { { 75, 175, 11, 1 },
+      { 171, 91, 131, 1 },
+      { 232, 122, 233, 0 },
+      { 224, 237, 106, 1 }, },
+    { { 75, 175, 4, 1 },
+      { 171, 25, 147, 0 },
+      { 144, 122, 233, 0 },
+      { 100, 204, 106, 1 }, },
+    { { 75, 175, 7, 0 },
+      { 163, 91, 147, 0 },
+      { 112, 122, 233, 0 },
+      { 100, 237, 98, 1 }, },
+    { { 75, 175, 120, 0 },
+      { 179, 157, 131, 1 },
+      { 15, 122, 233, 0 },
+      { 224, 220, 230, 1 }, },
+    { { 75, 175, 123, 1 },
+      { 187, 223, 131, 1 },
+      { 239, 122, 233, 0 },
+      { 224, 253, 238, 1 }, },
+    { { 75, 175, 116, 1 },
+      { 187, 157, 147, 0 },
+      { 151, 122, 233, 0 },
+      { 100, 220, 238, 1 }, },
+    { { 75, 175, 119, 0 },
+      { 179, 223, 147, 0 },
+      { 119, 122, 233, 0 },
+      { 100, 253, 230, 1 }, },
+    { { 75, 174, 152, 0 },
+      { 179, 25, 162, 1 },
+      { 12, 186, 233, 0 },
+      { 162, 204, 102, 1 }, },
+    { { 75, 174, 155, 1 },
+      { 187, 91, 162, 1 },
+      { 236, 186, 233, 0 },
+      { 162, 237, 110, 1 }, },
+    { { 75, 174, 148, 1 },
+      { 187, 25, 178, 0 },
+      { 148, 186, 233, 0 },
+      { 38, 204, 110, 1 }, },
+    { { 75, 174, 151, 0 },
+      { 179, 91, 178, 0 },
+      { 116, 186, 233, 0 },
+      { 38, 237, 102, 1 }, },
+    { { 75, 174, 232, 0 },
+      { 163, 157, 162, 1 },
+      { 11, 186, 233, 0 },
+      { 162, 220, 226, 1 }, },
+    { { 75, 174, 235, 1 },
+      { 171, 223, 162, 1 },
+      { 235, 186, 233, 0 },
+      { 162, 253, 234, 1 }, },
+    { { 75, 174, 228, 1 },
+      { 171, 157, 178, 0 },
+      { 147, 186, 233, 0 },
+      { 38, 220, 234, 1 }, },
+    { { 75, 174, 231, 0 },
+      { 163, 223, 178, 0 },
+      { 115, 186, 233, 0 },
+      { 38, 253, 226, 1 }, },
+    { { 75, 147, 8, 0 },
+      { 162, 17, 193, 1 },
+      { 8, 100, 233, 0 },
+      { 193, 196, 34, 1 }, },
+    { { 75, 147, 11, 1 },
+      { 170, 83, 193, 1 },
+      { 232, 100, 233, 0 },
+      { 193, 229, 42, 1 }, },
+    { { 75, 147, 4, 1 },
+      { 170, 17, 209, 0 },
+      { 144, 100, 233, 0 },
+      { 69, 196, 42, 1 }, },
+    { { 75, 147, 7, 0 },
+      { 162, 83, 209, 0 },
+      { 112, 100, 233, 0 },
+      { 69, 229, 34, 1 }, },
+    { { 75, 147, 120, 0 },
+      { 178, 149, 193, 1 },
+      { 15, 100, 233, 0 },
+      { 193, 212, 166, 1 }, },
+    { { 75, 147, 123, 1 },
+      { 186, 215, 193, 1 },
+      { 239, 100, 233, 0 },
+      { 193, 245, 174, 1 }, },
+    { { 75, 147, 116, 1 },
+      { 186, 149, 209, 0 },
+      { 151, 100, 233, 0 },
+      { 69, 212, 174, 1 }, },
+    { { 75, 147, 119, 0 },
+      { 178, 215, 209, 0 },
+      { 119, 100, 233, 0 },
+      { 69, 245, 166, 1 }, },
+    { { 75, 146, 152, 0 },
+      { 178, 17, 224, 1 },
+      { 12, 164, 233, 0 },
+      { 131, 196, 38, 1 }, },
+    { { 75, 146, 155, 1 },
+      { 186, 83, 224, 1 },
+      { 236, 164, 233, 0 },
+      { 131, 229, 46, 1 }, },
+    { { 75, 146, 148, 1 },
+      { 186, 17, 240, 0 },
+      { 148, 164, 233, 0 },
+      { 7, 196, 46, 1 }, },
+    { { 75, 146, 151, 0 },
+      { 178, 83, 240, 0 },
+      { 116, 164, 233, 0 },
+      { 7, 229, 38, 1 }, },
+    { { 75, 146, 232, 0 },
+      { 162, 149, 224, 1 },
+      { 11, 164, 233, 0 },
+      { 131, 212, 162, 1 }, },
+    { { 75, 146, 235, 1 },
+      { 170, 215, 224, 1 },
+      { 235, 164, 233, 0 },
+      { 131, 245, 170, 1 }, },
+    { { 75, 146, 228, 1 },
+      { 170, 149, 240, 0 },
+      { 147, 164, 233, 0 },
+      { 7, 212, 170, 1 }, },
+    { { 75, 146, 231, 0 },
+      { 162, 215, 240, 0 },
+      { 115, 164, 233, 0 },
+      { 7, 245, 162, 1 }, },
+    { { 75, 157, 8, 0 },
+      { 131, 25, 193, 1 },
+      { 8, 92, 233, 0 },
+      { 193, 204, 96, 1 }, },
+    { { 75, 157, 11, 1 },
+      { 139, 91, 193, 1 },
+      { 232, 92, 233, 0 },
+      { 193, 237, 104, 1 }, },
+    { { 75, 157, 4, 1 },
+      { 139, 25, 209, 0 },
+      { 144, 92, 233, 0 },
+      { 69, 204, 104, 1 }, },
+    { { 75, 157, 7, 0 },
+      { 131, 91, 209, 0 },
+      { 112, 92, 233, 0 },
+      { 69, 237, 96, 1 }, },
+    { { 75, 157, 120, 0 },
+      { 147, 157, 193, 1 },
+      { 15, 92, 233, 0 },
+      { 193, 220, 228, 1 }, },
+    { { 75, 157, 123, 1 },
+      { 155, 223, 193, 1 },
+      { 239, 92, 233, 0 },
+      { 193, 253, 236, 1 }, },
+    { { 75, 157, 116, 1 },
+      { 155, 157, 209, 0 },
+      { 151, 92, 233, 0 },
+      { 69, 220, 236, 1 }, },
+    { { 75, 157, 119, 0 },
+      { 147, 223, 209, 0 },
+      { 119, 92, 233, 0 },
+      { 69, 253, 228, 1 }, },
+    { { 75, 156, 152, 0 },
+      { 147, 25, 224, 1 },
+      { 12, 156, 233, 0 },
+      { 131, 204, 100, 1 }, },
+    { { 75, 156, 155, 1 },
+      { 155, 91, 224, 1 },
+      { 236, 156, 233, 0 },
+      { 131, 237, 108, 1 }, },
+    { { 75, 156, 148, 1 },
+      { 155, 25, 240, 0 },
+      { 148, 156, 233, 0 },
+      { 7, 204, 108, 1 }, },
+    { { 75, 156, 151, 0 },
+      { 147, 91, 240, 0 },
+      { 116, 156, 233, 0 },
+      { 7, 237, 100, 1 }, },
+    { { 75, 156, 232, 0 },
+      { 131, 157, 224, 1 },
+      { 11, 156, 233, 0 },
+      { 131, 220, 224, 1 }, },
+    { { 75, 156, 235, 1 },
+      { 139, 223, 224, 1 },
+      { 235, 156, 233, 0 },
+      { 131, 253, 232, 1 }, },
+    { { 75, 156, 228, 1 },
+      { 139, 157, 240, 0 },
+      { 147, 156, 233, 0 },
+      { 7, 220, 232, 1 }, },
+    { { 75, 156, 231, 0 },
+      { 131, 223, 240, 0 },
+      { 115, 156, 233, 0 },
+      { 7, 253, 224, 1 }, },
+    { { 116, 33, 8, 0 },
+      { 4, 33, 7, 1 },
+      { 8, 66, 23, 0 },
+      { 240, 66, 16, 0 }, },
+    { { 116, 33, 11, 1 },
+      { 12, 99, 7, 1 },
+      { 232, 66, 23, 0 },
+      { 240, 99, 24, 0 }, },
+    { { 116, 33, 4, 1 },
+      { 12, 33, 23, 0 },
+      { 144, 66, 23, 0 },
+      { 116, 66, 24, 0 }, },
+    { { 116, 33, 7, 0 },
+      { 4, 99, 23, 0 },
+      { 112, 66, 23, 0 },
+      { 116, 99, 16, 0 }, },
+    { { 116, 33, 120, 0 },
+      { 20, 165, 7, 1 },
+      { 15, 66, 23, 0 },
+      { 240, 82, 148, 0 }, },
+    { { 116, 33, 123, 1 },
+      { 28, 231, 7, 1 },
+      { 239, 66, 23, 0 },
+      { 240, 115, 156, 0 }, },
+    { { 116, 33, 116, 1 },
+      { 28, 165, 23, 0 },
+      { 151, 66, 23, 0 },
+      { 116, 82, 156, 0 }, },
+    { { 116, 33, 119, 0 },
+      { 20, 231, 23, 0 },
+      { 119, 66, 23, 0 },
+      { 116, 115, 148, 0 }, },
+    { { 116, 32, 152, 0 },
+      { 20, 33, 38, 1 },
+      { 12, 130, 23, 0 },
+      { 178, 66, 20, 0 }, },
+    { { 116, 32, 155, 1 },
+      { 28, 99, 38, 1 },
+      { 236, 130, 23, 0 },
+      { 178, 99, 28, 0 }, },
+    { { 116, 32, 148, 1 },
+      { 28, 33, 54, 0 },
+      { 148, 130, 23, 0 },
+      { 54, 66, 28, 0 }, },
+    { { 116, 32, 151, 0 },
+      { 20, 99, 54, 0 },
+      { 116, 130, 23, 0 },
+      { 54, 99, 20, 0 }, },
+    { { 116, 32, 232, 0 },
+      { 4, 165, 38, 1 },
+      { 11, 130, 23, 0 },
+      { 178, 82, 144, 0 }, },
+    { { 116, 32, 235, 1 },
+      { 12, 231, 38, 1 },
+      { 235, 130, 23, 0 },
+      { 178, 115, 152, 0 }, },
+    { { 116, 32, 228, 1 },
+      { 12, 165, 54, 0 },
+      { 147, 130, 23, 0 },
+      { 54, 82, 152, 0 }, },
+    { { 116, 32, 231, 0 },
+      { 4, 231, 54, 0 },
+      { 115, 130, 23, 0 },
+      { 54, 115, 144, 0 }, },
+    { { 116, 47, 8, 0 },
+      { 37, 41, 7, 1 },
+      { 8, 122, 23, 0 },
+      { 240, 74, 82, 0 }, },
+    { { 116, 47, 11, 1 },
+      { 45, 107, 7, 1 },
+      { 232, 122, 23, 0 },
+      { 240, 107, 90, 0 }, },
+    { { 116, 47, 4, 1 },
+      { 45, 41, 23, 0 },
+      { 144, 122, 23, 0 },
+      { 116, 74, 90, 0 }, },
+    { { 116, 47, 7, 0 },
+      { 37, 107, 23, 0 },
+      { 112, 122, 23, 0 },
+      { 116, 107, 82, 0 }, },
+    { { 116, 47, 120, 0 },
+      { 53, 173, 7, 1 },
+      { 15, 122, 23, 0 },
+      { 240, 90, 214, 0 }, },
+    { { 116, 47, 123, 1 },
+      { 61, 239, 7, 1 },
+      { 239, 122, 23, 0 },
+      { 240, 123, 222, 0 }, },
+    { { 116, 47, 116, 1 },
+      { 61, 173, 23, 0 },
+      { 151, 122, 23, 0 },
+      { 116, 90, 222, 0 }, },
+    { { 116, 47, 119, 0 },
+      { 53, 239, 23, 0 },
+      { 119, 122, 23, 0 },
+      { 116, 123, 214, 0 }, },
+    { { 116, 46, 152, 0 },
+      { 53, 41, 38, 1 },
+      { 12, 186, 23, 0 },
+      { 178, 74, 86, 0 }, },
+    { { 116, 46, 155, 1 },
+      { 61, 107, 38, 1 },
+      { 236, 186, 23, 0 },
+      { 178, 107, 94, 0 }, },
+    { { 116, 46, 148, 1 },
+      { 61, 41, 54, 0 },
+      { 148, 186, 23, 0 },
+      { 54, 74, 94, 0 }, },
+    { { 116, 46, 151, 0 },
+      { 53, 107, 54, 0 },
+      { 116, 186, 23, 0 },
+      { 54, 107, 86, 0 }, },
+    { { 116, 46, 232, 0 },
+      { 37, 173, 38, 1 },
+      { 11, 186, 23, 0 },
+      { 178, 90, 210, 0 }, },
+    { { 116, 46, 235, 1 },
+      { 45, 239, 38, 1 },
+      { 235, 186, 23, 0 },
+      { 178, 123, 218, 0 }, },
+    { { 116, 46, 228, 1 },
+      { 45, 173, 54, 0 },
+      { 147, 186, 23, 0 },
+      { 54, 90, 218, 0 }, },
+    { { 116, 46, 231, 0 },
+      { 37, 239, 54, 0 },
+      { 115, 186, 23, 0 },
+      { 54, 123, 210, 0 }, },
+    { { 116, 19, 8, 0 },
+      { 36, 33, 69, 1 },
+      { 8, 100, 23, 0 },
+      { 209, 66, 18, 0 }, },
+    { { 116, 19, 11, 1 },
+      { 44, 99, 69, 1 },
+      { 232, 100, 23, 0 },
+      { 209, 99, 26, 0 }, },
+    { { 116, 19, 4, 1 },
+      { 44, 33, 85, 0 },
+      { 144, 100, 23, 0 },
+      { 85, 66, 26, 0 }, },
+    { { 116, 19, 7, 0 },
+      { 36, 99, 85, 0 },
+      { 112, 100, 23, 0 },
+      { 85, 99, 18, 0 }, },
+    { { 116, 19, 120, 0 },
+      { 52, 165, 69, 1 },
+      { 15, 100, 23, 0 },
+      { 209, 82, 150, 0 }, },
+    { { 116, 19, 123, 1 },
+      { 60, 231, 69, 1 },
+      { 239, 100, 23, 0 },
+      { 209, 115, 158, 0 }, },
+    { { 116, 19, 116, 1 },
+      { 60, 165, 85, 0 },
+      { 151, 100, 23, 0 },
+      { 85, 82, 158, 0 }, },
+    { { 116, 19, 119, 0 },
+      { 52, 231, 85, 0 },
+      { 119, 100, 23, 0 },
+      { 85, 115, 150, 0 }, },
+    { { 116, 18, 152, 0 },
+      { 52, 33, 100, 1 },
+      { 12, 164, 23, 0 },
+      { 147, 66, 22, 0 }, },
+    { { 116, 18, 155, 1 },
+      { 60, 99, 100, 1 },
+      { 236, 164, 23, 0 },
+      { 147, 99, 30, 0 }, },
+    { { 116, 18, 148, 1 },
+      { 60, 33, 116, 0 },
+      { 148, 164, 23, 0 },
+      { 23, 66, 30, 0 }, },
+    { { 116, 18, 151, 0 },
+      { 52, 99, 116, 0 },
+      { 116, 164, 23, 0 },
+      { 23, 99, 22, 0 }, },
+    { { 116, 18, 232, 0 },
+      { 36, 165, 100, 1 },
+      { 11, 164, 23, 0 },
+      { 147, 82, 146, 0 }, },
+    { { 116, 18, 235, 1 },
+      { 44, 231, 100, 1 },
+      { 235, 164, 23, 0 },
+      { 147, 115, 154, 0 }, },
+    { { 116, 18, 228, 1 },
+      { 44, 165, 116, 0 },
+      { 147, 164, 23, 0 },
+      { 23, 82, 154, 0 }, },
+    { { 116, 18, 231, 0 },
+      { 36, 231, 116, 0 },
+      { 115, 164, 23, 0 },
+      { 23, 115, 146, 0 }, },
+    { { 116, 29, 8, 0 },
+      { 5, 41, 69, 1 },
+      { 8, 92, 23, 0 },
+      { 209, 74, 80, 0 }, },
+    { { 116, 29, 11, 1 },
+      { 13, 107, 69, 1 },
+      { 232, 92, 23, 0 },
+      { 209, 107, 88, 0 }, },
+    { { 116, 29, 4, 1 },
+      { 13, 41, 85, 0 },
+      { 144, 92, 23, 0 },
+      { 85, 74, 88, 0 }, },
+    { { 116, 29, 7, 0 },
+      { 5, 107, 85, 0 },
+      { 112, 92, 23, 0 },
+      { 85, 107, 80, 0 }, },
+    { { 116, 29, 120, 0 },
+      { 21, 173, 69, 1 },
+      { 15, 92, 23, 0 },
+      { 209, 90, 212, 0 }, },
+    { { 116, 29, 123, 1 },
+      { 29, 239, 69, 1 },
+      { 239, 92, 23, 0 },
+      { 209, 123, 220, 0 }, },
+    { { 116, 29, 116, 1 },
+      { 29, 173, 85, 0 },
+      { 151, 92, 23, 0 },
+      { 85, 90, 220, 0 }, },
+    { { 116, 29, 119, 0 },
+      { 21, 239, 85, 0 },
+      { 119, 92, 23, 0 },
+      { 85, 123, 212, 0 }, },
+    { { 116, 28, 152, 0 },
+      { 21, 41, 100, 1 },
+      { 12, 156, 23, 0 },
+      { 147, 74, 84, 0 }, },
+    { { 116, 28, 155, 1 },
+      { 29, 107, 100, 1 },
+      { 236, 156, 23, 0 },
+      { 147, 107, 92, 0 }, },
+    { { 116, 28, 148, 1 },
+      { 29, 41, 116, 0 },
+      { 148, 156, 23, 0 },
+      { 23, 74, 92, 0 }, },
+    { { 116, 28, 151, 0 },
+      { 21, 107, 116, 0 },
+      { 116, 156, 23, 0 },
+      { 23, 107, 84, 0 }, },
+    { { 116, 28, 232, 0 },
+      { 5, 173, 100, 1 },
+      { 11, 156, 23, 0 },
+      { 147, 90, 208, 0 }, },
+    { { 116, 28, 235, 1 },
+      { 13, 239, 100, 1 },
+      { 235, 156, 23, 0 },
+      { 147, 123, 216, 0 }, },
+    { { 116, 28, 228, 1 },
+      { 13, 173, 116, 0 },
+      { 147, 156, 23, 0 },
+      { 23, 90, 216, 0 }, },
+    { { 116, 28, 231, 0 },
+      { 5, 239, 116, 0 },
+      { 115, 156, 23, 0 },
+      { 23, 123, 208, 0 }, },
+    { { 117, 225, 8, 0 },
+      { 70, 49, 7, 1 },
+      { 8, 67, 215, 0 },
+      { 240, 70, 49, 0 }, },
+    { { 117, 225, 11, 1 },
+      { 78, 115, 7, 1 },
+      { 232, 67, 215, 0 },
+      { 240, 103, 57, 0 }, },
+    { { 117, 225, 4, 1 },
+      { 78, 49, 23, 0 },
+      { 144, 67, 215, 0 },
+      { 116, 70, 57, 0 }, },
+    { { 117, 225, 7, 0 },
+      { 70, 115, 23, 0 },
+      { 112, 67, 215, 0 },
+      { 116, 103, 49, 0 }, },
+    { { 117, 225, 120, 0 },
+      { 86, 181, 7, 1 },
+      { 15, 67, 215, 0 },
+      { 240, 86, 181, 0 }, },
+    { { 117, 225, 123, 1 },
+      { 94, 247, 7, 1 },
+      { 239, 67, 215, 0 },
+      { 240, 119, 189, 0 }, },
+    { { 117, 225, 116, 1 },
+      { 94, 181, 23, 0 },
+      { 151, 67, 215, 0 },
+      { 116, 86, 189, 0 }, },
+    { { 117, 225, 119, 0 },
+      { 86, 247, 23, 0 },
+      { 119, 67, 215, 0 },
+      { 116, 119, 181, 0 }, },
+    { { 117, 224, 152, 0 },
+      { 86, 49, 38, 1 },
+      { 12, 131, 215, 0 },
+      { 178, 70, 53, 0 }, },
+    { { 117, 224, 155, 1 },
+      { 94, 115, 38, 1 },
+      { 236, 131, 215, 0 },
+      { 178, 103, 61, 0 }, },
+    { { 117, 224, 148, 1 },
+      { 94, 49, 54, 0 },
+      { 148, 131, 215, 0 },
+      { 54, 70, 61, 0 }, },
+    { { 117, 224, 151, 0 },
+      { 86, 115, 54, 0 },
+      { 116, 131, 215, 0 },
+      { 54, 103, 53, 0 }, },
+    { { 117, 224, 232, 0 },
+      { 70, 181, 38, 1 },
+      { 11, 131, 215, 0 },
+      { 178, 86, 177, 0 }, },
+    { { 117, 224, 235, 1 },
+      { 78, 247, 38, 1 },
+      { 235, 131, 215, 0 },
+      { 178, 119, 185, 0 }, },
+    { { 117, 224, 228, 1 },
+      { 78, 181, 54, 0 },
+      { 147, 131, 215, 0 },
+      { 54, 86, 185, 0 }, },
+    { { 117, 224, 231, 0 },
+      { 70, 247, 54, 0 },
+      { 115, 131, 215, 0 },
+      { 54, 119, 177, 0 }, },
+    { { 117, 239, 8, 0 },
+      { 103, 57, 7, 1 },
+      { 8, 123, 215, 0 },
+      { 240, 78, 115, 0 }, },
+    { { 117, 239, 11, 1 },
+      { 111, 123, 7, 1 },
+      { 232, 123, 215, 0 },
+      { 240, 111, 123, 0 }, },
+    { { 117, 239, 4, 1 },
+      { 111, 57, 23, 0 },
+      { 144, 123, 215, 0 },
+      { 116, 78, 123, 0 }, },
+    { { 117, 239, 7, 0 },
+      { 103, 123, 23, 0 },
+      { 112, 123, 215, 0 },
+      { 116, 111, 115, 0 }, },
+    { { 117, 239, 120, 0 },
+      { 119, 189, 7, 1 },
+      { 15, 123, 215, 0 },
+      { 240, 94, 247, 0 }, },
+    { { 117, 239, 123, 1 },
+      { 127, 255, 7, 1 },
+      { 239, 123, 215, 0 },
+      { 240, 127, 255, 0 }, },
+    { { 117, 239, 116, 1 },
+      { 127, 189, 23, 0 },
+      { 151, 123, 215, 0 },
+      { 116, 94, 255, 0 }, },
+    { { 117, 239, 119, 0 },
+      { 119, 255, 23, 0 },
+      { 119, 123, 215, 0 },
+      { 116, 127, 247, 0 }, },
+    { { 117, 238, 152, 0 },
+      { 119, 57, 38, 1 },
+      { 12, 187, 215, 0 },
+      { 178, 78, 119, 0 }, },
+    { { 117, 238, 155, 1 },
+      { 127, 123, 38, 1 },
+      { 236, 187, 215, 0 },
+      { 178, 111, 127, 0 }, },
+    { { 117, 238, 148, 1 },
+      { 127, 57, 54, 0 },
+      { 148, 187, 215, 0 },
+      { 54, 78, 127, 0 }, },
+    { { 117, 238, 151, 0 },
+      { 119, 123, 54, 0 },
+      { 116, 187, 215, 0 },
+      { 54, 111, 119, 0 }, },
+    { { 117, 238, 232, 0 },
+      { 103, 189, 38, 1 },
+      { 11, 187, 215, 0 },
+      { 178, 94, 243, 0 }, },
+    { { 117, 238, 235, 1 },
+      { 111, 255, 38, 1 },
+      { 235, 187, 215, 0 },
+      { 178, 127, 251, 0 }, },
+    { { 117, 238, 228, 1 },
+      { 111, 189, 54, 0 },
+      { 147, 187, 215, 0 },
+      { 54, 94, 251, 0 }, },
+    { { 117, 238, 231, 0 },
+      { 103, 255, 54, 0 },
+      { 115, 187, 215, 0 },
+      { 54, 127, 243, 0 }, },
+    { { 117, 211, 8, 0 },
+      { 102, 49, 69, 1 },
+      { 8, 101, 215, 0 },
+      { 209, 70, 51, 0 }, },
+    { { 117, 211, 11, 1 },
+      { 110, 115, 69, 1 },
+      { 232, 101, 215, 0 },
+      { 209, 103, 59, 0 }, },
+    { { 117, 211, 4, 1 },
+      { 110, 49, 85, 0 },
+      { 144, 101, 215, 0 },
+      { 85, 70, 59, 0 }, },
+    { { 117, 211, 7, 0 },
+      { 102, 115, 85, 0 },
+      { 112, 101, 215, 0 },
+      { 85, 103, 51, 0 }, },
+    { { 117, 211, 120, 0 },
+      { 118, 181, 69, 1 },
+      { 15, 101, 215, 0 },
+      { 209, 86, 183, 0 }, },
+    { { 117, 211, 123, 1 },
+      { 126, 247, 69, 1 },
+      { 239, 101, 215, 0 },
+      { 209, 119, 191, 0 }, },
+    { { 117, 211, 116, 1 },
+      { 126, 181, 85, 0 },
+      { 151, 101, 215, 0 },
+      { 85, 86, 191, 0 }, },
+    { { 117, 211, 119, 0 },
+      { 118, 247, 85, 0 },
+      { 119, 101, 215, 0 },
+      { 85, 119, 183, 0 }, },
+    { { 117, 210, 152, 0 },
+      { 118, 49, 100, 1 },
+      { 12, 165, 215, 0 },
+      { 147, 70, 55, 0 }, },
+    { { 117, 210, 155, 1 },
+      { 126, 115, 100, 1 },
+      { 236, 165, 215, 0 },
+      { 147, 103, 63, 0 }, },
+    { { 117, 210, 148, 1 },
+      { 126, 49, 116, 0 },
+      { 148, 165, 215, 0 },
+      { 23, 70, 63, 0 }, },
+    { { 117, 210, 151, 0 },
+      { 118, 115, 116, 0 },
+      { 116, 165, 215, 0 },
+      { 23, 103, 55, 0 }, },
+    { { 117, 210, 232, 0 },
+      { 102, 181, 100, 1 },
+      { 11, 165, 215, 0 },
+      { 147, 86, 179, 0 }, },
+    { { 117, 210, 235, 1 },
+      { 110, 247, 100, 1 },
+      { 235, 165, 215, 0 },
+      { 147, 119, 187, 0 }, },
+    { { 117, 210, 228, 1 },
+      { 110, 181, 116, 0 },
+      { 147, 165, 215, 0 },
+      { 23, 86, 187, 0 }, },
+    { { 117, 210, 231, 0 },
+      { 102, 247, 116, 0 },
+      { 115, 165, 215, 0 },
+      { 23, 119, 179, 0 }, },
+    { { 117, 221, 8, 0 },
+      { 71, 57, 69, 1 },
+      { 8, 93, 215, 0 },
+      { 209, 78, 113, 0 }, },
+    { { 117, 221, 11, 1 },
+      { 79, 123, 69, 1 },
+      { 232, 93, 215, 0 },
+      { 209, 111, 121, 0 }, },
+    { { 117, 221, 4, 1 },
+      { 79, 57, 85, 0 },
+      { 144, 93, 215, 0 },
+      { 85, 78, 121, 0 }, },
+    { { 117, 221, 7, 0 },
+      { 71, 123, 85, 0 },
+      { 112, 93, 215, 0 },
+      { 85, 111, 113, 0 }, },
+    { { 117, 221, 120, 0 },
+      { 87, 189, 69, 1 },
+      { 15, 93, 215, 0 },
+      { 209, 94, 245, 0 }, },
+    { { 117, 221, 123, 1 },
+      { 95, 255, 69, 1 },
+      { 239, 93, 215, 0 },
+      { 209, 127, 253, 0 }, },
+    { { 117, 221, 116, 1 },
+      { 95, 189, 85, 0 },
+      { 151, 93, 215, 0 },
+      { 85, 94, 253, 0 }, },
+    { { 117, 221, 119, 0 },
+      { 87, 255, 85, 0 },
+      { 119, 93, 215, 0 },
+      { 85, 127, 245, 0 }, },
+    { { 117, 220, 152, 0 },
+      { 87, 57, 100, 1 },
+      { 12, 157, 215, 0 },
+      { 147, 78, 117, 0 }, },
+    { { 117, 220, 155, 1 },
+      { 95, 123, 100, 1 },
+      { 236, 157, 215, 0 },
+      { 147, 111, 125, 0 }, },
+    { { 117, 220, 148, 1 },
+      { 95, 57, 116, 0 },
+      { 148, 157, 215, 0 },
+      { 23, 78, 125, 0 }, },
+    { { 117, 220, 151, 0 },
+      { 87, 123, 116, 0 },
+      { 116, 157, 215, 0 },
+      { 23, 111, 117, 0 }, },
+    { { 117, 220, 232, 0 },
+      { 71, 189, 100, 1 },
+      { 11, 157, 215, 0 },
+      { 147, 94, 241, 0 }, },
+    { { 117, 220, 235, 1 },
+      { 79, 255, 100, 1 },
+      { 235, 157, 215, 0 },
+      { 147, 127, 249, 0 }, },
+    { { 117, 220, 228, 1 },
+      { 79, 189, 116, 0 },
+      { 147, 157, 215, 0 },
+      { 23, 94, 249, 0 }, },
+    { { 117, 220, 231, 0 },
+      { 71, 255, 116, 0 },
+      { 115, 157, 215, 0 },
+      { 23, 127, 241, 0 }, },
+    { { 114, 97, 8, 0 },
+      { 68, 33, 131, 1 },
+      { 8, 67, 39, 0 },
+      { 224, 194, 17, 0 }, },
+    { { 114, 97, 11, 1 },
+      { 76, 99, 131, 1 },
+      { 232, 67, 39, 0 },
+      { 224, 227, 25, 0 }, },
+    { { 114, 97, 4, 1 },
+      { 76, 33, 147, 0 },
+      { 144, 67, 39, 0 },
+      { 100, 194, 25, 0 }, },
+    { { 114, 97, 7, 0 },
+      { 68, 99, 147, 0 },
+      { 112, 67, 39, 0 },
+      { 100, 227, 17, 0 }, },
+    { { 114, 97, 120, 0 },
+      { 84, 165, 131, 1 },
+      { 15, 67, 39, 0 },
+      { 224, 210, 149, 0 }, },
+    { { 114, 97, 123, 1 },
+      { 92, 231, 131, 1 },
+      { 239, 67, 39, 0 },
+      { 224, 243, 157, 0 }, },
+    { { 114, 97, 116, 1 },
+      { 92, 165, 147, 0 },
+      { 151, 67, 39, 0 },
+      { 100, 210, 157, 0 }, },
+    { { 114, 97, 119, 0 },
+      { 84, 231, 147, 0 },
+      { 119, 67, 39, 0 },
+      { 100, 243, 149, 0 }, },
+    { { 114, 96, 152, 0 },
+      { 84, 33, 162, 1 },
+      { 12, 131, 39, 0 },
+      { 162, 194, 21, 0 }, },
+    { { 114, 96, 155, 1 },
+      { 92, 99, 162, 1 },
+      { 236, 131, 39, 0 },
+      { 162, 227, 29, 0 }, },
+    { { 114, 96, 148, 1 },
+      { 92, 33, 178, 0 },
+      { 148, 131, 39, 0 },
+      { 38, 194, 29, 0 }, },
+    { { 114, 96, 151, 0 },
+      { 84, 99, 178, 0 },
+      { 116, 131, 39, 0 },
+      { 38, 227, 21, 0 }, },
+    { { 114, 96, 232, 0 },
+      { 68, 165, 162, 1 },
+      { 11, 131, 39, 0 },
+      { 162, 210, 145, 0 }, },
+    { { 114, 96, 235, 1 },
+      { 76, 231, 162, 1 },
+      { 235, 131, 39, 0 },
+      { 162, 243, 153, 0 }, },
+    { { 114, 96, 228, 1 },
+      { 76, 165, 178, 0 },
+      { 147, 131, 39, 0 },
+      { 38, 210, 153, 0 }, },
+    { { 114, 96, 231, 0 },
+      { 68, 231, 178, 0 },
+      { 115, 131, 39, 0 },
+      { 38, 243, 145, 0 }, },
+    { { 114, 111, 8, 0 },
+      { 101, 41, 131, 1 },
+      { 8, 123, 39, 0 },
+      { 224, 202, 83, 0 }, },
+    { { 114, 111, 11, 1 },
+      { 109, 107, 131, 1 },
+      { 232, 123, 39, 0 },
+      { 224, 235, 91, 0 }, },
+    { { 114, 111, 4, 1 },
+      { 109, 41, 147, 0 },
+      { 144, 123, 39, 0 },
+      { 100, 202, 91, 0 }, },
+    { { 114, 111, 7, 0 },
+      { 101, 107, 147, 0 },
+      { 112, 123, 39, 0 },
+      { 100, 235, 83, 0 }, },
+    { { 114, 111, 120, 0 },
+      { 117, 173, 131, 1 },
+      { 15, 123, 39, 0 },
+      { 224, 218, 215, 0 }, },
+    { { 114, 111, 123, 1 },
+      { 125, 239, 131, 1 },
+      { 239, 123, 39, 0 },
+      { 224, 251, 223, 0 }, },
+    { { 114, 111, 116, 1 },
+      { 125, 173, 147, 0 },
+      { 151, 123, 39, 0 },
+      { 100, 218, 223, 0 }, },
+    { { 114, 111, 119, 0 },
+      { 117, 239, 147, 0 },
+      { 119, 123, 39, 0 },
+      { 100, 251, 215, 0 }, },
+    { { 114, 110, 152, 0 },
+      { 117, 41, 162, 1 },
+      { 12, 187, 39, 0 },
+      { 162, 202, 87, 0 }, },
+    { { 114, 110, 155, 1 },
+      { 125, 107, 162, 1 },
+      { 236, 187, 39, 0 },
+      { 162, 235, 95, 0 }, },
+    { { 114, 110, 148, 1 },
+      { 125, 41, 178, 0 },
+      { 148, 187, 39, 0 },
+      { 38, 202, 95, 0 }, },
+    { { 114, 110, 151, 0 },
+      { 117, 107, 178, 0 },
+      { 116, 187, 39, 0 },
+      { 38, 235, 87, 0 }, },
+    { { 114, 110, 232, 0 },
+      { 101, 173, 162, 1 },
+      { 11, 187, 39, 0 },
+      { 162, 218, 211, 0 }, },
+    { { 114, 110, 235, 1 },
+      { 109, 239, 162, 1 },
+      { 235, 187, 39, 0 },
+      { 162, 251, 219, 0 }, },
+    { { 114, 110, 228, 1 },
+      { 109, 173, 178, 0 },
+      { 147, 187, 39, 0 },
+      { 38, 218, 219, 0 }, },
+    { { 114, 110, 231, 0 },
+      { 101, 239, 178, 0 },
+      { 115, 187, 39, 0 },
+      { 38, 251, 211, 0 }, },
+    { { 114, 83, 8, 0 },
+      { 100, 33, 193, 1 },
+      { 8, 101, 39, 0 },
+      { 193, 194, 19, 0 }, },
+    { { 114, 83, 11, 1 },
+      { 108, 99, 193, 1 },
+      { 232, 101, 39, 0 },
+      { 193, 227, 27, 0 }, },
+    { { 114, 83, 4, 1 },
+      { 108, 33, 209, 0 },
+      { 144, 101, 39, 0 },
+      { 69, 194, 27, 0 }, },
+    { { 114, 83, 7, 0 },
+      { 100, 99, 209, 0 },
+      { 112, 101, 39, 0 },
+      { 69, 227, 19, 0 }, },
+    { { 114, 83, 120, 0 },
+      { 116, 165, 193, 1 },
+      { 15, 101, 39, 0 },
+      { 193, 210, 151, 0 }, },
+    { { 114, 83, 123, 1 },
+      { 124, 231, 193, 1 },
+      { 239, 101, 39, 0 },
+      { 193, 243, 159, 0 }, },
+    { { 114, 83, 116, 1 },
+      { 124, 165, 209, 0 },
+      { 151, 101, 39, 0 },
+      { 69, 210, 159, 0 }, },
+    { { 114, 83, 119, 0 },
+      { 116, 231, 209, 0 },
+      { 119, 101, 39, 0 },
+      { 69, 243, 151, 0 }, },
+    { { 114, 82, 152, 0 },
+      { 116, 33, 224, 1 },
+      { 12, 165, 39, 0 },
+      { 131, 194, 23, 0 }, },
+    { { 114, 82, 155, 1 },
+      { 124, 99, 224, 1 },
+      { 236, 165, 39, 0 },
+      { 131, 227, 31, 0 }, },
+    { { 114, 82, 148, 1 },
+      { 124, 33, 240, 0 },
+      { 148, 165, 39, 0 },
+      { 7, 194, 31, 0 }, },
+    { { 114, 82, 151, 0 },
+      { 116, 99, 240, 0 },
+      { 116, 165, 39, 0 },
+      { 7, 227, 23, 0 }, },
+    { { 114, 82, 232, 0 },
+      { 100, 165, 224, 1 },
+      { 11, 165, 39, 0 },
+      { 131, 210, 147, 0 }, },
+    { { 114, 82, 235, 1 },
+      { 108, 231, 224, 1 },
+      { 235, 165, 39, 0 },
+      { 131, 243, 155, 0 }, },
+    { { 114, 82, 228, 1 },
+      { 108, 165, 240, 0 },
+      { 147, 165, 39, 0 },
+      { 7, 210, 155, 0 }, },
+    { { 114, 82, 231, 0 },
+      { 100, 231, 240, 0 },
+      { 115, 165, 39, 0 },
+      { 7, 243, 147, 0 }, },
+    { { 114, 93, 8, 0 },
+      { 69, 41, 193, 1 },
+      { 8, 93, 39, 0 },
+      { 193, 202, 81, 0 }, },
+    { { 114, 93, 11, 1 },
+      { 77, 107, 193, 1 },
+      { 232, 93, 39, 0 },
+      { 193, 235, 89, 0 }, },
+    { { 114, 93, 4, 1 },
+      { 77, 41, 209, 0 },
+      { 144, 93, 39, 0 },
+      { 69, 202, 89, 0 }, },
+    { { 114, 93, 7, 0 },
+      { 69, 107, 209, 0 },
+      { 112, 93, 39, 0 },
+      { 69, 235, 81, 0 }, },
+    { { 114, 93, 120, 0 },
+      { 85, 173, 193, 1 },
+      { 15, 93, 39, 0 },
+      { 193, 218, 213, 0 }, },
+    { { 114, 93, 123, 1 },
+      { 93, 239, 193, 1 },
+      { 239, 93, 39, 0 },
+      { 193, 251, 221, 0 }, },
+    { { 114, 93, 116, 1 },
+      { 93, 173, 209, 0 },
+      { 151, 93, 39, 0 },
+      { 69, 218, 221, 0 }, },
+    { { 114, 93, 119, 0 },
+      { 85, 239, 209, 0 },
+      { 119, 93, 39, 0 },
+      { 69, 251, 213, 0 }, },
+    { { 114, 92, 152, 0 },
+      { 85, 41, 224, 1 },
+      { 12, 157, 39, 0 },
+      { 131, 202, 85, 0 }, },
+    { { 114, 92, 155, 1 },
+      { 93, 107, 224, 1 },
+      { 236, 157, 39, 0 },
+      { 131, 235, 93, 0 }, },
+    { { 114, 92, 148, 1 },
+      { 93, 41, 240, 0 },
+      { 148, 157, 39, 0 },
+      { 7, 202, 93, 0 }, },
+    { { 114, 92, 151, 0 },
+      { 85, 107, 240, 0 },
+      { 116, 157, 39, 0 },
+      { 7, 235, 85, 0 }, },
+    { { 114, 92, 232, 0 },
+      { 69, 173, 224, 1 },
+      { 11, 157, 39, 0 },
+      { 131, 218, 209, 0 }, },
+    { { 114, 92, 235, 1 },
+      { 77, 239, 224, 1 },
+      { 235, 157, 39, 0 },
+      { 131, 251, 217, 0 }, },
+    { { 114, 92, 228, 1 },
+      { 77, 173, 240, 0 },
+      { 147, 157, 39, 0 },
+      { 7, 218, 217, 0 }, },
+    { { 114, 92, 231, 0 },
+      { 69, 239, 240, 0 },
+      { 115, 157, 39, 0 },
+      { 7, 251, 209, 0 }, },
+    { { 115, 161, 8, 0 },
+      { 6, 49, 131, 1 },
+      { 8, 66, 231, 0 },
+      { 224, 198, 48, 0 }, },
+    { { 115, 161, 11, 1 },
+      { 14, 115, 131, 1 },
+      { 232, 66, 231, 0 },
+      { 224, 231, 56, 0 }, },
+    { { 115, 161, 4, 1 },
+      { 14, 49, 147, 0 },
+      { 144, 66, 231, 0 },
+      { 100, 198, 56, 0 }, },
+    { { 115, 161, 7, 0 },
+      { 6, 115, 147, 0 },
+      { 112, 66, 231, 0 },
+      { 100, 231, 48, 0 }, },
+    { { 115, 161, 120, 0 },
+      { 22, 181, 131, 1 },
+      { 15, 66, 231, 0 },
+      { 224, 214, 180, 0 }, },
+    { { 115, 161, 123, 1 },
+      { 30, 247, 131, 1 },
+      { 239, 66, 231, 0 },
+      { 224, 247, 188, 0 }, },
+    { { 115, 161, 116, 1 },
+      { 30, 181, 147, 0 },
+      { 151, 66, 231, 0 },
+      { 100, 214, 188, 0 }, },
+    { { 115, 161, 119, 0 },
+      { 22, 247, 147, 0 },
+      { 119, 66, 231, 0 },
+      { 100, 247, 180, 0 }, },
+    { { 115, 160, 152, 0 },
+      { 22, 49, 162, 1 },
+      { 12, 130, 231, 0 },
+      { 162, 198, 52, 0 }, },
+    { { 115, 160, 155, 1 },
+      { 30, 115, 162, 1 },
+      { 236, 130, 231, 0 },
+      { 162, 231, 60, 0 }, },
+    { { 115, 160, 148, 1 },
+      { 30, 49, 178, 0 },
+      { 148, 130, 231, 0 },
+      { 38, 198, 60, 0 }, },
+    { { 115, 160, 151, 0 },
+      { 22, 115, 178, 0 },
+      { 116, 130, 231, 0 },
+      { 38, 231, 52, 0 }, },
+    { { 115, 160, 232, 0 },
+      { 6, 181, 162, 1 },
+      { 11, 130, 231, 0 },
+      { 162, 214, 176, 0 }, },
+    { { 115, 160, 235, 1 },
+      { 14, 247, 162, 1 },
+      { 235, 130, 231, 0 },
+      { 162, 247, 184, 0 }, },
+    { { 115, 160, 228, 1 },
+      { 14, 181, 178, 0 },
+      { 147, 130, 231, 0 },
+      { 38, 214, 184, 0 }, },
+    { { 115, 160, 231, 0 },
+      { 6, 247, 178, 0 },
+      { 115, 130, 231, 0 },
+      { 38, 247, 176, 0 }, },
+    { { 115, 175, 8, 0 },
+      { 39, 57, 131, 1 },
+      { 8, 122, 231, 0 },
+      { 224, 206, 114, 0 }, },
+    { { 115, 175, 11, 1 },
+      { 47, 123, 131, 1 },
+      { 232, 122, 231, 0 },
+      { 224, 239, 122, 0 }, },
+    { { 115, 175, 4, 1 },
+      { 47, 57, 147, 0 },
+      { 144, 122, 231, 0 },
+      { 100, 206, 122, 0 }, },
+    { { 115, 175, 7, 0 },
+      { 39, 123, 147, 0 },
+      { 112, 122, 231, 0 },
+      { 100, 239, 114, 0 }, },
+    { { 115, 175, 120, 0 },
+      { 55, 189, 131, 1 },
+      { 15, 122, 231, 0 },
+      { 224, 222, 246, 0 }, },
+    { { 115, 175, 123, 1 },
+      { 63, 255, 131, 1 },
+      { 239, 122, 231, 0 },
+      { 224, 255, 254, 0 }, },
+    { { 115, 175, 116, 1 },
+      { 63, 189, 147, 0 },
+      { 151, 122, 231, 0 },
+      { 100, 222, 254, 0 }, },
+    { { 115, 175, 119, 0 },
+      { 55, 255, 147, 0 },
+      { 119, 122, 231, 0 },
+      { 100, 255, 246, 0 }, },
+    { { 115, 174, 152, 0 },
+      { 55, 57, 162, 1 },
+      { 12, 186, 231, 0 },
+      { 162, 206, 118, 0 }, },
+    { { 115, 174, 155, 1 },
+      { 63, 123, 162, 1 },
+      { 236, 186, 231, 0 },
+      { 162, 239, 126, 0 }, },
+    { { 115, 174, 148, 1 },
+      { 63, 57, 178, 0 },
+      { 148, 186, 231, 0 },
+      { 38, 206, 126, 0 }, },
+    { { 115, 174, 151, 0 },
+      { 55, 123, 178, 0 },
+      { 116, 186, 231, 0 },
+      { 38, 239, 118, 0 }, },
+    { { 115, 174, 232, 0 },
+      { 39, 189, 162, 1 },
+      { 11, 186, 231, 0 },
+      { 162, 222, 242, 0 }, },
+    { { 115, 174, 235, 1 },
+      { 47, 255, 162, 1 },
+      { 235, 186, 231, 0 },
+      { 162, 255, 250, 0 }, },
+    { { 115, 174, 228, 1 },
+      { 47, 189, 178, 0 },
+      { 147, 186, 231, 0 },
+      { 38, 222, 250, 0 }, },
+    { { 115, 174, 231, 0 },
+      { 39, 255, 178, 0 },
+      { 115, 186, 231, 0 },
+      { 38, 255, 242, 0 }, },
+    { { 115, 147, 8, 0 },
+      { 38, 49, 193, 1 },
+      { 8, 100, 231, 0 },
+      { 193, 198, 50, 0 }, },
+    { { 115, 147, 11, 1 },
+      { 46, 115, 193, 1 },
+      { 232, 100, 231, 0 },
+      { 193, 231, 58, 0 }, },
+    { { 115, 147, 4, 1 },
+      { 46, 49, 209, 0 },
+      { 144, 100, 231, 0 },
+      { 69, 198, 58, 0 }, },
+    { { 115, 147, 7, 0 },
+      { 38, 115, 209, 0 },
+      { 112, 100, 231, 0 },
+      { 69, 231, 50, 0 }, },
+    { { 115, 147, 120, 0 },
+      { 54, 181, 193, 1 },
+      { 15, 100, 231, 0 },
+      { 193, 214, 182, 0 }, },
+    { { 115, 147, 123, 1 },
+      { 62, 247, 193, 1 },
+      { 239, 100, 231, 0 },
+      { 193, 247, 190, 0 }, },
+    { { 115, 147, 116, 1 },
+      { 62, 181, 209, 0 },
+      { 151, 100, 231, 0 },
+      { 69, 214, 190, 0 }, },
+    { { 115, 147, 119, 0 },
+      { 54, 247, 209, 0 },
+      { 119, 100, 231, 0 },
+      { 69, 247, 182, 0 }, },
+    { { 115, 146, 152, 0 },
+      { 54, 49, 224, 1 },
+      { 12, 164, 231, 0 },
+      { 131, 198, 54, 0 }, },
+    { { 115, 146, 155, 1 },
+      { 62, 115, 224, 1 },
+      { 236, 164, 231, 0 },
+      { 131, 231, 62, 0 }, },
+    { { 115, 146, 148, 1 },
+      { 62, 49, 240, 0 },
+      { 148, 164, 231, 0 },
+      { 7, 198, 62, 0 }, },
+    { { 115, 146, 151, 0 },
+      { 54, 115, 240, 0 },
+      { 116, 164, 231, 0 },
+      { 7, 231, 54, 0 }, },
+    { { 115, 146, 232, 0 },
+      { 38, 181, 224, 1 },
+      { 11, 164, 231, 0 },
+      { 131, 214, 178, 0 }, },
+    { { 115, 146, 235, 1 },
+      { 46, 247, 224, 1 },
+      { 235, 164, 231, 0 },
+      { 131, 247, 186, 0 }, },
+    { { 115, 146, 228, 1 },
+      { 46, 181, 240, 0 },
+      { 147, 164, 231, 0 },
+      { 7, 214, 186, 0 }, },
+    { { 115, 146, 231, 0 },
+      { 38, 247, 240, 0 },
+      { 115, 164, 231, 0 },
+      { 7, 247, 178, 0 }, },
+    { { 115, 157, 8, 0 },
+      { 7, 57, 193, 1 },
+      { 8, 92, 231, 0 },
+      { 193, 206, 112, 0 }, },
+    { { 115, 157, 11, 1 },
+      { 15, 123, 193, 1 },
+      { 232, 92, 231, 0 },
+      { 193, 239, 120, 0 }, },
+    { { 115, 157, 4, 1 },
+      { 15, 57, 209, 0 },
+      { 144, 92, 231, 0 },
+      { 69, 206, 120, 0 }, },
+    { { 115, 157, 7, 0 },
+      { 7, 123, 209, 0 },
+      { 112, 92, 231, 0 },
+      { 69, 239, 112, 0 }, },
+    { { 115, 157, 120, 0 },
+      { 23, 189, 193, 1 },
+      { 15, 92, 231, 0 },
+      { 193, 222, 244, 0 }, },
+    { { 115, 157, 123, 1 },
+      { 31, 255, 193, 1 },
+      { 239, 92, 231, 0 },
+      { 193, 255, 252, 0 }, },
+    { { 115, 157, 116, 1 },
+      { 31, 189, 209, 0 },
+      { 151, 92, 231, 0 },
+      { 69, 222, 252, 0 }, },
+    { { 115, 157, 119, 0 },
+      { 23, 255, 209, 0 },
+      { 119, 92, 231, 0 },
+      { 69, 255, 244, 0 }, },
+    { { 115, 156, 152, 0 },
+      { 23, 57, 224, 1 },
+      { 12, 156, 231, 0 },
+      { 131, 206, 116, 0 }, },
+    { { 115, 156, 155, 1 },
+      { 31, 123, 224, 1 },
+      { 236, 156, 231, 0 },
+      { 131, 239, 124, 0 }, },
+    { { 115, 156, 148, 1 },
+      { 31, 57, 240, 0 },
+      { 148, 156, 231, 0 },
+      { 7, 206, 124, 0 }, },
+    { { 115, 156, 151, 0 },
+      { 23, 123, 240, 0 },
+      { 116, 156, 231, 0 },
+      { 7, 239, 116, 0 }, },
+    { { 115, 156, 232, 0 },
+      { 7, 189, 224, 1 },
+      { 11, 156, 231, 0 },
+      { 131, 222, 240, 0 }, },
+    { { 115, 156, 235, 1 },
+      { 15, 255, 224, 1 },
+      { 235, 156, 231, 0 },
+      { 131, 255, 248, 0 }, },
+    { { 115, 156, 228, 1 },
+      { 15, 189, 240, 0 },
+      { 147, 156, 231, 0 },
+      { 7, 222, 248, 0 }, },
+    { { 115, 156, 231, 0 },
+      { 7, 255, 240, 0 },
+      { 115, 156, 231, 0 },
+      { 7, 255, 240, 0 }, },
+};
+
+static unsigned char DICT_4X4_1000_BYTES[][4][2] =
+    { { { 181, 50 },
+        { 235, 72 },
+        { 76, 173 },
+        { 18, 215 }, },
+      { { 15, 154 },
+        { 101, 71 },
+        { 89, 240 },
+        { 226, 166 }, },
+      { { 51, 45 },
+        { 222, 17 },
+        { 180, 204 },
+        { 136, 123 }, },
+      { { 153, 70 },
+        { 193, 60 },
+        { 98, 153 },
+        { 60, 131 }, },
+      { { 84, 158 },
+        { 161, 211 },
+        { 121, 42 },
+        { 203, 133 }, },
+      { { 121, 205 },
+        { 216, 183 },
+        { 179, 158 },
+        { 237, 27 }, },
+      { { 158, 46 },
+        { 135, 93 },
+        { 116, 121 },
+        { 186, 225 }, },
+      { { 196, 242 },
+        { 35, 234 },
+        { 79, 35 },
+        { 87, 196 }, },
+      { { 254, 218 },
+        { 173, 239 },
+        { 91, 127 },
+        { 247, 181 }, },
+      { { 207, 86 },
+        { 101, 252 },
+        { 106, 243 },
+        { 63, 166 }, },
+      { { 249, 145 },
+        { 248, 142 },
+        { 137, 159 },
+        { 113, 31 }, },
+      { { 17, 167 },
+        { 211, 18 },
+        { 229, 136 },
+        { 72, 203 }, },
+      { { 14, 183 },
+        { 55, 86 },
+        { 237, 112 },
+        { 106, 236 }, },
+      { { 42, 15 },
+        { 29, 21 },
+        { 240, 84 },
+        { 168, 184 }, },
+      { { 36, 177 },
+        { 58, 66 },
+        { 141, 36 },
+        { 66, 92 }, },
+      { { 38, 62 },
+        { 47, 81 },
+        { 124, 100 },
+        { 138, 244 }, },
+      { { 70, 101 },
+        { 22, 240 },
+        { 166, 98 },
+        { 15, 104 }, },
+      { { 102, 0 },
+        { 12, 192 },
+        { 0, 102 },
+        { 3, 48 }, },
+      { { 108, 94 },
+        { 41, 245 },
+        { 122, 54 },
+        { 175, 148 }, },
+      { { 118, 175 },
+        { 159, 211 },
+        { 245, 110 },
+        { 203, 249 }, },
+      { { 134, 139 },
+        { 21, 75 },
+        { 209, 97 },
+        { 210, 168 }, },
+      { { 176, 43 },
+        { 155, 9 },
+        { 212, 13 },
+        { 144, 217 }, },
+      { { 204, 213 },
+        { 48, 254 },
+        { 171, 51 },
+        { 127, 12 }, },
+      { { 221, 130 },
+        { 193, 206 },
+        { 65, 187 },
+        { 115, 131 }, },
+      { { 254, 71 },
+        { 157, 252 },
+        { 226, 127 },
+        { 63, 185 }, },
+      { { 148, 113 },
+        { 178, 104 },
+        { 142, 41 },
+        { 22, 77 }, },
+      { { 172, 228 },
+        { 10, 126 },
+        { 39, 53 },
+        { 126, 80 }, },
+      { { 165, 84 },
+        { 104, 120 },
+        { 42, 165 },
+        { 30, 22 }, },
+      { { 33, 35 },
+        { 91, 0 },
+        { 196, 132 },
+        { 0, 218 }, },
+      { { 52, 111 },
+        { 155, 113 },
+        { 246, 44 },
+        { 142, 217 }, },
+      { { 68, 21 },
+        { 48, 208 },
+        { 168, 34 },
+        { 11, 12 }, },
+      { { 87, 178 },
+        { 231, 194 },
+        { 77, 234 },
+        { 67, 231 }, },
+      { { 158, 207 },
+        { 149, 127 },
+        { 243, 121 },
+        { 254, 169 }, },
+      { { 240, 203 },
+        { 153, 171 },
+        { 211, 15 },
+        { 213, 153 }, },
+      { { 8, 174 },
+        { 3, 23 },
+        { 117, 16 },
+        { 232, 192 }, },
+      { { 9, 41 },
+        { 82, 5 },
+        { 148, 144 },
+        { 160, 74 }, },
+      { { 24, 117 },
+        { 178, 52 },
+        { 174, 24 },
+        { 44, 77 }, },
+      { { 4, 255 },
+        { 51, 115 },
+        { 255, 32 },
+        { 206, 204 }, },
+      { { 13, 246 },
+        { 99, 118 },
+        { 111, 176 },
+        { 110, 198 }, },
+      { { 28, 90 },
+        { 161, 101 },
+        { 90, 56 },
+        { 166, 133 }, },
+      { { 23, 24 },
+        { 228, 65 },
+        { 24, 232 },
+        { 130, 39 }, },
+      { { 42, 40 },
+        { 14, 5 },
+        { 20, 84 },
+        { 160, 112 }, },
+      { { 50, 140 },
+        { 140, 19 },
+        { 49, 76 },
+        { 200, 49 }, },
+      { { 56, 178 },
+        { 171, 6 },
+        { 77, 28 },
+        { 96, 213 }, },
+      { { 36, 232 },
+        { 10, 99 },
+        { 23, 36 },
+        { 198, 80 }, },
+      { { 46, 235 },
+        { 31, 103 },
+        { 215, 116 },
+        { 230, 248 }, },
+      { { 45, 63 },
+        { 123, 85 },
+        { 252, 180 },
+        { 170, 222 }, },
+      { { 75, 100 },
+        { 70, 180 },
+        { 38, 210 },
+        { 45, 98 }, },
+      { { 80, 46 },
+        { 131, 145 },
+        { 116, 10 },
+        { 137, 193 }, },
+      { { 80, 19 },
+        { 177, 128 },
+        { 200, 10 },
+        { 1, 141 }, },
+      { { 81, 148 },
+        { 224, 146 },
+        { 41, 138 },
+        { 73, 7 }, },
+      { { 85, 104 },
+        { 194, 225 },
+        { 22, 170 },
+        { 135, 67 }, },
+      { { 93, 65 },
+        { 208, 228 },
+        { 130, 186 },
+        { 39, 11 }, },
+      { { 95, 151 },
+        { 245, 214 },
+        { 233, 250 },
+        { 107, 175 }, },
+      { { 104, 1 },
+        { 24, 132 },
+        { 128, 22 },
+        { 33, 24 }, },
+      { { 104, 103 },
+        { 27, 180 },
+        { 230, 22 },
+        { 45, 216 }, },
+      { { 97, 36 },
+        { 74, 144 },
+        { 36, 134 },
+        { 9, 82 }, },
+      { { 97, 233 },
+        { 90, 163 },
+        { 151, 134 },
+        { 197, 90 }, },
+      { { 107, 18 },
+        { 109, 132 },
+        { 72, 214 },
+        { 33, 182 }, },
+      { { 111, 229 },
+        { 94, 246 },
+        { 167, 246 },
+        { 111, 122 }, },
+      { { 103, 223 },
+        { 125, 243 },
+        { 251, 230 },
+        { 207, 190 }, },
+      { { 126, 27 },
+        { 189, 197 },
+        { 216, 126 },
+        { 163, 189 }, },
+      { { 128, 160 },
+        { 2, 10 },
+        { 5, 1 },
+        { 80, 64 }, },
+      { { 131, 68 },
+        { 68, 56 },
+        { 34, 193 },
+        { 28, 34 }, },
+      { { 139, 162 },
+        { 71, 14 },
+        { 69, 209 },
+        { 112, 226 }, },
+      { { 147, 122 },
+        { 231, 41 },
+        { 94, 201 },
+        { 148, 231 }, },
+      { { 132, 108 },
+        { 2, 121 },
+        { 54, 33 },
+        { 158, 64 }, },
+      { { 133, 42 },
+        { 67, 73 },
+        { 84, 161 },
+        { 146, 194 }, },
+      { { 133, 156 },
+        { 96, 91 },
+        { 57, 161 },
+        { 218, 6 }, },
+      { { 156, 137 },
+        { 144, 79 },
+        { 145, 57 },
+        { 242, 9 }, },
+      { { 159, 161 },
+        { 214, 78 },
+        { 133, 249 },
+        { 114, 107 }, },
+      { { 187, 124 },
+        { 238, 61 },
+        { 62, 221 },
+        { 188, 119 }, },
+      { { 188, 4 },
+        { 136, 92 },
+        { 32, 61 },
+        { 58, 17 }, },
+      { { 182, 91 },
+        { 189, 105 },
+        { 218, 109 },
+        { 150, 189 }, },
+      { { 191, 200 },
+        { 204, 111 },
+        { 19, 253 },
+        { 246, 51 }, },
+      { { 183, 171 },
+        { 223, 75 },
+        { 213, 237 },
+        { 210, 251 }, },
+      { { 202, 31 },
+        { 53, 157 },
+        { 248, 83 },
+        { 185, 172 }, },
+      { { 201, 98 },
+        { 67, 172 },
+        { 70, 147 },
+        { 53, 194 }, },
+      { { 217, 88 },
+        { 224, 173 },
+        { 26, 155 },
+        { 181, 7 }, },
+      { { 211, 213 },
+        { 244, 186 },
+        { 171, 203 },
+        { 93, 47 }, },
+      { { 204, 152 },
+        { 32, 207 },
+        { 25, 51 },
+        { 243, 4 }, },
+      { { 199, 160 },
+        { 70, 202 },
+        { 5, 227 },
+        { 83, 98 }, },
+      { { 197, 55 },
+        { 115, 216 },
+        { 236, 163 },
+        { 27, 206 }, },
+      { { 233, 93 },
+        { 120, 189 },
+        { 186, 151 },
+        { 189, 30 }, },
+      { { 249, 37 },
+        { 218, 156 },
+        { 164, 159 },
+        { 57, 91 }, },
+      { { 251, 187 },
+        { 255, 143 },
+        { 221, 223 },
+        { 241, 255 }, },
+      { { 238, 42 },
+        { 15, 205 },
+        { 84, 119 },
+        { 179, 240 }, },
+      { { 247, 77 },
+        { 220, 249 },
+        { 178, 239 },
+        { 159, 59 }, },
+      { { 53, 117 },
+        { 250, 112 },
+        { 174, 172 },
+        { 14, 95 }, },
+      { { 138, 173 },
+        { 22, 31 },
+        { 181, 81 },
+        { 248, 104 }, },
+      { { 118, 23 },
+        { 189, 208 },
+        { 232, 110 },
+        { 11, 189 }, },
+      { { 10, 207 },
+        { 21, 55 },
+        { 243, 80 },
+        { 236, 168 }, },
+      { { 6, 75 },
+        { 21, 97 },
+        { 210, 96 },
+        { 134, 168 }, },
+      { { 45, 193 },
+        { 88, 102 },
+        { 131, 180 },
+        { 102, 26 }, },
+      { { 73, 216 },
+        { 96, 167 },
+        { 27, 146 },
+        { 229, 6 }, },
+      { { 67, 244 },
+        { 102, 178 },
+        { 47, 194 },
+        { 77, 102 }, },
+      { { 79, 54 },
+        { 103, 212 },
+        { 108, 242 },
+        { 43, 230 }, },
+      { { 79, 211 },
+        { 117, 230 },
+        { 203, 242 },
+        { 103, 174 }, },
+      { { 105, 228 },
+        { 74, 182 },
+        { 39, 150 },
+        { 109, 82 }, },
+      { { 112, 199 },
+        { 153, 178 },
+        { 227, 14 },
+        { 77, 153 }, },
+      { { 122, 110 },
+        { 143, 181 },
+        { 118, 94 },
+        { 173, 241 }, },
+      { { 180, 234 },
+        { 139, 107 },
+        { 87, 45 },
+        { 214, 209 }, },
+      { { 237, 79 },
+        { 89, 253 },
+        { 242, 183 },
+        { 191, 154 }, },
+      { { 252, 231 },
+        { 155, 254 },
+        { 231, 63 },
+        { 127, 217 }, },
+      { { 254, 166 },
+        { 143, 222 },
+        { 101, 127 },
+        { 123, 241 }, },
+      { { 0, 37 },
+        { 18, 16 },
+        { 164, 0 },
+        { 8, 72 }, },
+      { { 0, 67 },
+        { 17, 32 },
+        { 194, 0 },
+        { 4, 136 }, },
+      { { 10, 136 },
+        { 4, 7 },
+        { 17, 80 },
+        { 224, 32 }, },
+      { { 10, 134 },
+        { 5, 22 },
+        { 97, 80 },
+        { 104, 160 }, },
+      { { 2, 111 },
+        { 23, 49 },
+        { 246, 64 },
+        { 140, 232 }, },
+      { { 0, 28 },
+        { 32, 17 },
+        { 56, 0 },
+        { 136, 4 }, },
+      { { 0, 151 },
+        { 49, 18 },
+        { 233, 0 },
+        { 72, 140 }, },
+      { { 8, 55 },
+        { 51, 20 },
+        { 236, 16 },
+        { 40, 204 }, },
+      { { 10, 49 },
+        { 54, 4 },
+        { 140, 80 },
+        { 32, 108 }, },
+      { { 9, 198 },
+        { 65, 54 },
+        { 99, 144 },
+        { 108, 130 }, },
+      { { 11, 1 },
+        { 84, 4 },
+        { 128, 208 },
+        { 32, 42 }, },
+      { { 9, 251 },
+        { 115, 39 },
+        { 223, 144 },
+        { 228, 206 }, },
+      { { 11, 88 },
+        { 100, 37 },
+        { 26, 208 },
+        { 164, 38 }, },
+      { { 16, 130 },
+        { 129, 2 },
+        { 65, 8 },
+        { 64, 129 }, },
+      { { 24, 45 },
+        { 146, 21 },
+        { 180, 24 },
+        { 168, 73 }, },
+      { { 16, 120 },
+        { 162, 33 },
+        { 30, 8 },
+        { 132, 69 }, },
+      { { 16, 115 },
+        { 179, 32 },
+        { 206, 8 },
+        { 4, 205 }, },
+      { { 18, 116 },
+        { 166, 48 },
+        { 46, 72 },
+        { 12, 101 }, },
+      { { 18, 177 },
+        { 182, 2 },
+        { 141, 72 },
+        { 64, 109 }, },
+      { { 26, 249 },
+        { 182, 39 },
+        { 159, 88 },
+        { 228, 109 }, },
+      { { 19, 6 },
+        { 197, 16 },
+        { 96, 200 },
+        { 8, 163 }, },
+      { { 12, 14 },
+        { 1, 85 },
+        { 112, 48 },
+        { 170, 128 }, },
+      { { 12, 241 },
+        { 50, 102 },
+        { 143, 48 },
+        { 102, 76 }, },
+      { { 4, 51 },
+        { 51, 64 },
+        { 204, 32 },
+        { 2, 204 }, },
+      { { 12, 159 },
+        { 49, 87 },
+        { 249, 48 },
+        { 234, 140 }, },
+      { { 14, 242 },
+        { 39, 102 },
+        { 79, 112 },
+        { 102, 228 }, },
+      { { 14, 253 },
+        { 54, 119 },
+        { 191, 112 },
+        { 238, 108 }, },
+      { { 7, 76 },
+        { 68, 113 },
+        { 50, 224 },
+        { 142, 34 }, },
+      { { 15, 164 },
+        { 70, 86 },
+        { 37, 240 },
+        { 106, 98 }, },
+      { { 7, 47 },
+        { 87, 81 },
+        { 244, 224 },
+        { 138, 234 }, },
+      { { 5, 181 },
+        { 114, 82 },
+        { 173, 160 },
+        { 74, 78 }, },
+      { { 15, 145 },
+        { 116, 70 },
+        { 137, 240 },
+        { 98, 46 }, },
+      { { 7, 219 },
+        { 117, 99 },
+        { 219, 224 },
+        { 198, 174 }, },
+      { { 30, 228 },
+        { 134, 118 },
+        { 39, 120 },
+        { 110, 97 }, },
+      { { 20, 57 },
+        { 178, 65 },
+        { 156, 40 },
+        { 130, 77 }, },
+      { { 29, 128 },
+        { 192, 70 },
+        { 1, 184 },
+        { 98, 3 }, },
+      { { 21, 200 },
+        { 192, 99 },
+        { 19, 168 },
+        { 198, 3 }, },
+      { { 31, 139 },
+        { 213, 71 },
+        { 209, 248 },
+        { 226, 171 }, },
+      { { 21, 186 },
+        { 227, 67 },
+        { 93, 168 },
+        { 194, 199 }, },
+      { { 29, 177 },
+        { 242, 70 },
+        { 141, 184 },
+        { 98, 79 }, },
+      { { 32, 128 },
+        { 8, 2 },
+        { 1, 4 },
+        { 64, 16 }, },
+      { { 40, 233 },
+        { 26, 39 },
+        { 151, 20 },
+        { 228, 88 }, },
+      { { 34, 162 },
+        { 15, 2 },
+        { 69, 68 },
+        { 64, 240 }, },
+      { { 40, 83 },
+        { 57, 36 },
+        { 202, 20 },
+        { 36, 156 }, },
+      { { 42, 240 },
+        { 46, 38 },
+        { 15, 84 },
+        { 100, 116 }, },
+      { { 34, 247 },
+        { 63, 50 },
+        { 239, 68 },
+        { 76, 252 }, },
+      { { 41, 64 },
+        { 72, 36 },
+        { 2, 148 },
+        { 36, 18 }, },
+      { { 33, 70 },
+        { 73, 48 },
+        { 98, 132 },
+        { 12, 146 }, },
+      { { 41, 185 },
+        { 122, 7 },
+        { 157, 148 },
+        { 224, 94 }, },
+      { { 43, 156 },
+        { 108, 23 },
+        { 57, 212 },
+        { 232, 54 }, },
+      { { 43, 178 },
+        { 111, 6 },
+        { 77, 212 },
+        { 96, 246 }, },
+      { { 56, 202 },
+        { 137, 39 },
+        { 83, 28 },
+        { 228, 145 }, },
+      { { 56, 46 },
+        { 139, 21 },
+        { 116, 28 },
+        { 168, 209 }, },
+      { { 48, 7 },
+        { 153, 16 },
+        { 224, 12 },
+        { 8, 153 }, },
+      { { 56, 231 },
+        { 155, 54 },
+        { 231, 28 },
+        { 108, 217 }, },
+      { { 58, 73 },
+        { 156, 37 },
+        { 146, 92 },
+        { 164, 57 }, },
+      { { 58, 101 },
+        { 158, 52 },
+        { 166, 92 },
+        { 44, 121 }, },
+      { { 50, 93 },
+        { 188, 49 },
+        { 186, 76 },
+        { 140, 61 }, },
+      { { 59, 136 },
+        { 204, 7 },
+        { 17, 220 },
+        { 224, 51 }, },
+      { { 57, 29 },
+        { 248, 21 },
+        { 184, 156 },
+        { 168, 31 }, },
+      { { 59, 211 },
+        { 253, 38 },
+        { 203, 220 },
+        { 100, 191 }, },
+      { { 38, 71 },
+        { 29, 112 },
+        { 226, 100 },
+        { 14, 184 }, },
+      { { 39, 128 },
+        { 76, 66 },
+        { 1, 228 },
+        { 66, 50 }, },
+      { { 47, 170 },
+        { 79, 71 },
+        { 85, 244 },
+        { 226, 242 }, },
+      { { 45, 20 },
+        { 104, 84 },
+        { 40, 180 },
+        { 42, 22 }, },
+      { { 37, 222 },
+        { 105, 115 },
+        { 123, 164 },
+        { 206, 150 }, },
+      { { 37, 83 },
+        { 121, 96 },
+        { 202, 164 },
+        { 6, 158 }, },
+      { { 47, 119 },
+        { 127, 116 },
+        { 238, 244 },
+        { 46, 254 }, },
+      { { 52, 72 },
+        { 136, 97 },
+        { 18, 44 },
+        { 134, 17 }, },
+      { { 60, 168 },
+        { 138, 71 },
+        { 21, 60 },
+        { 226, 81 }, },
+      { { 60, 65 },
+        { 152, 100 },
+        { 130, 60 },
+        { 38, 25 }, },
+      { { 52, 13 },
+        { 152, 81 },
+        { 176, 44 },
+        { 138, 25 }, },
+      { { 52, 251 },
+        { 187, 99 },
+        { 223, 44 },
+        { 198, 221 }, },
+      { { 54, 154 },
+        { 173, 67 },
+        { 89, 108 },
+        { 194, 181 }, },
+      { { 61, 224 },
+        { 202, 102 },
+        { 7, 188 },
+        { 102, 83 }, },
+      { { 53, 106 },
+        { 203, 97 },
+        { 86, 172 },
+        { 134, 211 }, },
+      { { 61, 9 },
+        { 216, 69 },
+        { 144, 188 },
+        { 162, 27 }, },
+      { { 61, 237 },
+        { 218, 119 },
+        { 183, 188 },
+        { 238, 91 }, },
+      { { 63, 196 },
+        { 204, 118 },
+        { 35, 252 },
+        { 110, 51 }, },
+      { { 63, 108 },
+        { 206, 117 },
+        { 54, 252 },
+        { 174, 115 }, },
+      { { 55, 206 },
+        { 205, 115 },
+        { 115, 236 },
+        { 206, 179 }, },
+      { { 61, 92 },
+        { 232, 117 },
+        { 58, 188 },
+        { 174, 23 }, },
+      { { 61, 118 },
+        { 235, 116 },
+        { 110, 188 },
+        { 46, 215 }, },
+      { { 55, 176 },
+        { 238, 66 },
+        { 13, 236 },
+        { 66, 119 }, },
+      { { 63, 23 },
+        { 253, 84 },
+        { 232, 252 },
+        { 42, 191 }, },
+      { { 63, 255 },
+        { 255, 119 },
+        { 255, 252 },
+        { 238, 255 }, },
+      { { 72, 229 },
+        { 18, 182 },
+        { 167, 18 },
+        { 109, 72 }, },
+      { { 66, 104 },
+        { 6, 161 },
+        { 22, 66 },
+        { 133, 96 }, },
+      { { 74, 45 },
+        { 22, 149 },
+        { 180, 82 },
+        { 169, 104 }, },
+      { { 65, 96 },
+        { 66, 160 },
+        { 6, 130 },
+        { 5, 66 }, },
+      { { 73, 81 },
+        { 112, 164 },
+        { 138, 146 },
+        { 37, 14 }, },
+      { { 65, 221 },
+        { 112, 179 },
+        { 187, 130 },
+        { 205, 14 }, },
+      { { 75, 223 },
+        { 117, 183 },
+        { 251, 210 },
+        { 237, 174 }, },
+      { { 88, 79 },
+        { 145, 181 },
+        { 242, 26 },
+        { 173, 137 }, },
+      { { 90, 72 },
+        { 132, 165 },
+        { 18, 90 },
+        { 165, 33 }, },
+      { { 88, 22 },
+        { 161, 148 },
+        { 104, 26 },
+        { 41, 133 }, },
+      { { 80, 93 },
+        { 176, 177 },
+        { 186, 10 },
+        { 141, 13 }, },
+      { { 90, 250 },
+        { 167, 167 },
+        { 95, 90 },
+        { 229, 229 }, },
+      { { 90, 181 },
+        { 182, 150 },
+        { 173, 90 },
+        { 105, 109 }, },
+      { { 81, 35 },
+        { 211, 128 },
+        { 196, 138 },
+        { 1, 203 }, },
+      { { 91, 138 },
+        { 197, 135 },
+        { 81, 218 },
+        { 225, 163 }, },
+      { { 89, 25 },
+        { 240, 133 },
+        { 152, 154 },
+        { 161, 15 }, },
+      { { 81, 53 },
+        { 242, 144 },
+        { 172, 138 },
+        { 9, 79 }, },
+      { { 76, 105 },
+        { 18, 229 },
+        { 150, 50 },
+        { 167, 72 }, },
+      { { 70, 193 },
+        { 20, 226 },
+        { 131, 98 },
+        { 71, 40 }, },
+      { { 78, 11 },
+        { 21, 197 },
+        { 208, 114 },
+        { 163, 168 }, },
+      { { 68, 95 },
+        { 49, 241 },
+        { 250, 34 },
+        { 143, 140 }, },
+      { { 78, 89 },
+        { 52, 229 },
+        { 154, 114 },
+        { 167, 44 }, },
+      { { 77, 131 },
+        { 81, 198 },
+        { 193, 178 },
+        { 99, 138 }, },
+      { { 77, 125 },
+        { 114, 245 },
+        { 190, 178 },
+        { 175, 78 }, },
+      { { 71, 216 },
+        { 100, 227 },
+        { 27, 226 },
+        { 199, 38 }, },
+      { { 71, 115 },
+        { 119, 224 },
+        { 206, 226 },
+        { 7, 238 }, },
+      { { 92, 133 },
+        { 144, 214 },
+        { 161, 58 },
+        { 107, 9 }, },
+      { { 94, 68 },
+        { 132, 244 },
+        { 34, 122 },
+        { 47, 33 }, },
+      { { 86, 43 },
+        { 151, 193 },
+        { 212, 106 },
+        { 131, 233 }, },
+      { { 92, 187 },
+        { 179, 199 },
+        { 221, 58 },
+        { 227, 205 }, },
+      { { 85, 195 },
+        { 209, 226 },
+        { 195, 170 },
+        { 71, 139 }, },
+      { { 95, 110 },
+        { 199, 245 },
+        { 118, 250 },
+        { 175, 227 }, },
+      { { 95, 235 },
+        { 215, 231 },
+        { 215, 250 },
+        { 231, 235 }, },
+      { { 93, 18 },
+        { 225, 196 },
+        { 72, 186 },
+        { 35, 135 }, },
+      { { 85, 94 },
+        { 225, 241 },
+        { 122, 170 },
+        { 143, 135 }, },
+      { { 98, 112 },
+        { 46, 160 },
+        { 14, 70 },
+        { 5, 116 }, },
+      { { 98, 21 },
+        { 60, 144 },
+        { 168, 70 },
+        { 9, 60 }, },
+      { { 97, 194 },
+        { 73, 162 },
+        { 67, 134 },
+        { 69, 146 }, },
+      { { 107, 32 },
+        { 78, 132 },
+        { 4, 214 },
+        { 33, 114 }, },
+      { { 99, 69 },
+        { 92, 176 },
+        { 162, 198 },
+        { 13, 58 }, },
+      { { 107, 92 },
+        { 108, 181 },
+        { 58, 214 },
+        { 173, 54 }, },
+      { { 107, 91 },
+        { 125, 165 },
+        { 218, 214 },
+        { 165, 190 }, },
+      { { 120, 12 },
+        { 136, 149 },
+        { 48, 30 },
+        { 169, 17 }, },
+      { { 122, 207 },
+        { 157, 183 },
+        { 243, 94 },
+        { 237, 185 }, },
+      { { 120, 127 },
+        { 187, 181 },
+        { 254, 30 },
+        { 173, 221 }, },
+      { { 121, 128 },
+        { 200, 134 },
+        { 1, 158 },
+        { 97, 19 }, },
+      { { 113, 229 },
+        { 218, 178 },
+        { 167, 142 },
+        { 77, 91 }, },
+      { { 113, 116 },
+        { 234, 176 },
+        { 46, 142 },
+        { 13, 87 }, },
+      { { 121, 182 },
+        { 235, 150 },
+        { 109, 158 },
+        { 105, 215 }, },
+      { { 113, 211 },
+        { 249, 162 },
+        { 203, 142 },
+        { 69, 159 }, },
+      { { 123, 51 },
+        { 255, 132 },
+        { 204, 222 },
+        { 33, 255 }, },
+      { { 100, 106 },
+        { 11, 225 },
+        { 86, 38 },
+        { 135, 208 }, },
+      { { 102, 168 },
+        { 14, 195 },
+        { 21, 102 },
+        { 195, 112 }, },
+      { { 110, 167 },
+        { 31, 214 },
+        { 229, 118 },
+        { 107, 248 }, },
+      { { 110, 145 },
+        { 60, 198 },
+        { 137, 118 },
+        { 99, 60 }, },
+      { { 101, 34 },
+        { 75, 192 },
+        { 68, 166 },
+        { 3, 210 }, },
+      { { 109, 203 },
+        { 89, 231 },
+        { 211, 182 },
+        { 231, 154 }, },
+      { { 103, 141 },
+        { 92, 211 },
+        { 177, 230 },
+        { 203, 58 }, },
+      { { 109, 49 },
+        { 122, 196 },
+        { 140, 182 },
+        { 35, 94 }, },
+      { { 126, 128 },
+        { 140, 198 },
+        { 1, 126 },
+        { 99, 49 }, },
+      { { 126, 226 },
+        { 143, 230 },
+        { 71, 126 },
+        { 103, 241 }, },
+      { { 126, 141 },
+        { 156, 215 },
+        { 177, 126 },
+        { 235, 57 }, },
+      { { 116, 210 },
+        { 169, 226 },
+        { 75, 46 },
+        { 71, 149 }, },
+      { { 124, 50 },
+        { 171, 196 },
+        { 76, 62 },
+        { 35, 213 }, },
+      { { 126, 53 },
+        { 190, 212 },
+        { 172, 126 },
+        { 43, 125 }, },
+      { { 117, 171 },
+        { 219, 195 },
+        { 213, 174 },
+        { 195, 219 }, },
+      { { 119, 5 },
+        { 220, 208 },
+        { 160, 238 },
+        { 11, 59 }, },
+      { { 127, 43 },
+        { 223, 197 },
+        { 212, 254 },
+        { 163, 251 }, },
+      { { 125, 218 },
+        { 233, 231 },
+        { 91, 190 },
+        { 231, 151 }, },
+      { { 127, 146 },
+        { 237, 198 },
+        { 73, 254 },
+        { 99, 183 }, },
+      { { 128, 117 },
+        { 50, 56 },
+        { 174, 1 },
+        { 28, 76 }, },
+      { { 128, 243 },
+        { 51, 42 },
+        { 207, 1 },
+        { 84, 204 }, },
+      { { 129, 166 },
+        { 67, 26 },
+        { 101, 129 },
+        { 88, 194 }, },
+      { { 137, 237 },
+        { 82, 63 },
+        { 183, 145 },
+        { 252, 74 }, },
+      { { 129, 252 },
+        { 98, 59 },
+        { 63, 129 },
+        { 220, 70 }, },
+      { { 152, 166 },
+        { 131, 30 },
+        { 101, 25 },
+        { 120, 193 }, },
+      { { 154, 32 },
+        { 134, 12 },
+        { 4, 89 },
+        { 48, 97 }, },
+      { { 145, 67 },
+        { 209, 40 },
+        { 194, 137 },
+        { 20, 139 }, },
+      { { 153, 249 },
+        { 242, 47 },
+        { 159, 153 },
+        { 244, 79 }, },
+      { { 145, 147 },
+        { 241, 10 },
+        { 201, 137 },
+        { 80, 143 }, },
+      { { 155, 212 },
+        { 228, 62 },
+        { 43, 217 },
+        { 124, 39 }, },
+      { { 132, 9 },
+        { 16, 73 },
+        { 144, 33 },
+        { 146, 8 }, },
+      { { 132, 107 },
+        { 19, 105 },
+        { 214, 33 },
+        { 150, 200 }, },
+      { { 134, 196 },
+        { 4, 122 },
+        { 35, 97 },
+        { 94, 32 }, },
+      { { 142, 100 },
+        { 6, 124 },
+        { 38, 113 },
+        { 62, 96 }, },
+      { { 134, 26 },
+        { 37, 73 },
+        { 88, 97 },
+        { 146, 164 }, },
+      { { 133, 78 },
+        { 65, 121 },
+        { 114, 161 },
+        { 158, 130 }, },
+      { { 141, 203 },
+        { 81, 111 },
+        { 211, 177 },
+        { 246, 138 }, },
+      { { 133, 103 },
+        { 83, 120 },
+        { 230, 161 },
+        { 30, 202 }, },
+      { { 133, 175 },
+        { 83, 91 },
+        { 245, 161 },
+        { 218, 202 }, },
+      { { 133, 215 },
+        { 113, 122 },
+        { 235, 161 },
+        { 94, 142 }, },
+      { { 135, 179 },
+        { 119, 74 },
+        { 205, 225 },
+        { 82, 238 }, },
+      { { 156, 225 },
+        { 146, 110 },
+        { 135, 57 },
+        { 118, 73 }, },
+      { { 156, 242 },
+        { 163, 110 },
+        { 79, 57 },
+        { 118, 197 }, },
+      { { 148, 23 },
+        { 177, 88 },
+        { 232, 41 },
+        { 26, 141 }, },
+      { { 149, 0 },
+        { 192, 72 },
+        { 0, 169 },
+        { 18, 3 }, },
+      { { 149, 162 },
+        { 195, 74 },
+        { 69, 169 },
+        { 82, 195 }, },
+      { { 157, 35 },
+        { 211, 76 },
+        { 196, 185 },
+        { 50, 203 }, },
+      { { 159, 98 },
+        { 199, 108 },
+        { 70, 249 },
+        { 54, 227 }, },
+      { { 157, 82 },
+        { 225, 108 },
+        { 74, 185 },
+        { 54, 135 }, },
+      { { 149, 218 },
+        { 225, 107 },
+        { 91, 169 },
+        { 214, 135 }, },
+      { { 160, 197 },
+        { 24, 58 },
+        { 163, 5 },
+        { 92, 24 }, },
+      { { 170, 205 },
+        { 28, 63 },
+        { 179, 85 },
+        { 252, 56 }, },
+      { { 162, 216 },
+        { 44, 43 },
+        { 27, 69 },
+        { 212, 52 }, },
+      { { 162, 87 },
+        { 61, 56 },
+        { 234, 69 },
+        { 28, 188 }, },
+      { { 169, 61 },
+        { 122, 29 },
+        { 188, 149 },
+        { 184, 94 }, },
+      { { 169, 87 },
+        { 121, 60 },
+        { 234, 149 },
+        { 60, 158 }, },
+      { { 171, 82 },
+        { 109, 44 },
+        { 74, 213 },
+        { 52, 182 }, },
+      { { 163, 54 },
+        { 111, 24 },
+        { 108, 197 },
+        { 24, 246 }, },
+      { { 163, 89 },
+        { 124, 41 },
+        { 154, 197 },
+        { 148, 62 }, },
+      { { 176, 244 },
+        { 170, 58 },
+        { 47, 13 },
+        { 92, 85 }, },
+      { { 184, 18 },
+        { 169, 12 },
+        { 72, 29 },
+        { 48, 149 }, },
+      { { 176, 191 },
+        { 187, 27 },
+        { 253, 13 },
+        { 216, 221 }, },
+      { { 178, 157 },
+        { 188, 27 },
+        { 185, 77 },
+        { 216, 61 }, },
+      { { 187, 237 },
+        { 222, 63 },
+        { 183, 221 },
+        { 252, 123 }, },
+      { { 185, 114 },
+        { 235, 44 },
+        { 78, 157 },
+        { 52, 215 }, },
+      { { 185, 150 },
+        { 233, 30 },
+        { 105, 157 },
+        { 120, 151 }, },
+      { { 164, 195 },
+        { 25, 106 },
+        { 195, 37 },
+        { 86, 152 }, },
+      { { 172, 210 },
+        { 41, 110 },
+        { 75, 53 },
+        { 118, 148 }, },
+      { { 174, 177 },
+        { 62, 78 },
+        { 141, 117 },
+        { 114, 124 }, },
+      { { 165, 130 },
+        { 73, 74 },
+        { 65, 165 },
+        { 82, 146 }, },
+      { { 175, 101 },
+        { 94, 124 },
+        { 166, 245 },
+        { 62, 122 }, },
+      { { 165, 123 },
+        { 123, 105 },
+        { 222, 165 },
+        { 150, 222 }, },
+      { { 175, 250 },
+        { 111, 111 },
+        { 95, 245 },
+        { 246, 246 }, },
+      { { 180, 100 },
+        { 138, 120 },
+        { 38, 45 },
+        { 30, 81 }, },
+      { { 188, 98 },
+        { 139, 108 },
+        { 70, 61 },
+        { 54, 209 }, },
+      { { 180, 129 },
+        { 152, 74 },
+        { 129, 45 },
+        { 82, 25 }, },
+      { { 182, 160 },
+        { 142, 74 },
+        { 5, 109 },
+        { 82, 113 }, },
+      { { 190, 238 },
+        { 143, 127 },
+        { 119, 125 },
+        { 254, 241 }, },
+      { { 190, 13 },
+        { 156, 93 },
+        { 176, 125 },
+        { 186, 57 }, },
+      { { 188, 217 },
+        { 184, 111 },
+        { 155, 61 },
+        { 246, 29 }, },
+      { { 190, 248 },
+        { 174, 111 },
+        { 31, 125 },
+        { 246, 117 }, },
+      { { 181, 40 },
+        { 202, 73 },
+        { 20, 173 },
+        { 146, 83 }, },
+      { { 183, 9 },
+        { 220, 73 },
+        { 144, 237 },
+        { 146, 59 }, },
+      { { 183, 210 },
+        { 237, 106 },
+        { 75, 237 },
+        { 86, 183 }, },
+      { { 192, 234 },
+        { 3, 171 },
+        { 87, 3 },
+        { 213, 192 }, },
+      { { 192, 25 },
+        { 48, 137 },
+        { 152, 3 },
+        { 145, 12 }, },
+      { { 192, 253 },
+        { 50, 187 },
+        { 191, 3 },
+        { 221, 76 }, },
+      { { 200, 211 },
+        { 49, 174 },
+        { 203, 19 },
+        { 117, 140 }, },
+      { { 202, 90 },
+        { 37, 173 },
+        { 90, 83 },
+        { 181, 164 }, },
+      { { 193, 77 },
+        { 80, 185 },
+        { 178, 131 },
+        { 157, 10 }, },
+      { { 201, 180 },
+        { 98, 158 },
+        { 45, 147 },
+        { 121, 70 }, },
+      { { 193, 87 },
+        { 113, 184 },
+        { 234, 131 },
+        { 29, 142 }, },
+      { { 195, 152 },
+        { 100, 139 },
+        { 25, 195 },
+        { 209, 38 }, },
+      { { 195, 29 },
+        { 116, 153 },
+        { 184, 195 },
+        { 153, 46 }, },
+      { { 216, 128 },
+        { 128, 142 },
+        { 1, 27 },
+        { 113, 1 }, },
+      { { 216, 239 },
+        { 147, 191 },
+        { 247, 27 },
+        { 253, 201 }, },
+      { { 218, 43 },
+        { 151, 141 },
+        { 212, 91 },
+        { 177, 233 }, },
+      { { 208, 30 },
+        { 161, 153 },
+        { 120, 11 },
+        { 153, 133 }, },
+      { { 209, 5 },
+        { 208, 152 },
+        { 160, 139 },
+        { 25, 11 }, },
+      { { 211, 173 },
+        { 214, 155 },
+        { 181, 203 },
+        { 217, 107 }, },
+      { { 219, 167 },
+        { 215, 158 },
+        { 229, 219 },
+        { 121, 235 }, },
+      { { 196, 201 },
+        { 16, 235 },
+        { 147, 35 },
+        { 215, 8 }, },
+      { { 204, 120 },
+        { 34, 237 },
+        { 30, 51 },
+        { 183, 68 }, },
+      { { 205, 69 },
+        { 80, 252 },
+        { 162, 179 },
+        { 63, 10 }, },
+      { { 197, 11 },
+        { 81, 201 },
+        { 208, 163 },
+        { 147, 138 }, },
+      { { 207, 207 },
+        { 85, 255 },
+        { 243, 243 },
+        { 255, 170 }, },
+      { { 220, 172 },
+        { 130, 223 },
+        { 53, 59 },
+        { 251, 65 }, },
+      { { 212, 2 },
+        { 129, 200 },
+        { 64, 43 },
+        { 19, 129 }, },
+      { { 220, 99 },
+        { 147, 236 },
+        { 198, 59 },
+        { 55, 201 }, },
+      { { 212, 39 },
+        { 147, 216 },
+        { 228, 43 },
+        { 27, 201 }, },
+      { { 212, 245 },
+        { 178, 250 },
+        { 175, 43 },
+        { 95, 77 }, },
+      { { 214, 120 },
+        { 166, 233 },
+        { 30, 107 },
+        { 151, 101 }, },
+      { { 222, 184 },
+        { 166, 207 },
+        { 29, 123 },
+        { 243, 101 }, },
+      { { 221, 230 },
+        { 195, 254 },
+        { 103, 187 },
+        { 127, 195 }, },
+      { { 213, 93 },
+        { 240, 249 },
+        { 186, 171 },
+        { 159, 15 }, },
+      { { 221, 189 },
+        { 242, 223 },
+        { 189, 187 },
+        { 251, 79 }, },
+      { { 223, 29 },
+        { 244, 221 },
+        { 184, 251 },
+        { 187, 47 }, },
+      { { 226, 202 },
+        { 13, 171 },
+        { 83, 71 },
+        { 213, 176 }, },
+      { { 234, 107 },
+        { 31, 173 },
+        { 214, 87 },
+        { 181, 248 }, },
+      { { 224, 180 },
+        { 42, 154 },
+        { 45, 7 },
+        { 89, 84 }, },
+      { { 226, 56 },
+        { 46, 137 },
+        { 28, 71 },
+        { 145, 116 }, },
+      { { 226, 212 },
+        { 44, 186 },
+        { 43, 71 },
+        { 93, 52 }, },
+      { { 227, 34 },
+        { 79, 136 },
+        { 68, 199 },
+        { 17, 242 }, },
+      { { 225, 216 },
+        { 104, 171 },
+        { 27, 135 },
+        { 213, 22 }, },
+      { { 240, 3 },
+        { 153, 136 },
+        { 192, 15 },
+        { 17, 153 }, },
+      { { 242, 204 },
+        { 140, 187 },
+        { 51, 79 },
+        { 221, 49 }, },
+      { { 248, 246 },
+        { 171, 190 },
+        { 111, 31 },
+        { 125, 213 }, },
+      { { 241, 73 },
+        { 216, 169 },
+        { 146, 143 },
+        { 149, 27 }, },
+      { { 243, 234 },
+        { 207, 171 },
+        { 87, 207 },
+        { 213, 243 }, },
+      { { 241, 156 },
+        { 232, 155 },
+        { 57, 143 },
+        { 217, 23 }, },
+      { { 249, 245 },
+        { 250, 190 },
+        { 175, 159 },
+        { 125, 95 }, },
+      { { 241, 59 },
+        { 251, 137 },
+        { 220, 143 },
+        { 145, 223 }, },
+      { { 236, 141 },
+        { 24, 223 },
+        { 177, 55 },
+        { 251, 24 }, },
+      { { 238, 201 },
+        { 28, 239 },
+        { 147, 119 },
+        { 247, 56 }, },
+      { { 230, 15 },
+        { 29, 217 },
+        { 240, 103 },
+        { 155, 184 }, },
+      { { 228, 247 },
+        { 59, 250 },
+        { 239, 39 },
+        { 95, 220 }, },
+      { { 231, 96 },
+        { 78, 232 },
+        { 6, 231 },
+        { 23, 114 }, },
+      { { 239, 232 },
+        { 78, 239 },
+        { 23, 247 },
+        { 247, 114 }, },
+      { { 237, 178 },
+        { 107, 206 },
+        { 77, 183 },
+        { 115, 214 }, },
+      { { 229, 21 },
+        { 120, 216 },
+        { 168, 167 },
+        { 27, 30 }, },
+      { { 239, 209 },
+        { 124, 238 },
+        { 139, 247 },
+        { 119, 62 }, },
+      { { 244, 134 },
+        { 137, 218 },
+        { 97, 47 },
+        { 91, 145 }, },
+      { { 252, 1 },
+        { 152, 204 },
+        { 128, 63 },
+        { 51, 25 }, },
+      { { 246, 195 },
+        { 157, 234 },
+        { 195, 111 },
+        { 87, 185 }, },
+      { { 244, 124 },
+        { 170, 249 },
+        { 62, 47 },
+        { 159, 85 }, },
+      { { 252, 147 },
+        { 185, 206 },
+        { 201, 63 },
+        { 115, 157 }, },
+      { { 245, 66 },
+        { 201, 232 },
+        { 66, 175 },
+        { 23, 147 }, },
+      { { 253, 152 },
+        { 232, 207 },
+        { 25, 191 },
+        { 243, 23 }, },
+      { { 245, 61 },
+        { 250, 217 },
+        { 188, 175 },
+        { 155, 95 }, },
+      { { 2, 189 },
+        { 54, 19 },
+        { 189, 64 },
+        { 200, 108 }, },
+      { { 0, 225 },
+        { 18, 34 },
+        { 135, 0 },
+        { 68, 72 }, },
+      { { 2, 226 },
+        { 7, 34 },
+        { 71, 64 },
+        { 68, 224 }, },
+      { { 2, 174 },
+        { 7, 19 },
+        { 117, 64 },
+        { 200, 224 }, },
+      { { 8, 120 },
+        { 34, 37 },
+        { 30, 16 },
+        { 164, 68 }, },
+      { { 0, 116 },
+        { 34, 48 },
+        { 46, 0 },
+        { 12, 68 }, },
+      { { 8, 158 },
+        { 33, 23 },
+        { 121, 16 },
+        { 232, 132 }, },
+      { { 8, 209 },
+        { 48, 38 },
+        { 139, 16 },
+        { 100, 12 }, },
+      { { 8, 125 },
+        { 50, 53 },
+        { 190, 16 },
+        { 172, 76 }, },
+      { { 10, 50 },
+        { 39, 4 },
+        { 76, 80 },
+        { 32, 228 }, },
+      { { 10, 222 },
+        { 37, 55 },
+        { 123, 80 },
+        { 236, 164 }, },
+      { { 2, 81 },
+        { 52, 32 },
+        { 138, 64 },
+        { 4, 44 }, },
+      { { 1, 162 },
+        { 67, 2 },
+        { 69, 128 },
+        { 64, 194 }, },
+      { { 3, 128 },
+        { 68, 2 },
+        { 1, 192 },
+        { 64, 34 }, },
+      { { 11, 131 },
+        { 85, 6 },
+        { 193, 208 },
+        { 96, 170 }, },
+      { { 11, 75 },
+        { 85, 37 },
+        { 210, 208 },
+        { 164, 170 }, },
+      { { 11, 39 },
+        { 87, 20 },
+        { 228, 208 },
+        { 40, 234 }, },
+      { { 11, 239 },
+        { 87, 55 },
+        { 247, 208 },
+        { 236, 234 }, },
+      { { 9, 182 },
+        { 99, 22 },
+        { 109, 144 },
+        { 104, 198 }, },
+      { { 9, 89 },
+        { 112, 37 },
+        { 154, 144 },
+        { 164, 14 }, },
+      { { 9, 147 },
+        { 113, 6 },
+        { 201, 144 },
+        { 96, 142 }, },
+      { { 11, 248 },
+        { 102, 39 },
+        { 31, 208 },
+        { 228, 102 }, },
+      { { 3, 217 },
+        { 116, 35 },
+        { 155, 192 },
+        { 196, 46 }, },
+      { { 3, 241 },
+        { 118, 34 },
+        { 143, 192 },
+        { 68, 110 }, },
+      { { 16, 196 },
+        { 128, 50 },
+        { 35, 8 },
+        { 76, 1 }, },
+      { { 24, 171 },
+        { 147, 7 },
+        { 213, 24 },
+        { 224, 201 }, },
+      { { 26, 160 },
+        { 134, 6 },
+        { 5, 88 },
+        { 96, 97 }, },
+      { { 26, 4 },
+        { 132, 20 },
+        { 32, 88 },
+        { 40, 33 }, },
+      { { 26, 108 },
+        { 134, 53 },
+        { 54, 88 },
+        { 172, 97 }, },
+      { { 26, 174 },
+        { 135, 23 },
+        { 117, 88 },
+        { 232, 225 }, },
+      { { 18, 137 },
+        { 148, 3 },
+        { 145, 72 },
+        { 192, 41 }, },
+      { { 16, 23 },
+        { 177, 16 },
+        { 232, 8 },
+        { 8, 141 }, },
+      { { 26, 243 },
+        { 183, 38 },
+        { 207, 88 },
+        { 100, 237 }, },
+      { { 25, 64 },
+        { 192, 36 },
+        { 2, 152 },
+        { 36, 3 }, },
+      { { 17, 2 },
+        { 193, 0 },
+        { 64, 136 },
+        { 0, 131 }, },
+      { { 17, 43 },
+        { 211, 1 },
+        { 212, 136 },
+        { 128, 203 }, },
+      { { 17, 207 },
+        { 209, 51 },
+        { 243, 136 },
+        { 204, 139 }, },
+      { { 27, 34 },
+        { 199, 4 },
+        { 68, 216 },
+        { 32, 227 }, },
+      { { 19, 46 },
+        { 199, 17 },
+        { 116, 200 },
+        { 136, 227 }, },
+      { { 17, 21 },
+        { 240, 16 },
+        { 168, 136 },
+        { 8, 15 }, },
+      { { 19, 187 },
+        { 247, 3 },
+        { 221, 200 },
+        { 192, 239 }, },
+      { { 12, 32 },
+        { 2, 68 },
+        { 4, 48 },
+        { 34, 64 }, },
+      { { 12, 201 },
+        { 16, 103 },
+        { 147, 48 },
+        { 230, 8 }, },
+      { { 12, 220 },
+        { 32, 119 },
+        { 59, 48 },
+        { 238, 4 }, },
+      { { 12, 54 },
+        { 35, 84 },
+        { 108, 48 },
+        { 42, 196 }, },
+      { { 6, 20 },
+        { 36, 80 },
+        { 40, 96 },
+        { 10, 36 }, },
+      { { 6, 114 },
+        { 39, 96 },
+        { 78, 96 },
+        { 6, 228 }, },
+      { { 13, 97 },
+        { 82, 100 },
+        { 134, 176 },
+        { 38, 74 }, },
+      { { 5, 13 },
+        { 80, 81 },
+        { 176, 160 },
+        { 138, 10 }, },
+      { { 13, 143 },
+        { 81, 87 },
+        { 241, 176 },
+        { 234, 138 }, },
+      { { 15, 224 },
+        { 70, 102 },
+        { 7, 240 },
+        { 102, 98 }, },
+      { { 15, 73 },
+        { 84, 101 },
+        { 146, 240 },
+        { 166, 42 }, },
+      { { 7, 133 },
+        { 84, 82 },
+        { 161, 224 },
+        { 74, 42 }, },
+      { { 5, 144 },
+        { 96, 66 },
+        { 9, 160 },
+        { 66, 6 }, },
+      { { 13, 51 },
+        { 115, 68 },
+        { 204, 176 },
+        { 34, 206 }, },
+      { { 15, 150 },
+        { 101, 86 },
+        { 105, 240 },
+        { 106, 166 }, },
+      { { 15, 118 },
+        { 103, 116 },
+        { 110, 240 },
+        { 46, 230 }, },
+      { { 20, 96 },
+        { 130, 96 },
+        { 6, 40 },
+        { 6, 65 }, },
+      { { 28, 141 },
+        { 144, 87 },
+        { 177, 56 },
+        { 234, 9 }, },
+      { { 20, 218 },
+        { 161, 99 },
+        { 91, 40 },
+        { 198, 133 }, },
+      { { 28, 115 },
+        { 179, 100 },
+        { 206, 56 },
+        { 38, 205 }, },
+      { { 30, 148 },
+        { 164, 86 },
+        { 41, 120 },
+        { 106, 37 }, },
+      { { 30, 186 },
+        { 167, 71 },
+        { 93, 120 },
+        { 226, 229 }, },
+      { { 22, 217 },
+        { 180, 99 },
+        { 155, 104 },
+        { 198, 45 }, },
+      { { 30, 61 },
+        { 182, 85 },
+        { 188, 120 },
+        { 170, 109 }, },
+      { { 22, 251 },
+        { 183, 99 },
+        { 223, 104 },
+        { 198, 237 }, },
+      { { 29, 233 },
+        { 210, 103 },
+        { 151, 184 },
+        { 230, 75 }, },
+      { { 29, 254 },
+        { 227, 119 },
+        { 127, 184 },
+        { 238, 199 }, },
+      { { 31, 159 },
+        { 245, 87 },
+        { 249, 248 },
+        { 234, 175 }, },
+      { { 40, 139 },
+        { 25, 7 },
+        { 209, 20 },
+        { 224, 152 }, },
+      { { 32, 175 },
+        { 27, 19 },
+        { 245, 4 },
+        { 200, 216 }, },
+      { { 34, 14 },
+        { 13, 17 },
+        { 112, 68 },
+        { 136, 176 }, },
+      { { 34, 169 },
+        { 30, 3 },
+        { 149, 68 },
+        { 192, 120 }, },
+      { { 42, 141 },
+        { 28, 23 },
+        { 177, 84 },
+        { 232, 56 }, },
+      { { 42, 163 },
+        { 31, 6 },
+        { 197, 84 },
+        { 96, 248 }, },
+      { { 42, 239 },
+        { 31, 55 },
+        { 247, 84 },
+        { 236, 248 }, },
+      { { 40, 144 },
+        { 40, 6 },
+        { 9, 20 },
+        { 96, 20 }, },
+      { { 40, 59 },
+        { 59, 5 },
+        { 220, 20 },
+        { 160, 220 }, },
+      { { 42, 88 },
+        { 44, 37 },
+        { 26, 84 },
+        { 164, 52 }, },
+      { { 34, 51 },
+        { 63, 0 },
+        { 204, 68 },
+        { 0, 252 }, },
+      { { 33, 160 },
+        { 74, 2 },
+        { 5, 132 },
+        { 64, 82 }, },
+      { { 33, 2 },
+        { 73, 0 },
+        { 64, 132 },
+        { 0, 146 }, },
+      { { 33, 165 },
+        { 90, 18 },
+        { 165, 132 },
+        { 72, 90 }, },
+      { { 33, 199 },
+        { 89, 50 },
+        { 227, 132 },
+        { 76, 154 }, },
+      { { 43, 3 },
+        { 93, 4 },
+        { 192, 212 },
+        { 32, 186 }, },
+      { { 35, 103 },
+        { 95, 48 },
+        { 230, 196 },
+        { 12, 250 }, },
+      { { 41, 48 },
+        { 106, 4 },
+        { 12, 148 },
+        { 32, 86 }, },
+      { { 41, 210 },
+        { 105, 38 },
+        { 75, 148 },
+        { 100, 150 }, },
+      { { 43, 25 },
+        { 124, 5 },
+        { 152, 212 },
+        { 160, 62 }, },
+      { { 43, 155 },
+        { 125, 7 },
+        { 217, 212 },
+        { 224, 190 }, },
+      { { 43, 151 },
+        { 125, 22 },
+        { 233, 212 },
+        { 104, 190 }, },
+      { { 56, 40 },
+        { 138, 5 },
+        { 20, 28 },
+        { 160, 81 }, },
+      { { 56, 165 },
+        { 154, 22 },
+        { 165, 28 },
+        { 104, 89 }, },
+      { { 58, 134 },
+        { 141, 22 },
+        { 97, 92 },
+        { 104, 177 }, },
+      { { 50, 1 },
+        { 156, 0 },
+        { 128, 76 },
+        { 0, 57 }, },
+      { { 56, 159 },
+        { 185, 23 },
+        { 249, 28 },
+        { 232, 157 }, },
+      { { 50, 210 },
+        { 173, 34 },
+        { 75, 76 },
+        { 68, 181 }, },
+      { { 58, 153 },
+        { 188, 7 },
+        { 153, 92 },
+        { 224, 61 }, },
+      { { 58, 213 },
+        { 188, 54 },
+        { 171, 92 },
+        { 108, 61 }, },
+      { { 57, 232 },
+        { 202, 39 },
+        { 23, 156 },
+        { 228, 83 }, },
+      { { 59, 193 },
+        { 220, 38 },
+        { 131, 220 },
+        { 100, 59 }, },
+      { { 51, 67 },
+        { 221, 32 },
+        { 194, 204 },
+        { 4, 187 }, },
+      { { 59, 231 },
+        { 223, 54 },
+        { 231, 220 },
+        { 108, 251 }, },
+      { { 49, 154 },
+        { 233, 3 },
+        { 89, 140 },
+        { 192, 151 }, },
+      { { 51, 144 },
+        { 236, 2 },
+        { 9, 204 },
+        { 64, 55 }, },
+      { { 59, 158 },
+        { 237, 23 },
+        { 121, 220 },
+        { 232, 183 }, },
+      { { 36, 196 },
+        { 8, 114 },
+        { 35, 36 },
+        { 78, 16 }, },
+      { { 44, 74 },
+        { 9, 101 },
+        { 82, 52 },
+        { 166, 144 }, },
+      { { 44, 173 },
+        { 26, 87 },
+        { 181, 52 },
+        { 234, 88 }, },
+      { { 44, 207 },
+        { 25, 119 },
+        { 243, 52 },
+        { 238, 152 }, },
+      { { 44, 103 },
+        { 27, 116 },
+        { 230, 52 },
+        { 46, 216 }, },
+      { { 38, 234 },
+        { 15, 99 },
+        { 87, 100 },
+        { 198, 240 }, },
+      { { 46, 229 },
+        { 30, 118 },
+        { 167, 116 },
+        { 110, 120 }, },
+      { { 44, 112 },
+        { 42, 100 },
+        { 14, 52 },
+        { 38, 84 }, },
+      { { 46, 18 },
+        { 45, 68 },
+        { 72, 116 },
+        { 34, 180 }, },
+      { { 46, 209 },
+        { 60, 102 },
+        { 139, 116 },
+        { 102, 60 }, },
+      { { 46, 57 },
+        { 62, 69 },
+        { 156, 116 },
+        { 162, 124 }, },
+      { { 37, 100 },
+        { 74, 112 },
+        { 38, 164 },
+        { 14, 82 }, },
+      { { 37, 231 },
+        { 91, 114 },
+        { 231, 164 },
+        { 78, 218 }, },
+      { { 47, 204 },
+        { 76, 119 },
+        { 51, 244 },
+        { 238, 50 }, },
+      { { 45, 188 },
+        { 106, 87 },
+        { 61, 180 },
+        { 234, 86 }, },
+      { { 45, 113 },
+        { 122, 100 },
+        { 142, 180 },
+        { 38, 94 }, },
+      { { 37, 213 },
+        { 120, 114 },
+        { 171, 164 },
+        { 78, 30 }, },
+      { { 37, 155 },
+        { 121, 67 },
+        { 217, 164 },
+        { 194, 158 }, },
+      { { 39, 16 },
+        { 108, 64 },
+        { 8, 228 },
+        { 2, 54 }, },
+      { { 47, 124 },
+        { 110, 117 },
+        { 62, 244 },
+        { 174, 118 }, },
+      { { 39, 242 },
+        { 111, 98 },
+        { 79, 228 },
+        { 70, 246 }, },
+      { { 39, 58 },
+        { 111, 65 },
+        { 92, 228 },
+        { 130, 246 }, },
+      { { 47, 182 },
+        { 111, 86 },
+        { 109, 244 },
+        { 106, 246 }, },
+      { { 39, 211 },
+        { 125, 98 },
+        { 203, 228 },
+        { 70, 190 }, },
+      { { 47, 179 },
+        { 127, 70 },
+        { 205, 244 },
+        { 98, 254 }, },
+      { { 39, 31 },
+        { 125, 81 },
+        { 248, 228 },
+        { 138, 190 }, },
+      { { 60, 75 },
+        { 153, 101 },
+        { 210, 60 },
+        { 166, 153 }, },
+      { { 54, 192 },
+        { 140, 98 },
+        { 3, 108 },
+        { 70, 49 }, },
+      { { 54, 238 },
+        { 143, 115 },
+        { 119, 108 },
+        { 206, 241 }, },
+      { { 62, 233 },
+        { 158, 103 },
+        { 151, 124 },
+        { 230, 121 }, },
+      { { 52, 184 },
+        { 170, 67 },
+        { 29, 44 },
+        { 194, 85 }, },
+      { { 60, 20 },
+        { 168, 84 },
+        { 40, 60 },
+        { 42, 21 }, },
+      { { 60, 82 },
+        { 169, 100 },
+        { 74, 60 },
+        { 38, 149 }, },
+      { { 52, 114 },
+        { 171, 96 },
+        { 78, 44 },
+        { 6, 213 }, },
+      { { 52, 126 },
+        { 171, 113 },
+        { 126, 44 },
+        { 142, 213 }, },
+      { { 52, 191 },
+        { 187, 83 },
+        { 253, 44 },
+        { 202, 221 }, },
+      { { 62, 113 },
+        { 190, 100 },
+        { 142, 124 },
+        { 38, 125 }, },
+      { { 62, 83 },
+        { 189, 100 },
+        { 202, 124 },
+        { 38, 189 }, },
+      { { 61, 140 },
+        { 200, 87 },
+        { 49, 188 },
+        { 234, 19 }, },
+      { { 53, 162 },
+        { 203, 66 },
+        { 69, 172 },
+        { 66, 211 }, },
+      { { 53, 46 },
+        { 203, 81 },
+        { 116, 172 },
+        { 138, 211 }, },
+      { { 53, 45 },
+        { 218, 81 },
+        { 180, 172 },
+        { 138, 91 }, },
+      { { 55, 172 },
+        { 206, 83 },
+        { 53, 236 },
+        { 202, 115 }, },
+      { { 53, 112 },
+        { 234, 96 },
+        { 14, 172 },
+        { 6, 87 }, },
+      { { 55, 250 },
+        { 239, 99 },
+        { 95, 236 },
+        { 198, 247 }, },
+      { { 63, 241 },
+        { 254, 102 },
+        { 143, 252 },
+        { 102, 127 }, },
+      { { 63, 219 },
+        { 253, 103 },
+        { 219, 252 },
+        { 230, 191 }, },
+      { { 72, 196 },
+        { 0, 182 },
+        { 35, 18 },
+        { 109, 0 }, },
+      { { 72, 233 },
+        { 18, 167 },
+        { 151, 18 },
+        { 229, 72 }, },
+      { { 74, 194 },
+        { 5, 166 },
+        { 67, 82 },
+        { 101, 160 }, },
+      { { 74, 65 },
+        { 20, 164 },
+        { 130, 82 },
+        { 37, 40 }, },
+      { { 66, 235 },
+        { 23, 163 },
+        { 215, 66 },
+        { 197, 232 }, },
+      { { 72, 19 },
+        { 49, 132 },
+        { 200, 18 },
+        { 33, 140 }, },
+      { { 74, 216 },
+        { 36, 167 },
+        { 27, 82 },
+        { 229, 36 }, },
+      { { 66, 253 },
+        { 54, 179 },
+        { 191, 66 },
+        { 205, 108 }, },
+      { { 74, 23 },
+        { 53, 148 },
+        { 232, 82 },
+        { 41, 172 }, },
+      { { 73, 99 },
+        { 83, 164 },
+        { 198, 146 },
+        { 37, 202 }, },
+      { { 67, 110 },
+        { 71, 177 },
+        { 118, 194 },
+        { 141, 226 }, },
+      { { 65, 58 },
+        { 99, 129 },
+        { 92, 130 },
+        { 129, 198 }, },
+      { { 73, 177 },
+        { 114, 134 },
+        { 141, 146 },
+        { 97, 78 }, },
+      { { 65, 61 },
+        { 114, 145 },
+        { 188, 130 },
+        { 137, 78 }, },
+      { { 75, 146 },
+        { 101, 134 },
+        { 73, 210 },
+        { 97, 166 }, },
+      { { 75, 155 },
+        { 117, 135 },
+        { 217, 210 },
+        { 225, 174 }, },
+      { { 67, 63 },
+        { 119, 145 },
+        { 252, 194 },
+        { 137, 238 }, },
+      { { 88, 34 },
+        { 131, 132 },
+        { 68, 26 },
+        { 33, 193 }, },
+      { { 80, 170 },
+        { 131, 131 },
+        { 85, 10 },
+        { 193, 193 }, },
+      { { 88, 39 },
+        { 147, 148 },
+        { 228, 26 },
+        { 41, 201 }, },
+      { { 82, 200 },
+        { 132, 163 },
+        { 19, 74 },
+        { 197, 33 }, },
+      { { 82, 132 },
+        { 132, 146 },
+        { 33, 74 },
+        { 73, 33 }, },
+      { { 82, 10 },
+        { 133, 129 },
+        { 80, 74 },
+        { 129, 161 }, },
+      { { 90, 15 },
+        { 149, 149 },
+        { 240, 90 },
+        { 169, 169 }, },
+      { { 88, 152 },
+        { 160, 135 },
+        { 25, 26 },
+        { 225, 5 }, },
+      { { 88, 92 },
+        { 160, 181 },
+        { 58, 26 },
+        { 173, 5 }, },
+      { { 80, 219 },
+        { 177, 163 },
+        { 219, 10 },
+        { 197, 141 }, },
+      { { 80, 247 },
+        { 179, 178 },
+        { 239, 10 },
+        { 77, 205 }, },
+      { { 90, 244 },
+        { 166, 182 },
+        { 47, 90 },
+        { 109, 101 }, },
+      { { 81, 236 },
+        { 194, 179 },
+        { 55, 138 },
+        { 205, 67 }, },
+      { { 81, 66 },
+        { 193, 160 },
+        { 66, 138 },
+        { 5, 131 }, },
+      { { 81, 13 },
+        { 208, 145 },
+        { 176, 138 },
+        { 137, 11 }, },
+      { { 91, 3 },
+        { 213, 132 },
+        { 192, 218 },
+        { 33, 171 }, },
+      { { 83, 235 },
+        { 215, 163 },
+        { 215, 202 },
+        { 197, 235 }, },
+      { { 81, 118 },
+        { 227, 176 },
+        { 110, 138 },
+        { 13, 199 }, },
+      { { 89, 113 },
+        { 242, 164 },
+        { 142, 154 },
+        { 37, 79 }, },
+      { { 81, 147 },
+        { 241, 130 },
+        { 201, 138 },
+        { 65, 143 }, },
+      { { 83, 249 },
+        { 246, 163 },
+        { 159, 202 },
+        { 197, 111 }, },
+      { { 91, 179 },
+        { 247, 134 },
+        { 205, 218 },
+        { 97, 239 }, },
+      { { 83, 151 },
+        { 245, 146 },
+        { 233, 202 },
+        { 73, 175 }, },
+      { { 76, 76 },
+        { 0, 245 },
+        { 50, 50 },
+        { 175, 0 }, },
+      { { 68, 75 },
+        { 17, 225 },
+        { 210, 34 },
+        { 135, 136 }, },
+      { { 76, 35 },
+        { 19, 196 },
+        { 196, 50 },
+        { 35, 200 }, },
+      { { 70, 140 },
+        { 4, 211 },
+        { 49, 98 },
+        { 203, 32 }, },
+      { { 78, 39 },
+        { 23, 212 },
+        { 228, 114 },
+        { 43, 232 }, },
+      { { 70, 144 },
+        { 36, 194 },
+        { 9, 98 },
+        { 67, 36 }, },
+      { { 78, 212 },
+        { 36, 246 },
+        { 43, 114 },
+        { 111, 36 }, },
+      { { 69, 206 },
+        { 65, 243 },
+        { 115, 162 },
+        { 207, 130 }, },
+      { { 69, 229 },
+        { 82, 242 },
+        { 167, 162 },
+        { 79, 74 }, },
+      { { 69, 39 },
+        { 83, 208 },
+        { 228, 162 },
+        { 11, 202 }, },
+      { { 79, 193 },
+        { 84, 230 },
+        { 131, 242 },
+        { 103, 42 }, },
+      { { 71, 5 },
+        { 84, 208 },
+        { 160, 226 },
+        { 11, 42 }, },
+      { { 69, 52 },
+        { 98, 208 },
+        { 44, 162 },
+        { 11, 70 }, },
+      { { 69, 114 },
+        { 99, 224 },
+        { 78, 162 },
+        { 7, 198 }, },
+      { { 92, 200 },
+        { 128, 231 },
+        { 19, 58 },
+        { 231, 1 }, },
+      { { 92, 14 },
+        { 129, 213 },
+        { 112, 58 },
+        { 171, 129 }, },
+      { { 84, 235 },
+        { 147, 227 },
+        { 215, 42 },
+        { 199, 201 }, },
+      { { 86, 137 },
+        { 148, 195 },
+        { 145, 106 },
+        { 195, 41 }, },
+      { { 86, 67 },
+        { 149, 224 },
+        { 194, 106 },
+        { 7, 169 }, },
+      { { 94, 231 },
+        { 151, 246 },
+        { 231, 122 },
+        { 111, 233 }, },
+      { { 92, 112 },
+        { 162, 228 },
+        { 14, 58 },
+        { 39, 69 }, },
+      { { 84, 178 },
+        { 163, 194 },
+        { 77, 42 },
+        { 67, 197 }, },
+      { { 94, 121 },
+        { 182, 229 },
+        { 158, 122 },
+        { 167, 109 }, },
+      { { 86, 243 },
+        { 183, 226 },
+        { 207, 106 },
+        { 71, 237 }, },
+      { { 93, 163 },
+        { 211, 198 },
+        { 197, 186 },
+        { 99, 203 }, },
+      { { 93, 242 },
+        { 227, 230 },
+        { 79, 186 },
+        { 103, 199 }, },
+      { { 85, 29 },
+        { 240, 209 },
+        { 184, 170 },
+        { 139, 15 }, },
+      { { 93, 157 },
+        { 240, 215 },
+        { 185, 186 },
+        { 235, 15 }, },
+      { { 87, 252 },
+        { 230, 243 },
+        { 63, 234 },
+        { 207, 103 }, },
+      { { 87, 210 },
+        { 229, 226 },
+        { 75, 234 },
+        { 71, 167 }, },
+      { { 95, 115 },
+        { 247, 228 },
+        { 206, 250 },
+        { 39, 239 }, },
+      { { 104, 45 },
+        { 26, 149 },
+        { 180, 22 },
+        { 169, 88 }, },
+      { { 104, 195 },
+        { 25, 166 },
+        { 195, 22 },
+        { 101, 152 }, },
+      { { 104, 135 },
+        { 25, 150 },
+        { 225, 22 },
+        { 105, 152 }, },
+      { { 106, 74 },
+        { 13, 165 },
+        { 82, 86 },
+        { 165, 176 }, },
+      { { 98, 105 },
+        { 30, 161 },
+        { 150, 70 },
+        { 133, 120 }, },
+      { { 96, 185 },
+        { 58, 131 },
+        { 157, 6 },
+        { 193, 92 }, },
+      { { 104, 255 },
+        { 59, 183 },
+        { 255, 22 },
+        { 237, 220 }, },
+      { { 106, 220 },
+        { 44, 183 },
+        { 59, 86 },
+        { 237, 52 }, },
+      { { 106, 218 },
+        { 45, 167 },
+        { 91, 86 },
+        { 229, 180 }, },
+      { { 106, 62 },
+        { 47, 149 },
+        { 124, 86 },
+        { 169, 244 }, },
+      { { 106, 81 },
+        { 60, 164 },
+        { 138, 86 },
+        { 37, 60 }, },
+      { { 106, 49 },
+        { 62, 132 },
+        { 140, 86 },
+        { 33, 124 }, },
+      { { 98, 215 },
+        { 61, 178 },
+        { 235, 70 },
+        { 77, 188 }, },
+      { { 97, 204 },
+        { 72, 179 },
+        { 51, 134 },
+        { 205, 18 }, },
+      { { 107, 130 },
+        { 77, 134 },
+        { 65, 214 },
+        { 97, 178 }, },
+      { { 107, 227 },
+        { 95, 166 },
+        { 199, 214 },
+        { 101, 250 }, },
+      { { 105, 58 },
+        { 107, 133 },
+        { 92, 150 },
+        { 161, 214 }, },
+      { { 97, 158 },
+        { 105, 147 },
+        { 121, 134 },
+        { 201, 150 }, },
+      { { 97, 149 },
+        { 120, 146 },
+        { 169, 134 },
+        { 73, 30 }, },
+      { { 97, 117 },
+        { 122, 176 },
+        { 174, 134 },
+        { 13, 94 }, },
+      { { 105, 95 },
+        { 121, 181 },
+        { 250, 150 },
+        { 173, 158 }, },
+      { { 105, 55 },
+        { 123, 148 },
+        { 236, 150 },
+        { 41, 222 }, },
+      { { 99, 218 },
+        { 109, 163 },
+        { 91, 198 },
+        { 197, 182 }, },
+      { { 112, 2 },
+        { 137, 128 },
+        { 64, 14 },
+        { 1, 145 }, },
+      { { 120, 99 },
+        { 155, 164 },
+        { 198, 30 },
+        { 37, 217 }, },
+      { { 112, 79 },
+        { 153, 177 },
+        { 242, 14 },
+        { 141, 153 }, },
+      { { 114, 202 },
+        { 141, 163 },
+        { 83, 78 },
+        { 197, 177 }, },
+      { { 122, 173 },
+        { 158, 151 },
+        { 181, 94 },
+        { 233, 121 }, },
+      { { 112, 123 },
+        { 187, 161 },
+        { 222, 14 },
+        { 133, 221 }, },
+      { { 122, 20 },
+        { 172, 148 },
+        { 40, 94 },
+        { 41, 53 }, },
+      { { 122, 249 },
+        { 190, 167 },
+        { 159, 94 },
+        { 229, 125 }, },
+      { { 122, 211 },
+        { 189, 166 },
+        { 203, 94 },
+        { 101, 189 }, },
+      { { 122, 187 },
+        { 191, 135 },
+        { 221, 94 },
+        { 225, 253 }, },
+      { { 121, 226 },
+        { 203, 166 },
+        { 71, 158 },
+        { 101, 211 }, },
+      { { 113, 41 },
+        { 218, 129 },
+        { 148, 142 },
+        { 129, 91 }, },
+      { { 123, 103 },
+        { 223, 180 },
+        { 230, 222 },
+        { 45, 251 }, },
+      { { 113, 208 },
+        { 232, 162 },
+        { 11, 142 },
+        { 69, 23 }, },
+      { { 121, 57 },
+        { 250, 133 },
+        { 156, 158 },
+        { 161, 95 }, },
+      { { 115, 48 },
+        { 238, 128 },
+        { 12, 206 },
+        { 1, 119 }, },
+      { { 115, 185 },
+        { 254, 131 },
+        { 157, 206 },
+        { 193, 127 }, },
+      { { 115, 83 },
+        { 253, 160 },
+        { 202, 206 },
+        { 5, 191 }, },
+      { { 115, 255 },
+        { 255, 179 },
+        { 255, 206 },
+        { 205, 255 }, },
+      { { 108, 136 },
+        { 8, 199 },
+        { 17, 54 },
+        { 227, 16 }, },
+      { { 100, 9 },
+        { 24, 193 },
+        { 144, 38 },
+        { 131, 24 }, },
+      { { 108, 67 },
+        { 25, 228 },
+        { 194, 54 },
+        { 39, 152 }, },
+      { { 102, 6 },
+        { 13, 208 },
+        { 96, 102 },
+        { 11, 176 }, },
+      { { 102, 131 },
+        { 29, 194 },
+        { 193, 102 },
+        { 67, 184 }, },
+      { { 100, 176 },
+        { 42, 194 },
+        { 13, 38 },
+        { 67, 84 }, },
+      { { 100, 218 },
+        { 41, 227 },
+        { 91, 38 },
+        { 199, 148 }, },
+      { { 110, 159 },
+        { 61, 215 },
+        { 249, 118 },
+        { 235, 188 }, },
+      { { 103, 200 },
+        { 76, 227 },
+        { 19, 230 },
+        { 199, 50 }, },
+      { { 111, 238 },
+        { 79, 247 },
+        { 119, 246 },
+        { 239, 242 }, },
+      { { 109, 59 },
+        { 123, 197 },
+        { 220, 182 },
+        { 163, 222 }, },
+      { { 111, 210 },
+        { 109, 230 },
+        { 75, 246 },
+        { 103, 182 }, },
+      { { 116, 128 },
+        { 136, 194 },
+        { 1, 46 },
+        { 67, 17 }, },
+      { { 124, 171 },
+        { 155, 199 },
+        { 213, 62 },
+        { 227, 217 }, },
+      { { 126, 104 },
+        { 142, 229 },
+        { 22, 126 },
+        { 167, 113 }, },
+      { { 126, 2 },
+        { 141, 196 },
+        { 64, 126 },
+        { 35, 177 }, },
+      { { 124, 156 },
+        { 168, 215 },
+        { 57, 62 },
+        { 235, 21 }, },
+      { { 116, 54 },
+        { 171, 208 },
+        { 108, 46 },
+        { 11, 213 }, },
+      { { 124, 17 },
+        { 184, 196 },
+        { 136, 62 },
+        { 35, 29 }, },
+      { { 126, 222 },
+        { 173, 247 },
+        { 123, 126 },
+        { 239, 181 }, },
+      { { 126, 182 },
+        { 175, 214 },
+        { 109, 126 },
+        { 107, 245 }, },
+      { { 118, 219 },
+        { 189, 227 },
+        { 219, 110 },
+        { 199, 189 }, },
+      { { 125, 196 },
+        { 200, 246 },
+        { 35, 190 },
+        { 111, 19 }, },
+      { { 125, 138 },
+        { 201, 199 },
+        { 81, 190 },
+        { 227, 147 }, },
+      { { 117, 109 },
+        { 218, 241 },
+        { 182, 174 },
+        { 143, 91 }, },
+      { { 119, 136 },
+        { 204, 195 },
+        { 17, 238 },
+        { 195, 51 }, },
+      { { 119, 32 },
+        { 206, 192 },
+        { 4, 238 },
+        { 3, 115 }, },
+      { { 119, 65 },
+        { 220, 224 },
+        { 130, 238 },
+        { 7, 59 }, },
+      { { 117, 56 },
+        { 234, 193 },
+        { 28, 174 },
+        { 131, 87 }, },
+      { { 117, 190 },
+        { 235, 211 },
+        { 125, 174 },
+        { 203, 215 }, },
+      { { 125, 155 },
+        { 249, 199 },
+        { 217, 190 },
+        { 227, 159 }, },
+      { { 119, 87 },
+        { 253, 240 },
+        { 234, 238 },
+        { 15, 191 }, },
+      { { 136, 40 },
+        { 2, 13 },
+        { 20, 17 },
+        { 176, 64 }, },
+      { { 128, 172 },
+        { 2, 27 },
+        { 53, 1 },
+        { 216, 64 }, },
+      { { 136, 13 },
+        { 16, 29 },
+        { 176, 17 },
+        { 184, 8 }, },
+      { { 136, 103 },
+        { 19, 60 },
+        { 230, 17 },
+        { 60, 200 }, },
+      { { 130, 78 },
+        { 5, 57 },
+        { 114, 65 },
+        { 156, 160 }, },
+      { { 138, 161 },
+        { 22, 14 },
+        { 133, 81 },
+        { 112, 104 }, },
+      { { 130, 43 },
+        { 23, 9 },
+        { 212, 65 },
+        { 144, 232 }, },
+      { { 128, 24 },
+        { 32, 9 },
+        { 24, 1 },
+        { 144, 4 }, },
+      { { 136, 249 },
+        { 50, 47 },
+        { 159, 17 },
+        { 244, 76 }, },
+      { { 128, 157 },
+        { 48, 27 },
+        { 185, 1 },
+        { 216, 12 }, },
+      { { 138, 156 },
+        { 36, 31 },
+        { 57, 81 },
+        { 248, 36 }, },
+      { { 130, 49 },
+        { 54, 8 },
+        { 140, 65 },
+        { 16, 108 }, },
+      { { 138, 117 },
+        { 54, 60 },
+        { 174, 81 },
+        { 60, 108 }, },
+      { { 130, 151 },
+        { 53, 26 },
+        { 233, 65 },
+        { 88, 172 }, },
+      { { 129, 9 },
+        { 80, 9 },
+        { 144, 129 },
+        { 144, 10 }, },
+      { { 129, 235 },
+        { 83, 43 },
+        { 215, 129 },
+        { 212, 202 }, },
+      { { 129, 7 },
+        { 81, 24 },
+        { 224, 129 },
+        { 24, 138 }, },
+      { { 139, 40 },
+        { 70, 13 },
+        { 20, 209 },
+        { 176, 98 }, },
+      { { 139, 172 },
+        { 70, 31 },
+        { 53, 209 },
+        { 248, 98 }, },
+      { { 131, 46 },
+        { 71, 25 },
+        { 116, 193 },
+        { 152, 226 }, },
+      { { 131, 229 },
+        { 86, 58 },
+        { 167, 193 },
+        { 92, 106 }, },
+      { { 129, 80 },
+        { 96, 40 },
+        { 10, 129 },
+        { 20, 6 }, },
+      { { 137, 50 },
+        { 99, 12 },
+        { 76, 145 },
+        { 48, 198 }, },
+      { { 139, 122 },
+        { 103, 45 },
+        { 94, 209 },
+        { 180, 230 }, },
+      { { 139, 150 },
+        { 101, 30 },
+        { 105, 209 },
+        { 120, 166 }, },
+      { { 131, 125 },
+        { 118, 57 },
+        { 190, 193 },
+        { 156, 110 }, },
+      { { 144, 135 },
+        { 145, 26 },
+        { 225, 9 },
+        { 88, 137 }, },
+      { { 154, 252 },
+        { 166, 63 },
+        { 63, 89 },
+        { 252, 101 }, },
+      { { 146, 245 },
+        { 182, 58 },
+        { 175, 73 },
+        { 92, 109 }, },
+      { { 145, 170 },
+        { 195, 11 },
+        { 85, 137 },
+        { 208, 195 }, },
+      { { 147, 65 },
+        { 212, 40 },
+        { 130, 201 },
+        { 20, 43 }, },
+      { { 147, 37 },
+        { 214, 24 },
+        { 164, 201 },
+        { 24, 107 }, },
+      { { 155, 235 },
+        { 215, 47 },
+        { 215, 217 },
+        { 244, 235 }, },
+      { { 153, 52 },
+        { 226, 28 },
+        { 44, 153 },
+        { 56, 71 }, },
+      { { 145, 247 },
+        { 243, 58 },
+        { 239, 137 },
+        { 92, 207 }, },
+      { { 155, 218 },
+        { 229, 47 },
+        { 91, 217 },
+        { 244, 167 }, },
+      { { 147, 86 },
+        { 229, 56 },
+        { 106, 201 },
+        { 28, 167 }, },
+      { { 132, 66 },
+        { 1, 104 },
+        { 66, 33 },
+        { 22, 128 }, },
+      { { 140, 129 },
+        { 16, 78 },
+        { 129, 49 },
+        { 114, 8 }, },
+      { { 140, 79 },
+        { 17, 125 },
+        { 242, 49 },
+        { 190, 136 }, },
+      { { 134, 72 },
+        { 4, 105 },
+        { 18, 97 },
+        { 150, 32 }, },
+      { { 134, 166 },
+        { 7, 90 },
+        { 101, 97 },
+        { 90, 224 }, },
+      { { 142, 3 },
+        { 21, 76 },
+        { 192, 113 },
+        { 50, 168 }, },
+      { { 134, 227 },
+        { 23, 106 },
+        { 199, 97 },
+        { 86, 232 }, },
+      { { 134, 111 },
+        { 23, 121 },
+        { 246, 97 },
+        { 158, 232 }, },
+      { { 142, 175 },
+        { 23, 95 },
+        { 245, 113 },
+        { 250, 232 }, },
+      { { 132, 94 },
+        { 33, 121 },
+        { 122, 33 },
+        { 158, 132 }, },
+      { { 132, 119 },
+        { 51, 120 },
+        { 238, 33 },
+        { 30, 204 }, },
+      { { 134, 250 },
+        { 39, 107 },
+        { 95, 97 },
+        { 214, 228 }, },
+      { { 142, 30 },
+        { 37, 93 },
+        { 120, 113 },
+        { 186, 164 }, },
+      { { 142, 55 },
+        { 55, 92 },
+        { 236, 113 },
+        { 58, 236 }, },
+      { { 135, 10 },
+        { 69, 73 },
+        { 80, 225 },
+        { 146, 162 }, },
+      { { 143, 138 },
+        { 69, 79 },
+        { 81, 241 },
+        { 242, 162 }, },
+      { { 143, 38 },
+        { 71, 92 },
+        { 100, 241 },
+        { 58, 226 }, },
+      { { 135, 33 },
+        { 86, 72 },
+        { 132, 225 },
+        { 18, 106 }, },
+      { { 135, 13 },
+        { 84, 89 },
+        { 176, 225 },
+        { 154, 42 }, },
+      { { 133, 114 },
+        { 99, 104 },
+        { 78, 161 },
+        { 22, 198 }, },
+      { { 135, 62 },
+        { 103, 89 },
+        { 124, 225 },
+        { 154, 230 }, },
+      { { 156, 67 },
+        { 145, 108 },
+        { 194, 57 },
+        { 54, 137 }, },
+      { { 158, 97 },
+        { 150, 108 },
+        { 134, 121 },
+        { 54, 105 }, },
+      { { 148, 88 },
+        { 160, 105 },
+        { 26, 41 },
+        { 150, 5 }, },
+      { { 148, 248 },
+        { 162, 107 },
+        { 31, 41 },
+        { 214, 69 }, },
+      { { 156, 50 },
+        { 163, 76 },
+        { 76, 57 },
+        { 50, 197 }, },
+      { { 148, 118 },
+        { 163, 120 },
+        { 110, 41 },
+        { 30, 197 }, },
+      { { 148, 177 },
+        { 178, 74 },
+        { 141, 41 },
+        { 82, 77 }, },
+      { { 148, 221 },
+        { 176, 123 },
+        { 187, 41 },
+        { 222, 13 }, },
+      { { 148, 155 },
+        { 177, 75 },
+        { 217, 41 },
+        { 210, 141 }, },
+      { { 156, 219 },
+        { 177, 111 },
+        { 219, 57 },
+        { 246, 141 }, },
+      { { 158, 156 },
+        { 164, 95 },
+        { 57, 121 },
+        { 250, 37 }, },
+      { { 158, 210 },
+        { 165, 110 },
+        { 75, 121 },
+        { 118, 165 }, },
+      { { 150, 25 },
+        { 180, 73 },
+        { 152, 105 },
+        { 146, 45 }, },
+      { { 158, 177 },
+        { 182, 78 },
+        { 141, 121 },
+        { 114, 109 }, },
+      { { 149, 105 },
+        { 210, 105 },
+        { 150, 169 },
+        { 150, 75 }, },
+      { { 159, 109 },
+        { 214, 125 },
+        { 182, 249 },
+        { 190, 107 }, },
+      { { 151, 43 },
+        { 215, 73 },
+        { 212, 233 },
+        { 146, 235 }, },
+      { { 149, 182 },
+        { 227, 90 },
+        { 109, 169 },
+        { 90, 199 }, },
+      { { 149, 185 },
+        { 242, 75 },
+        { 157, 169 },
+        { 210, 79 }, },
+      { { 157, 61 },
+        { 242, 93 },
+        { 188, 185 },
+        { 186, 79 }, },
+      { { 157, 87 },
+        { 241, 124 },
+        { 234, 185 },
+        { 62, 143 }, },
+      { { 168, 236 },
+        { 10, 63 },
+        { 55, 21 },
+        { 252, 80 }, },
+      { { 168, 37 },
+        { 26, 28 },
+        { 164, 21 },
+        { 56, 88 }, },
+      { { 162, 172 },
+        { 14, 27 },
+        { 53, 69 },
+        { 216, 112 }, },
+      { { 162, 2 },
+        { 13, 8 },
+        { 64, 69 },
+        { 16, 176 }, },
+      { { 170, 102 },
+        { 15, 60 },
+        { 102, 85 },
+        { 60, 240 }, },
+      { { 170, 143 },
+        { 29, 31 },
+        { 241, 85 },
+        { 248, 184 }, },
+      { { 170, 231 },
+        { 31, 62 },
+        { 231, 85 },
+        { 124, 248 }, },
+      { { 168, 48 },
+        { 42, 12 },
+        { 12, 21 },
+        { 48, 84 }, },
+      { { 168, 122 },
+        { 43, 45 },
+        { 94, 21 },
+        { 180, 212 }, },
+      { { 168, 246 },
+        { 43, 62 },
+        { 111, 21 },
+        { 124, 212 }, },
+      { { 168, 147 },
+        { 57, 14 },
+        { 201, 21 },
+        { 112, 156 }, },
+      { { 162, 20 },
+        { 44, 24 },
+        { 40, 69 },
+        { 24, 52 }, },
+      { { 170, 52 },
+        { 46, 28 },
+        { 44, 85 },
+        { 56, 116 }, },
+      { { 162, 114 },
+        { 47, 40 },
+        { 78, 69 },
+        { 20, 244 }, },
+      { { 170, 242 },
+        { 47, 46 },
+        { 79, 85 },
+        { 116, 244 }, },
+      { { 162, 241 },
+        { 62, 42 },
+        { 143, 69 },
+        { 84, 124 }, },
+      { { 161, 64 },
+        { 72, 40 },
+        { 2, 133 },
+        { 20, 18 }, },
+      { { 169, 10 },
+        { 73, 13 },
+        { 80, 149 },
+        { 176, 146 }, },
+      { { 161, 38 },
+        { 75, 24 },
+        { 100, 133 },
+        { 24, 210 }, },
+      { { 169, 197 },
+        { 88, 62 },
+        { 163, 149 },
+        { 124, 26 }, },
+      { { 169, 207 },
+        { 89, 63 },
+        { 243, 149 },
+        { 252, 154 }, },
+      { { 161, 52 },
+        { 106, 24 },
+        { 44, 133 },
+        { 24, 86 }, },
+      { { 169, 18 },
+        { 105, 12 },
+        { 72, 149 },
+        { 48, 150 }, },
+      { { 161, 250 },
+        { 107, 43 },
+        { 95, 133 },
+        { 212, 214 }, },
+      { { 171, 152 },
+        { 108, 15 },
+        { 25, 213 },
+        { 240, 54 }, },
+      { { 163, 247 },
+        { 127, 58 },
+        { 239, 197 },
+        { 92, 254 }, },
+      { { 176, 6 },
+        { 137, 24 },
+        { 96, 13 },
+        { 24, 145 }, },
+      { { 176, 69 },
+        { 152, 56 },
+        { 162, 13 },
+        { 28, 25 }, },
+      { { 184, 141 },
+        { 152, 31 },
+        { 177, 29 },
+        { 248, 25 }, },
+      { { 178, 132 },
+        { 140, 26 },
+        { 33, 77 },
+        { 88, 49 }, },
+      { { 184, 240 },
+        { 170, 46 },
+        { 15, 29 },
+        { 116, 85 }, },
+      { { 184, 85 },
+        { 184, 60 },
+        { 170, 29 },
+        { 60, 29 }, },
+      { { 178, 118 },
+        { 175, 56 },
+        { 110, 77 },
+        { 28, 245 }, },
+      { { 186, 145 },
+        { 188, 14 },
+        { 137, 93 },
+        { 112, 61 }, },
+      { { 178, 113 },
+        { 190, 40 },
+        { 142, 77 },
+        { 20, 125 }, },
+      { { 185, 192 },
+        { 200, 46 },
+        { 3, 157 },
+        { 116, 19 }, },
+      { { 185, 66 },
+        { 201, 44 },
+        { 66, 157 },
+        { 52, 147 }, },
+      { { 185, 42 },
+        { 203, 13 },
+        { 84, 157 },
+        { 176, 211 }, },
+      { { 179, 140 },
+        { 204, 27 },
+        { 49, 205 },
+        { 216, 51 }, },
+      { { 179, 202 },
+        { 205, 43 },
+        { 83, 205 },
+        { 212, 179 }, },
+      { { 187, 102 },
+        { 207, 60 },
+        { 102, 221 },
+        { 60, 243 }, },
+      { { 179, 15 },
+        { 221, 25 },
+        { 240, 205 },
+        { 152, 187 }, },
+      { { 177, 218 },
+        { 233, 43 },
+        { 91, 141 },
+        { 212, 151 }, },
+      { { 187, 20 },
+        { 236, 28 },
+        { 40, 221 },
+        { 56, 55 }, },
+      { { 187, 246 },
+        { 239, 62 },
+        { 111, 221 },
+        { 124, 247 }, },
+      { { 179, 19 },
+        { 253, 8 },
+        { 200, 205 },
+        { 16, 191 }, },
+      { { 164, 104 },
+        { 10, 105 },
+        { 22, 37 },
+        { 150, 80 }, },
+      { { 172, 44 },
+        { 10, 93 },
+        { 52, 53 },
+        { 186, 80 }, },
+      { { 172, 161 },
+        { 26, 78 },
+        { 133, 53 },
+        { 114, 88 }, },
+      { { 172, 235 },
+        { 27, 111 },
+        { 215, 53 },
+        { 246, 216 }, },
+      { { 172, 199 },
+        { 25, 126 },
+        { 227, 53 },
+        { 126, 152 }, },
+      { { 164, 103 },
+        { 27, 120 },
+        { 230, 37 },
+        { 30, 216 }, },
+      { { 166, 192 },
+        { 12, 106 },
+        { 3, 101 },
+        { 86, 48 }, },
+      { { 174, 224 },
+        { 14, 110 },
+        { 7, 117 },
+        { 118, 112 }, },
+      { { 166, 35 },
+        { 31, 72 },
+        { 196, 101 },
+        { 18, 248 }, },
+      { { 173, 232 },
+        { 74, 111 },
+        { 23, 181 },
+        { 246, 82 }, },
+      { { 165, 204 },
+        { 72, 123 },
+        { 51, 165 },
+        { 222, 18 }, },
+      { { 167, 236 },
+        { 78, 123 },
+        { 55, 229 },
+        { 222, 114 }, },
+      { { 173, 124 },
+        { 106, 125 },
+        { 62, 181 },
+        { 190, 86 }, },
+      { { 165, 26 },
+        { 105, 73 },
+        { 88, 165 },
+        { 146, 150 }, },
+      { { 165, 145 },
+        { 120, 74 },
+        { 137, 165 },
+        { 82, 30 }, },
+      { { 173, 25 },
+        { 120, 77 },
+        { 152, 181 },
+        { 178, 30 }, },
+      { { 165, 151 },
+        { 121, 90 },
+        { 233, 165 },
+        { 90, 158 }, },
+      { { 180, 109 },
+        { 154, 121 },
+        { 182, 45 },
+        { 158, 89 }, },
+      { { 190, 203 },
+        { 157, 111 },
+        { 211, 125 },
+        { 246, 185 }, },
+      { { 188, 58 },
+        { 171, 77 },
+        { 92, 61 },
+        { 178, 213 }, },
+      { { 188, 245 },
+        { 186, 126 },
+        { 175, 61 },
+        { 126, 93 }, },
+      { { 190, 189 },
+        { 190, 95 },
+        { 189, 125 },
+        { 250, 125 }, },
+      { { 190, 243 },
+        { 191, 110 },
+        { 207, 125 },
+        { 118, 253 }, },
+      { { 181, 37 },
+        { 218, 88 },
+        { 164, 173 },
+        { 26, 91 }, },
+      { { 181, 143 },
+        { 217, 91 },
+        { 241, 173 },
+        { 218, 155 }, },
+      { { 183, 104 },
+        { 206, 105 },
+        { 22, 237 },
+        { 150, 115 }, },
+      { { 191, 228 },
+        { 206, 126 },
+        { 39, 253 },
+        { 126, 115 }, },
+      { { 189, 254 },
+        { 235, 127 },
+        { 127, 189 },
+        { 254, 215 }, },
+      { { 189, 157 },
+        { 248, 95 },
+        { 185, 189 },
+        { 250, 31 }, },
+      { { 181, 245 },
+        { 250, 122 },
+        { 175, 173 },
+        { 94, 95 }, },
+      { { 181, 243 },
+        { 251, 106 },
+        { 207, 173 },
+        { 86, 223 }, },
+      { { 191, 176 },
+        { 238, 78 },
+        { 13, 253 },
+        { 114, 119 }, },
+      { { 183, 90 },
+        { 237, 105 },
+        { 90, 237 },
+        { 150, 183 }, },
+      { { 191, 62 },
+        { 239, 93 },
+        { 124, 253 },
+        { 186, 247 }, },
+      { { 183, 57 },
+        { 254, 73 },
+        { 156, 237 },
+        { 146, 127 }, },
+      { { 191, 213 },
+        { 252, 126 },
+        { 171, 253 },
+        { 126, 63 }, },
+      { { 183, 29 },
+        { 252, 89 },
+        { 184, 237 },
+        { 154, 63 }, },
+      { { 191, 53 },
+        { 254, 92 },
+        { 172, 253 },
+        { 58, 127 }, },
+      { { 183, 127 },
+        { 255, 121 },
+        { 254, 237 },
+        { 158, 255 }, },
+      { { 200, 1 },
+        { 16, 140 },
+        { 128, 19 },
+        { 49, 8 }, },
+      { { 192, 165 },
+        { 18, 154 },
+        { 165, 3 },
+        { 89, 72 }, },
+      { { 194, 130 },
+        { 5, 138 },
+        { 65, 67 },
+        { 81, 160 }, },
+      { { 200, 189 },
+        { 50, 159 },
+        { 189, 19 },
+        { 249, 76 }, },
+      { { 194, 252 },
+        { 38, 187 },
+        { 63, 67 },
+        { 221, 100 }, },
+      { { 202, 145 },
+        { 52, 142 },
+        { 137, 83 },
+        { 113, 44 }, },
+      { { 194, 91 },
+        { 53, 169 },
+        { 218, 67 },
+        { 149, 172 }, },
+      { { 201, 68 },
+        { 64, 188 },
+        { 34, 147 },
+        { 61, 2 }, },
+      { { 193, 42 },
+        { 67, 137 },
+        { 84, 131 },
+        { 145, 194 }, },
+      { { 195, 192 },
+        { 68, 170 },
+        { 3, 195 },
+        { 85, 34 }, },
+      { { 201, 122 },
+        { 99, 173 },
+        { 94, 147 },
+        { 181, 198 }, },
+      { { 193, 185 },
+        { 114, 139 },
+        { 157, 131 },
+        { 209, 78 }, },
+      { { 201, 117 },
+        { 114, 188 },
+        { 174, 147 },
+        { 61, 78 }, },
+      { { 193, 247 },
+        { 115, 186 },
+        { 239, 131 },
+        { 93, 206 }, },
+      { { 203, 177 },
+        { 118, 142 },
+        { 141, 211 },
+        { 113, 110 }, },
+      { { 208, 108 },
+        { 130, 185 },
+        { 54, 11 },
+        { 157, 65 }, },
+      { { 216, 135 },
+        { 145, 158 },
+        { 225, 27 },
+        { 121, 137 }, },
+      { { 208, 175 },
+        { 147, 155 },
+        { 245, 11 },
+        { 217, 201 }, },
+      { { 218, 196 },
+        { 132, 190 },
+        { 35, 91 },
+        { 125, 33 }, },
+      { { 210, 12 },
+        { 132, 153 },
+        { 48, 75 },
+        { 153, 33 }, },
+      { { 218, 9 },
+        { 148, 141 },
+        { 144, 91 },
+        { 177, 41 }, },
+      { { 208, 48 },
+        { 162, 136 },
+        { 12, 11 },
+        { 17, 69 }, },
+      { { 216, 148 },
+        { 160, 158 },
+        { 41, 27 },
+        { 121, 5 }, },
+      { { 208, 58 },
+        { 163, 137 },
+        { 92, 11 },
+        { 145, 197 }, },
+      { { 208, 182 },
+        { 163, 154 },
+        { 109, 11 },
+        { 89, 197 }, },
+      { { 208, 117 },
+        { 178, 184 },
+        { 174, 11 },
+        { 29, 77 }, },
+      { { 210, 118 },
+        { 167, 184 },
+        { 110, 75 },
+        { 29, 229 }, },
+      { { 218, 93 },
+        { 180, 189 },
+        { 186, 91 },
+        { 189, 45 }, },
+      { { 218, 53 },
+        { 182, 156 },
+        { 172, 91 },
+        { 57, 109 }, },
+      { { 210, 23 },
+        { 181, 152 },
+        { 232, 75 },
+        { 25, 173 }, },
+      { { 217, 2 },
+        { 193, 140 },
+        { 64, 155 },
+        { 49, 131 }, },
+      { { 211, 232 },
+        { 198, 171 },
+        { 23, 203 },
+        { 213, 99 }, },
+      { { 211, 229 },
+        { 214, 186 },
+        { 167, 203 },
+        { 93, 107 }, },
+      { { 209, 154 },
+        { 225, 139 },
+        { 89, 139 },
+        { 209, 135 }, },
+      { { 209, 246 },
+        { 227, 186 },
+        { 111, 139 },
+        { 93, 199 }, },
+      { { 209, 81 },
+        { 240, 168 },
+        { 138, 139 },
+        { 21, 15 }, },
+      { { 219, 20 },
+        { 228, 156 },
+        { 40, 219 },
+        { 57, 39 }, },
+      { { 211, 62 },
+        { 231, 153 },
+        { 124, 203 },
+        { 153, 231 }, },
+      { { 211, 211 },
+        { 245, 170 },
+        { 203, 203 },
+        { 85, 175 }, },
+      { { 196, 96 },
+        { 2, 232 },
+        { 6, 35 },
+        { 23, 64 }, },
+      { { 204, 167 },
+        { 19, 222 },
+        { 229, 51 },
+        { 123, 200 }, },
+      { { 198, 66 },
+        { 5, 232 },
+        { 66, 99 },
+        { 23, 160 }, },
+      { { 198, 71 },
+        { 21, 248 },
+        { 226, 99 },
+        { 31, 168 }, },
+      { { 206, 231 },
+        { 23, 254 },
+        { 231, 115 },
+        { 127, 232 }, },
+      { { 196, 92 },
+        { 32, 249 },
+        { 58, 35 },
+        { 159, 4 }, },
+      { { 204, 29 },
+        { 48, 221 },
+        { 184, 51 },
+        { 187, 12 }, },
+      { { 204, 53 },
+        { 50, 220 },
+        { 172, 51 },
+        { 59, 76 }, },
+      { { 198, 188 },
+        { 38, 219 },
+        { 61, 99 },
+        { 219, 100 }, },
+      { { 205, 168 },
+        { 66, 207 },
+        { 21, 179 },
+        { 243, 66 }, },
+      { { 197, 12 },
+        { 64, 217 },
+        { 48, 163 },
+        { 155, 2 }, },
+      { { 197, 228 },
+        { 66, 250 },
+        { 39, 163 },
+        { 95, 66 }, },
+      { { 197, 194 },
+        { 65, 234 },
+        { 67, 163 },
+        { 87, 130 }, },
+      { { 205, 45 },
+        { 82, 221 },
+        { 180, 179 },
+        { 187, 74 }, },
+      { { 205, 89 },
+        { 112, 237 },
+        { 154, 179 },
+        { 183, 14 }, },
+      { { 205, 149 },
+        { 112, 222 },
+        { 169, 179 },
+        { 123, 14 }, },
+      { { 197, 147 },
+        { 113, 202 },
+        { 201, 163 },
+        { 83, 142 }, },
+      { { 199, 95 },
+        { 117, 249 },
+        { 250, 227 },
+        { 159, 174 }, },
+      { { 212, 197 },
+        { 144, 250 },
+        { 163, 43 },
+        { 95, 9 }, },
+      { { 222, 136 },
+        { 132, 207 },
+        { 17, 123 },
+        { 243, 33 }, },
+      { { 214, 36 },
+        { 134, 216 },
+        { 36, 107 },
+        { 27, 97 }, },
+      { { 222, 236 },
+        { 134, 255 },
+        { 55, 123 },
+        { 255, 97 }, },
+      { { 214, 226 },
+        { 135, 234 },
+        { 71, 107 },
+        { 87, 225 }, },
+      { { 222, 198 },
+        { 133, 254 },
+        { 99, 123 },
+        { 127, 161 }, },
+      { { 222, 35 },
+        { 151, 204 },
+        { 196, 123 },
+        { 51, 233 }, },
+      { { 220, 220 },
+        { 160, 255 },
+        { 59, 59 },
+        { 255, 5 }, },
+      { { 220, 26 },
+        { 161, 205 },
+        { 88, 59 },
+        { 179, 133 }, },
+      { { 212, 17 },
+        { 176, 200 },
+        { 136, 43 },
+        { 19, 13 }, },
+      { { 222, 84 },
+        { 164, 252 },
+        { 42, 123 },
+        { 63, 37 }, },
+      { { 214, 148 },
+        { 164, 218 },
+        { 41, 107 },
+        { 91, 37 }, },
+      { { 222, 157 },
+        { 180, 223 },
+        { 185, 123 },
+        { 251, 45 }, },
+      { { 221, 129 },
+        { 208, 206 },
+        { 129, 187 },
+        { 115, 11 }, },
+      { { 213, 165 },
+        { 210, 218 },
+        { 165, 171 },
+        { 91, 75 }, },
+      { { 215, 172 },
+        { 198, 219 },
+        { 53, 235 },
+        { 219, 99 }, },
+      { { 215, 102 },
+        { 199, 248 },
+        { 102, 235 },
+        { 31, 227 }, },
+      { { 223, 169 },
+        { 214, 207 },
+        { 149, 251 },
+        { 243, 107 }, },
+      { { 213, 220 },
+        { 224, 251 },
+        { 59, 171 },
+        { 223, 7 }, },
+      { { 221, 31 },
+        { 241, 221 },
+        { 248, 187 },
+        { 187, 143 }, },
+      { { 223, 240 },
+        { 230, 238 },
+        { 15, 251 },
+        { 119, 103 }, },
+      { { 226, 72 },
+        { 12, 169 },
+        { 18, 71 },
+        { 149, 48 }, },
+      { { 226, 232 },
+        { 14, 171 },
+        { 23, 71 },
+        { 213, 112 }, },
+      { { 226, 7 },
+        { 29, 152 },
+        { 224, 71 },
+        { 25, 184 }, },
+      { { 224, 93 },
+        { 56, 185 },
+        { 186, 7 },
+        { 157, 28 }, },
+      { { 234, 245 },
+        { 62, 190 },
+        { 175, 87 },
+        { 125, 124 }, },
+      { { 235, 38 },
+        { 79, 156 },
+        { 100, 215 },
+        { 57, 242 }, },
+      { { 235, 237 },
+        { 94, 191 },
+        { 183, 215 },
+        { 253, 122 }, },
+      { { 225, 82 },
+        { 105, 168 },
+        { 74, 135 },
+        { 21, 150 }, },
+      { { 225, 126 },
+        { 107, 185 },
+        { 126, 135 },
+        { 157, 214 }, },
+      { { 233, 219 },
+        { 121, 175 },
+        { 219, 151 },
+        { 245, 158 }, },
+      { { 248, 6 },
+        { 137, 156 },
+        { 96, 31 },
+        { 57, 145 }, },
+      { { 240, 238 },
+        { 139, 187 },
+        { 119, 15 },
+        { 221, 209 }, },
+      { { 248, 161 },
+        { 154, 142 },
+        { 133, 31 },
+        { 113, 89 }, },
+      { { 250, 0 },
+        { 140, 140 },
+        { 0, 95 },
+        { 49, 49 }, },
+      { { 250, 194 },
+        { 141, 174 },
+        { 67, 95 },
+        { 117, 177 }, },
+      { { 240, 155 },
+        { 185, 139 },
+        { 217, 15 },
+        { 209, 157 }, },
+      { { 250, 244 },
+        { 174, 190 },
+        { 47, 95 },
+        { 125, 117 }, },
+      { { 250, 60 },
+        { 174, 157 },
+        { 60, 95 },
+        { 185, 117 }, },
+      { { 242, 252 },
+        { 174, 187 },
+        { 63, 79 },
+        { 221, 117 }, },
+      { { 242, 189 },
+        { 190, 155 },
+        { 189, 79 },
+        { 217, 125 }, },
+      { { 242, 147 },
+        { 189, 138 },
+        { 201, 79 },
+        { 81, 189 }, },
+      { { 241, 96 },
+        { 202, 168 },
+        { 6, 143 },
+        { 21, 83 }, },
+      { { 249, 236 },
+        { 202, 191 },
+        { 55, 159 },
+        { 253, 83 }, },
+      { { 241, 70 },
+        { 201, 184 },
+        { 98, 143 },
+        { 29, 147 }, },
+      { { 249, 225 },
+        { 218, 174 },
+        { 135, 159 },
+        { 117, 91 }, },
+      { { 243, 72 },
+        { 204, 169 },
+        { 18, 207 },
+        { 149, 51 }, },
+      { { 243, 174 },
+        { 207, 155 },
+        { 117, 207 },
+        { 217, 243 }, },
+      { { 243, 193 },
+        { 220, 170 },
+        { 131, 207 },
+        { 85, 59 }, },
+      { { 243, 139 },
+        { 221, 139 },
+        { 209, 207 },
+        { 209, 187 }, },
+      { { 243, 167 },
+        { 223, 154 },
+        { 229, 207 },
+        { 89, 251 }, },
+      { { 241, 115 },
+        { 251, 168 },
+        { 206, 143 },
+        { 21, 223 }, },
+      { { 241, 151 },
+        { 249, 154 },
+        { 233, 143 },
+        { 89, 159 }, },
+      { { 243, 244 },
+        { 238, 186 },
+        { 47, 207 },
+        { 93, 119 }, },
+      { { 251, 50 },
+        { 239, 140 },
+        { 76, 223 },
+        { 49, 247 }, },
+      { { 228, 7 },
+        { 25, 216 },
+        { 224, 39 },
+        { 27, 152 }, },
+      { { 230, 77 },
+        { 28, 249 },
+        { 178, 103 },
+        { 159, 56 }, },
+      { { 236, 85 },
+        { 56, 252 },
+        { 170, 55 },
+        { 63, 28 }, },
+      { { 237, 192 },
+        { 72, 238 },
+        { 3, 183 },
+        { 119, 18 }, },
+      { { 237, 133 },
+        { 88, 222 },
+        { 161, 183 },
+        { 123, 26 }, },
+      { { 239, 162 },
+        { 79, 206 },
+        { 69, 247 },
+        { 115, 242 }, },
+      { { 231, 78 },
+        { 77, 249 },
+        { 114, 231 },
+        { 159, 178 }, },
+      { { 229, 213 },
+        { 120, 250 },
+        { 171, 167 },
+        { 95, 30 }, },
+      { { 239, 80 },
+        { 108, 236 },
+        { 10, 247 },
+        { 55, 54 }, },
+      { { 244, 34 },
+        { 139, 200 },
+        { 68, 47 },
+        { 19, 209 }, },
+      { { 244, 137 },
+        { 152, 203 },
+        { 145, 47 },
+        { 211, 25 }, },
+      { { 244, 41 },
+        { 154, 201 },
+        { 148, 47 },
+        { 147, 89 }, },
+      { { 246, 106 },
+        { 143, 233 },
+        { 86, 111 },
+        { 151, 241 }, },
+      { { 254, 11 },
+        { 157, 205 },
+        { 208, 127 },
+        { 179, 185 }, },
+      { { 254, 111 },
+        { 159, 253 },
+        { 246, 127 },
+        { 191, 249 }, },
+      { { 244, 149 },
+        { 184, 218 },
+        { 169, 47 },
+        { 91, 29 }, },
+      { { 244, 53 },
+        { 186, 216 },
+        { 172, 47 },
+        { 27, 93 }, },
+      { { 244, 31 },
+        { 185, 217 },
+        { 248, 47 },
+        { 155, 157 }, },
+      { { 246, 176 },
+        { 174, 202 },
+        { 13, 111 },
+        { 83, 117 }, },
+      { { 245, 232 },
+        { 202, 235 },
+        { 23, 175 },
+        { 215, 83 }, },
+      { { 245, 197 },
+        { 216, 250 },
+        { 163, 175 },
+        { 95, 27 }, },
+      { { 253, 35 },
+        { 219, 204 },
+        { 196, 191 },
+        { 51, 219 }, },
+      { { 255, 192 },
+        { 204, 238 },
+        { 3, 255 },
+        { 119, 51 }, },
+      { { 247, 204 },
+        { 204, 251 },
+        { 51, 239 },
+        { 223, 51 }, },
+      { { 247, 233 },
+        { 222, 235 },
+        { 151, 239 },
+        { 215, 123 }, },
+      { { 245, 188 },
+        { 234, 219 },
+        { 61, 175 },
+        { 219, 87 }, },
+      { { 253, 246 },
+        { 235, 254 },
+        { 111, 191 },
+        { 127, 215 }, },
+      { { 245, 217 },
+        { 248, 235 },
+        { 155, 175 },
+        { 215, 31 }, },
+      { { 253, 151 },
+        { 249, 222 },
+        { 233, 191 },
+        { 123, 159 }, },
+      { { 253, 63 },
+        { 251, 221 },
+        { 252, 191 },
+        { 187, 223 }, },
+      { { 255, 156 },
+        { 236, 223 },
+        { 57, 255 },
+        { 251, 55 }, },
+      { { 255, 90 },
+        { 237, 237 },
+        { 90, 255 },
+        { 183, 183 }, },
+      { { 247, 254 },
+        { 239, 251 },
+        { 127, 239 },
+        { 223, 247 }, },
+      { { 255, 17 },
+        { 252, 204 },
+        { 136, 255 },
+        { 51, 63 }, },
+      { { 247, 191 },
+        { 255, 219 },
+        { 253, 239 },
+        { 219, 255 }, }, };
+
+static unsigned char DICT_5X5_1000_BYTES[][4][4] =
+    { { { 162, 217, 94, 0 },
+        { 82, 46, 217, 1 },
+        { 61, 77, 162, 1 },
+        { 205, 186, 37, 0 }, },
+      { { 14, 3, 115, 0 },
+        { 176, 198, 133, 0 },
+        { 103, 96, 56, 0 },
+        { 80, 177, 134, 1 }, },
+      { { 215, 135, 110, 1 },
+        { 47, 151, 157, 1 },
+        { 187, 112, 245, 1 },
+        { 220, 244, 250, 0 }, },
+      { { 129, 202, 251, 1 },
+        { 122, 222, 40, 1 },
+        { 239, 169, 192, 1 },
+        { 138, 61, 175, 0 }, },
+      { { 215, 90, 146, 0 },
+        { 116, 27, 236, 0 },
+        { 36, 173, 117, 1 },
+        { 27, 236, 23, 0 }, },
+      { { 234, 4, 22, 1 },
+        { 153, 35, 152, 0 },
+        { 180, 16, 43, 1 },
+        { 12, 226, 76, 1 }, },
+      { { 105, 235, 246, 0 },
+        { 242, 191, 51, 0 },
+        { 55, 235, 203, 0 },
+        { 102, 126, 167, 1 }, },
+      { { 113, 10, 53, 1 },
+        { 60, 249, 16, 0 },
+        { 214, 40, 71, 0 },
+        { 4, 79, 158, 0 }, },
+      { { 134, 176, 153, 0 },
+        { 18, 64, 238, 1 },
+        { 76, 134, 176, 1 },
+        { 187, 129, 36, 0 }, },
+      { { 152, 159, 210, 1 },
+        { 191, 14, 105, 0 },
+        { 165, 252, 140, 1 },
+        { 75, 56, 126, 1 }, },
+      { { 158, 119, 1, 1 },
+        { 237, 64, 207, 0 },
+        { 192, 119, 60, 1 },
+        { 121, 129, 91, 1 }, },
+      { { 209, 109, 96, 0 },
+        { 69, 157, 11, 0 },
+        { 3, 91, 69, 1 },
+        { 104, 92, 209, 0 }, },
+      { { 243, 21, 136, 1 },
+        { 13, 49, 233, 1 },
+        { 136, 212, 103, 1 },
+        { 203, 198, 88, 0 }, },
+      { { 47, 56, 179, 0 },
+        { 144, 250, 230, 0 },
+        { 102, 142, 122, 0 },
+        { 51, 175, 132, 1 }, },
+      { { 254, 126, 84, 0 },
+        { 245, 45, 222, 0 },
+        { 21, 63, 63, 1 },
+        { 61, 218, 87, 1 }, },
+      { { 40, 241, 191, 1 },
+        { 218, 226, 115, 1 },
+        { 254, 199, 138, 0 },
+        { 231, 35, 173, 1 }, },
+      { { 75, 211, 172, 0 },
+        { 226, 145, 241, 1 },
+        { 26, 229, 233, 0 },
+        { 199, 196, 163, 1 }, },
+      { { 95, 81, 55, 1 },
+        { 220, 211, 213, 0 },
+        { 246, 69, 125, 0 },
+        { 85, 229, 157, 1 }, },
+      { { 123, 38, 226, 0 },
+        { 165, 183, 162, 0 },
+        { 35, 178, 111, 0 },
+        { 34, 246, 210, 1 }, },
+      { { 131, 14, 244, 0 },
+        { 49, 156, 184, 0 },
+        { 23, 184, 96, 1 },
+        { 14, 156, 198, 0 }, },
+      { { 150, 237, 58, 1 },
+        { 95, 138, 143, 1 },
+        { 174, 91, 180, 1 },
+        { 248, 168, 253, 0 }, },
+      { { 168, 114, 32, 0 },
+        { 224, 160, 74, 0 },
+        { 2, 39, 10, 1 },
+        { 41, 2, 131, 1 }, },
+      { { 181, 134, 80, 1 },
+        { 63, 52, 12, 0 },
+        { 133, 48, 214, 1 },
+        { 24, 22, 126, 0 }, },
+      { { 93, 9, 111, 0 },
+        { 132, 223, 21, 1 },
+        { 123, 72, 93, 0 },
+        { 212, 125, 144, 1 }, },
+      { { 206, 104, 17, 1 },
+        { 216, 73, 142, 0 },
+        { 196, 11, 57, 1 },
+        { 56, 201, 13, 1 }, },
+      { { 210, 204, 185, 0 },
+        { 87, 201, 168, 1 },
+        { 78, 153, 165, 1 },
+        { 138, 201, 245, 0 }, },
+      { { 225, 231, 69, 1 },
+        { 107, 117, 27, 0 },
+        { 209, 115, 195, 1 },
+        { 108, 87, 107, 0 }, },
+      { { 17, 33, 35, 0 },
+        { 4, 210, 3, 0 },
+        { 98, 66, 68, 0 },
+        { 96, 37, 144, 0 }, },
+      { { 29, 203, 57, 0 },
+        { 246, 216, 5, 1 },
+        { 78, 105, 220, 0 },
+        { 208, 13, 183, 1 }, },
+      { { 18, 17, 29, 1 },
+        { 28, 64, 209, 1 },
+        { 220, 68, 36, 0 },
+        { 197, 129, 28, 0 }, },
+      { { 19, 155, 183, 0 },
+        { 54, 218, 241, 0 },
+        { 118, 236, 228, 0 },
+        { 71, 173, 182, 0 }, },
+      { { 27, 68, 57, 1 },
+        { 221, 208, 128, 1 },
+        { 206, 17, 108, 0 },
+        { 128, 133, 221, 1 }, },
+      { { 32, 104, 103, 0 },
+        { 64, 238, 18, 0 },
+        { 115, 11, 2, 0 },
+        { 36, 59, 129, 0 }, },
+      { { 37, 85, 100, 0 },
+        { 65, 180, 85, 0 },
+        { 19, 85, 82, 0 },
+        { 85, 22, 193, 0 }, },
+      { { 35, 33, 221, 0 },
+        { 16, 116, 179, 1 },
+        { 93, 194, 98, 0 },
+        { 230, 151, 4, 0 }, },
+      { { 61, 55, 245, 0 },
+        { 181, 244, 119, 0 },
+        { 87, 246, 94, 0 },
+        { 119, 23, 214, 1 }, },
+      { { 76, 197, 86, 0 },
+        { 211, 7, 21, 0 },
+        { 53, 81, 153, 0 },
+        { 84, 112, 101, 1 }, },
+      { { 65, 104, 128, 1 },
+        { 72, 25, 34, 0 },
+        { 128, 139, 65, 0 },
+        { 34, 76, 9, 0 }, },
+      { { 77, 86, 142, 1 },
+        { 233, 19, 116, 1 },
+        { 184, 181, 89, 0 },
+        { 151, 100, 75, 1 }, },
+      { { 67, 30, 57, 0 },
+        { 49, 217, 192, 1 },
+        { 78, 60, 97, 0 },
+        { 129, 205, 198, 0 }, },
+      { { 86, 148, 18, 1 },
+        { 31, 3, 196, 0 },
+        { 164, 20, 181, 0 },
+        { 17, 224, 124, 0 }, },
+      { { 82, 151, 207, 0 },
+        { 39, 71, 241, 1 },
+        { 121, 244, 165, 0 },
+        { 199, 241, 114, 0 }, },
+      { { 108, 36, 251, 1 },
+        { 153, 231, 38, 1 },
+        { 239, 146, 27, 0 },
+        { 178, 115, 204, 1 }, },
+      { { 97, 132, 236, 1 },
+        { 11, 181, 48, 1 },
+        { 155, 144, 195, 0 },
+        { 134, 86, 232, 0 }, },
+      { { 109, 63, 24, 1 },
+        { 185, 57, 71, 1 },
+        { 140, 126, 91, 0 },
+        { 241, 78, 78, 1 }, },
+      { { 116, 177, 61, 0 },
+        { 22, 225, 87, 1 },
+        { 94, 70, 151, 0 },
+        { 245, 67, 180, 0 }, },
+      { { 116, 220, 203, 1 },
+        { 79, 111, 100, 1 },
+        { 233, 157, 151, 0 },
+        { 147, 123, 121, 0 }, },
+      { { 124, 164, 3, 0 },
+        { 135, 99, 6, 0 },
+        { 96, 18, 159, 0 },
+        { 48, 99, 112, 1 }, },
+      { { 122, 200, 146, 1 },
+        { 222, 43, 160, 0 },
+        { 164, 137, 175, 0 },
+        { 2, 234, 61, 1 }, },
+      { { 123, 91, 235, 1 },
+        { 236, 255, 225, 1 },
+        { 235, 237, 111, 0 },
+        { 195, 255, 155, 1 }, },
+      { { 141, 172, 114, 0 },
+        { 147, 158, 14, 0 },
+        { 39, 26, 216, 1 },
+        { 56, 60, 228, 1 }, },
+      { { 141, 105, 60, 1 },
+        { 216, 152, 31, 1 },
+        { 158, 75, 88, 1 },
+        { 252, 12, 141, 1 }, },
+      { { 143, 28, 5, 1 },
+        { 137, 88, 220, 0 },
+        { 208, 28, 120, 1 },
+        { 29, 141, 72, 1 }, },
+      { { 139, 74, 34, 1 },
+        { 232, 154, 136, 0 },
+        { 162, 41, 104, 1 },
+        { 8, 172, 139, 1 }, },
+      { { 151, 253, 165, 0 },
+        { 71, 216, 255, 0 },
+        { 82, 223, 244, 1 },
+        { 127, 141, 241, 0 }, },
+      { { 172, 101, 198, 1 },
+        { 201, 38, 63, 0 },
+        { 177, 211, 26, 1 },
+        { 126, 50, 73, 1 }, },
+      { { 172, 195, 248, 0 },
+        { 242, 164, 45, 1 },
+        { 15, 225, 154, 1 },
+        { 218, 18, 167, 1 }, },
+      { { 161, 23, 239, 1 },
+        { 41, 246, 121, 1 },
+        { 251, 244, 66, 1 },
+        { 207, 55, 202, 0 }, },
+      { { 167, 9, 19, 1 },
+        { 24, 122, 141, 0 },
+        { 228, 72, 114, 1 },
+        { 88, 175, 12, 0 }, },
+      { { 171, 111, 145, 0 },
+        { 241, 120, 171, 0 },
+        { 68, 251, 106, 1 },
+        { 106, 143, 71, 1 }, },
+      { { 185, 237, 248, 1 },
+        { 223, 188, 43, 1 },
+        { 143, 219, 206, 1 },
+        { 234, 30, 253, 1 }, },
+      { { 178, 100, 158, 0 },
+        { 85, 34, 186, 1 },
+        { 60, 147, 38, 1 },
+        { 174, 162, 85, 0 }, },
+      { { 190, 93, 195, 0 },
+        { 197, 110, 237, 0 },
+        { 97, 221, 62, 1 },
+        { 91, 187, 81, 1 }, },
+      { { 196, 5, 67, 1 },
+        { 9, 71, 13, 0 },
+        { 225, 80, 17, 1 },
+        { 88, 113, 72, 0 }, },
+      { { 200, 163, 238, 1 },
+        { 170, 135, 59, 1 },
+        { 187, 226, 137, 1 },
+        { 238, 112, 170, 1 }, },
+      { { 194, 117, 197, 0 },
+        { 65, 69, 251, 0 },
+        { 81, 215, 33, 1 },
+        { 111, 209, 65, 0 }, },
+      { { 198, 194, 214, 1 },
+        { 122, 7, 188, 0 },
+        { 181, 161, 177, 1 },
+        { 30, 240, 47, 0 }, },
+      { { 217, 102, 212, 1 },
+        { 253, 21, 58, 0 },
+        { 149, 179, 77, 1 },
+        { 46, 84, 95, 1 }, },
+      { { 221, 94, 185, 1 },
+        { 253, 217, 108, 1 },
+        { 206, 189, 93, 1 },
+        { 155, 77, 223, 1 }, },
+      { { 244, 234, 25, 0 },
+        { 118, 105, 14, 1 },
+        { 76, 43, 151, 1 },
+        { 184, 75, 55, 0 }, },
+      { { 243, 178, 148, 0 },
+        { 54, 49, 250, 0 },
+        { 20, 166, 231, 1 },
+        { 47, 198, 54, 0 }, },
+      { { 122, 186, 5, 0 },
+        { 166, 105, 210, 0 },
+        { 80, 46, 175, 0 },
+        { 37, 203, 50, 1 }, },
+      { { 216, 141, 41, 1 },
+        { 143, 201, 9, 1 },
+        { 202, 88, 141, 1 },
+        { 200, 73, 248, 1 }, },
+      { { 12, 103, 50, 1 },
+        { 249, 130, 7, 0 },
+        { 166, 115, 24, 0 },
+        { 112, 32, 207, 1 }, },
+      { { 21, 89, 12, 1 },
+        { 76, 24, 85, 1 },
+        { 152, 77, 84, 0 },
+        { 213, 12, 25, 0 }, },
+      { { 76, 116, 192, 1 },
+        { 201, 5, 102, 0 },
+        { 129, 151, 25, 0 },
+        { 51, 80, 73, 1 }, },
+      { { 84, 3, 14, 0 },
+        { 36, 3, 21, 1 },
+        { 56, 96, 21, 0 },
+        { 212, 96, 18, 0 }, },
+      { { 160, 208, 172, 0 },
+        { 66, 160, 120, 1 },
+        { 26, 133, 130, 1 },
+        { 143, 2, 161, 0 }, },
+      { { 194, 152, 166, 0 },
+        { 2, 139, 248, 0 },
+        { 50, 140, 161, 1 },
+        { 15, 232, 160, 0 }, },
+      { { 203, 104, 150, 0 },
+        { 208, 27, 186, 0 },
+        { 52, 139, 105, 1 },
+        { 46, 236, 5, 1 }, },
+      { { 253, 105, 209, 0 },
+        { 212, 125, 47, 0 },
+        { 69, 203, 95, 1 },
+        { 122, 95, 21, 1 }, },
+      { { 4, 145, 90, 1 },
+        { 26, 6, 69, 1 },
+        { 173, 68, 144, 0 },
+        { 209, 48, 44, 0 }, },
+      { { 12, 222, 112, 0 },
+        { 243, 140, 68, 0 },
+        { 7, 61, 152, 0 },
+        { 17, 24, 231, 1 }, },
+      { { 5, 170, 62, 0 },
+        { 50, 154, 22, 1 },
+        { 62, 42, 208, 0 },
+        { 180, 44, 166, 0 }, },
+      { { 1, 99, 183, 1 },
+        { 120, 210, 51, 0 },
+        { 246, 227, 64, 0 },
+        { 102, 37, 143, 0 }, },
+      { { 9, 145, 68, 1 },
+        { 138, 20, 81, 0 },
+        { 145, 68, 200, 0 },
+        { 69, 20, 40, 1 }, },
+      { { 9, 105, 83, 1 },
+        { 216, 94, 3, 0 },
+        { 229, 75, 72, 0 },
+        { 96, 61, 13, 1 }, },
+      { { 6, 37, 161, 1 },
+        { 9, 192, 167, 0 },
+        { 194, 210, 48, 0 },
+        { 114, 129, 200, 0 }, },
+      { { 3, 61, 226, 1 },
+        { 9, 158, 227, 0 },
+        { 163, 222, 96, 0 },
+        { 99, 188, 200, 0 }, },
+      { { 7, 213, 6, 1 },
+        { 75, 18, 213, 0 },
+        { 176, 85, 240, 0 },
+        { 85, 164, 105, 0 }, },
+      { { 15, 143, 170, 0 },
+        { 163, 154, 165, 1 },
+        { 42, 248, 248, 0 },
+        { 210, 172, 226, 1 }, },
+      { { 28, 116, 60, 1 },
+        { 221, 128, 86, 1 },
+        { 158, 23, 28, 0 },
+        { 181, 0, 221, 1 }, },
+      { { 25, 29, 145, 1 },
+        { 157, 88, 97, 0 },
+        { 196, 220, 76, 0 },
+        { 67, 13, 92, 1 }, },
+      { { 22, 27, 35, 1 },
+        { 44, 202, 197, 0 },
+        { 226, 108, 52, 0 },
+        { 81, 169, 154, 0 }, },
+      { { 22, 210, 141, 1 },
+        { 110, 64, 244, 1 },
+        { 216, 165, 180, 0 },
+        { 151, 129, 59, 0 }, },
+      { { 23, 78, 198, 1 },
+        { 109, 30, 180, 0 },
+        { 177, 185, 116, 0 },
+        { 22, 188, 91, 0 }, },
+      { { 19, 226, 177, 0 },
+        { 118, 208, 162, 0 },
+        { 70, 163, 228, 0 },
+        { 34, 133, 183, 0 }, },
+      { { 31, 126, 250, 1 },
+        { 253, 158, 230, 1 },
+        { 175, 191, 124, 0 },
+        { 179, 188, 223, 1 }, },
+      { { 41, 15, 112, 0 },
+        { 177, 188, 1, 0 },
+        { 7, 120, 74, 0 },
+        { 64, 30, 198, 1 }, },
+      { { 34, 71, 126, 1 },
+        { 121, 166, 145, 1 },
+        { 191, 113, 34, 0 },
+        { 196, 178, 207, 0 }, },
+      { { 42, 23, 192, 1 },
+        { 169, 36, 225, 0 },
+        { 129, 244, 42, 0 },
+        { 67, 146, 74, 1 }, },
+      { { 42, 251, 100, 1 },
+        { 234, 172, 211, 0 },
+        { 147, 111, 170, 0 },
+        { 101, 154, 171, 1 }, },
+      { { 35, 240, 4, 0 },
+        { 66, 48, 210, 0 },
+        { 16, 7, 226, 0 },
+        { 37, 134, 33, 0 }, },
+      { { 39, 205, 252, 0 },
+        { 83, 188, 181, 1 },
+        { 31, 217, 242, 0 },
+        { 214, 158, 229, 0 }, },
+      { { 35, 106, 172, 0 },
+        { 96, 184, 178, 1 },
+        { 26, 171, 98, 0 },
+        { 166, 142, 131, 0 }, },
+      { { 47, 123, 47, 0 },
+        { 224, 250, 215, 1 },
+        { 122, 111, 122, 0 },
+        { 245, 175, 131, 1 }, },
+      { { 52, 144, 196, 0 },
+        { 6, 36, 116, 0 },
+        { 17, 132, 150, 0 },
+        { 23, 18, 48, 0 }, },
+      { { 48, 9, 214, 1 },
+        { 28, 46, 49, 0 },
+        { 181, 200, 6, 0 },
+        { 70, 58, 28, 0 }, },
+      { { 52, 94, 16, 1 },
+        { 125, 40, 68, 0 },
+        { 132, 61, 22, 0 },
+        { 17, 10, 95, 0 }, },
+      { { 57, 82, 232, 0 },
+        { 228, 180, 96, 1 },
+        { 11, 165, 78, 0 },
+        { 131, 22, 147, 1 }, },
+      { { 50, 0, 113, 0 },
+        { 20, 228, 128, 0 },
+        { 71, 0, 38, 0 },
+        { 0, 147, 148, 0 }, },
+      { { 54, 231, 29, 0 },
+        { 119, 96, 151, 1 },
+        { 92, 115, 182, 0 },
+        { 244, 131, 119, 0 }, },
+      { { 68, 138, 4, 1 },
+        { 42, 9, 20, 0 },
+        { 144, 40, 145, 0 },
+        { 20, 72, 42, 0 }, },
+      { { 68, 236, 254, 1 },
+        { 91, 143, 54, 1 },
+        { 191, 155, 145, 0 },
+        { 182, 120, 237, 0 }, },
+      { { 69, 31, 114, 1 },
+        { 57, 159, 69, 0 },
+        { 167, 124, 81, 0 },
+        { 81, 124, 206, 0 }, },
+      { { 69, 74, 149, 0 },
+        { 112, 89, 52, 0 },
+        { 84, 169, 81, 0 },
+        { 22, 77, 7, 0 }, },
+      { { 70, 19, 190, 1 },
+        { 56, 131, 245, 1 },
+        { 190, 228, 49, 0 },
+        { 215, 224, 142, 0 }, },
+      { { 78, 131, 9, 0 },
+        { 162, 65, 133, 1 },
+        { 72, 96, 185, 0 },
+        { 208, 193, 34, 1 }, },
+      { { 71, 114, 153, 1 },
+        { 120, 81, 230, 1 },
+        { 204, 167, 113, 0 },
+        { 179, 197, 15, 0 }, },
+      { { 79, 130, 125, 1 },
+        { 186, 213, 148, 1 },
+        { 223, 32, 249, 0 },
+        { 148, 213, 174, 1 }, },
+      { { 92, 55, 141, 1 },
+        { 173, 65, 119, 1 },
+        { 216, 246, 29, 0 },
+        { 247, 65, 90, 1 }, },
+      { { 88, 253, 119, 0 },
+        { 215, 207, 83, 0 },
+        { 119, 95, 141, 0 },
+        { 101, 121, 245, 1 }, },
+      { { 81, 183, 248, 0 },
+        { 55, 149, 99, 1 },
+        { 15, 246, 197, 0 },
+        { 227, 84, 246, 0 }, },
+      { { 89, 58, 251, 0 },
+        { 180, 223, 98, 1 },
+        { 111, 174, 77, 0 },
+        { 163, 125, 150, 1 }, },
+      { { 90, 153, 153, 0 },
+        { 150, 73, 225, 1 },
+        { 76, 204, 173, 0 },
+        { 195, 201, 52, 1 }, },
+      { { 83, 1, 240, 1 },
+        { 28, 149, 161, 0 },
+        { 135, 192, 101, 0 },
+        { 66, 212, 156, 0 }, },
+      { { 83, 204, 103, 1 },
+        { 79, 223, 144, 0 },
+        { 243, 25, 229, 0 },
+        { 4, 253, 249, 0 }, },
+      { { 83, 110, 1, 0 },
+        { 101, 89, 130, 0 },
+        { 64, 59, 101, 0 },
+        { 32, 205, 83, 0 }, },
+      { { 91, 37, 175, 1 },
+        { 141, 211, 179, 1 },
+        { 250, 210, 109, 0 },
+        { 230, 229, 216, 1 }, },
+      { { 95, 213, 204, 1 },
+        { 207, 21, 245, 1 },
+        { 153, 213, 253, 0 },
+        { 215, 212, 121, 1 }, },
+      { { 101, 102, 66, 1 },
+        { 105, 55, 6, 0 },
+        { 161, 51, 83, 0 },
+        { 48, 118, 75, 0 }, },
+      { { 101, 199, 175, 0 },
+        { 99, 243, 53, 1 },
+        { 122, 241, 211, 0 },
+        { 214, 103, 227, 0 }, },
+      { { 102, 55, 81, 0 },
+        { 49, 101, 199, 0 },
+        { 69, 118, 51, 0 },
+        { 113, 211, 70, 0 }, },
+      { { 103, 12, 197, 1 },
+        { 9, 125, 180, 0 },
+        { 209, 152, 115, 0 },
+        { 22, 223, 72, 0 }, },
+      { { 112, 150, 93, 1 },
+        { 63, 101, 80, 1 },
+        { 221, 52, 135, 0 },
+        { 133, 83, 126, 0 }, },
+      { { 124, 99, 128, 1 },
+        { 236, 33, 39, 0 },
+        { 128, 227, 31, 0 },
+        { 114, 66, 27, 1 }, },
+      { { 121, 171, 169, 0 },
+        { 166, 249, 35, 1 },
+        { 74, 234, 207, 0 },
+        { 226, 79, 178, 1 }, },
+      { { 114, 61, 70, 0 },
+        { 5, 47, 211, 0 },
+        { 49, 94, 39, 0 },
+        { 101, 250, 80, 0 }, },
+      { { 115, 229, 178, 1 },
+        { 95, 179, 163, 0 },
+        { 166, 211, 231, 0 },
+        { 98, 230, 253, 0 }, },
+      { { 132, 38, 140, 0 },
+        { 33, 0, 62, 1 },
+        { 24, 178, 16, 1 },
+        { 190, 0, 66, 0 }, },
+      { { 137, 241, 1, 0 },
+        { 194, 80, 75, 0 },
+        { 64, 71, 200, 1 },
+        { 105, 5, 33, 1 }, },
+      { { 134, 174, 233, 1 },
+        { 43, 204, 174, 1 },
+        { 203, 186, 176, 1 },
+        { 186, 153, 234, 0 }, },
+      { { 138, 35, 249, 1 },
+        { 184, 196, 171, 1 },
+        { 207, 226, 40, 1 },
+        { 234, 145, 142, 1 }, },
+      { { 148, 53, 113, 1 },
+        { 29, 196, 79, 0 },
+        { 199, 86, 20, 1 },
+        { 121, 17, 220, 0 }, },
+      { { 156, 69, 27, 0 },
+        { 213, 66, 13, 1 },
+        { 108, 81, 28, 1 },
+        { 216, 33, 85, 1 }, },
+      { { 149, 31, 164, 1 },
+        { 45, 152, 125, 0 },
+        { 146, 252, 84, 1 },
+        { 95, 12, 218, 0 }, },
+      { { 150, 141, 144, 0 },
+        { 23, 8, 173, 0 },
+        { 4, 216, 180, 1 },
+        { 90, 136, 116, 0 }, },
+      { { 151, 38, 183, 0 },
+        { 53, 210, 190, 0 },
+        { 118, 178, 116, 1 },
+        { 62, 165, 214, 0 }, },
+      { { 155, 55, 103, 0 },
+        { 165, 214, 219, 0 },
+        { 115, 118, 108, 1 },
+        { 109, 181, 210, 1 }, },
+      { { 155, 198, 224, 1 },
+        { 239, 148, 168, 0 },
+        { 131, 177, 236, 1 },
+        { 10, 148, 251, 1 }, },
+      { { 160, 154, 110, 1 },
+        { 42, 174, 88, 1 },
+        { 187, 44, 130, 1 },
+        { 141, 58, 170, 0 }, },
+      { { 164, 82, 134, 1 },
+        { 104, 34, 124, 0 },
+        { 176, 165, 18, 1 },
+        { 31, 34, 11, 0 }, },
+      { { 168, 176, 133, 1 },
+        { 138, 96, 122, 0 },
+        { 208, 134, 138, 1 },
+        { 47, 3, 40, 1 }, },
+      { { 173, 155, 66, 0 },
+        { 162, 62, 77, 0 },
+        { 33, 108, 218, 1 },
+        { 89, 62, 34, 1 }, },
+      { { 175, 240, 88, 1 },
+        { 218, 52, 206, 1 },
+        { 141, 7, 250, 1 },
+        { 185, 150, 45, 1 }, },
+      { { 176, 46, 99, 1 },
+        { 45, 238, 10, 0 },
+        { 227, 58, 6, 1 },
+        { 40, 59, 218, 0 }, },
+      { { 176, 15, 24, 0 },
+        { 53, 40, 9, 1 },
+        { 12, 120, 6, 1 },
+        { 200, 10, 86, 0 }, },
+      { { 188, 234, 178, 1 },
+        { 254, 170, 46, 0 },
+        { 166, 171, 158, 1 },
+        { 58, 42, 191, 1 }, },
+      { { 190, 196, 76, 1 },
+        { 207, 36, 156, 1 },
+        { 153, 17, 190, 1 },
+        { 156, 146, 121, 1 }, },
+      { { 179, 130, 250, 0 },
+        { 54, 182, 168, 1 },
+        { 47, 160, 230, 1 },
+        { 138, 182, 182, 0 }, },
+      { { 179, 88, 60, 1 },
+        { 92, 184, 216, 1 },
+        { 158, 13, 102, 1 },
+        { 141, 142, 157, 0 }, },
+      { { 191, 69, 238, 0 },
+        { 197, 182, 189, 1 },
+        { 59, 209, 126, 1 },
+        { 222, 182, 209, 1 }, },
+      { { 191, 86, 51, 1 },
+        { 253, 242, 204, 0 },
+        { 230, 53, 126, 1 },
+        { 25, 167, 223, 1 }, },
+      { { 196, 58, 240, 0 },
+        { 48, 141, 110, 0 },
+        { 7, 174, 17, 1 },
+        { 59, 88, 134, 0 }, },
+      { { 204, 233, 131, 0 },
+        { 194, 75, 47, 0 },
+        { 96, 203, 153, 1 },
+        { 122, 105, 33, 1 }, },
+      { { 197, 51, 0, 1 },
+        { 40, 17, 79, 0 },
+        { 128, 102, 81, 1 },
+        { 121, 68, 10, 0 }, },
+      { { 205, 34, 99, 1 },
+        { 168, 215, 14, 0 },
+        { 227, 34, 89, 1 },
+        { 56, 117, 138, 1 }, },
+      { { 198, 8, 138, 1 },
+        { 8, 11, 172, 1 },
+        { 168, 136, 49, 1 },
+        { 154, 232, 8, 0 }, },
+      { { 198, 148, 63, 0 },
+        { 19, 195, 220, 1 },
+        { 126, 20, 177, 1 },
+        { 157, 225, 228, 0 }, },
+      { { 202, 238, 132, 1 },
+        { 235, 9, 186, 0 },
+        { 144, 187, 169, 1 },
+        { 46, 200, 107, 1 }, },
+      { { 207, 167, 18, 1 },
+        { 187, 19, 143, 0 },
+        { 164, 114, 249, 1 },
+        { 120, 228, 110, 1 }, },
+      { { 203, 97, 226, 1 },
+        { 200, 151, 171, 0 },
+        { 163, 195, 105, 1 },
+        { 106, 244, 137, 1 }, },
+      { { 208, 2, 233, 0 },
+        { 36, 197, 40, 1 },
+        { 75, 160, 5, 1 },
+        { 138, 81, 146, 0 }, },
+      { { 220, 183, 70, 0 },
+        { 167, 7, 95, 0 },
+        { 49, 118, 157, 1 },
+        { 125, 112, 114, 1 }, },
+      { { 217, 139, 132, 1 },
+        { 174, 25, 57, 0 },
+        { 144, 232, 205, 1 },
+        { 78, 76, 58, 1 }, },
+      { { 217, 206, 178, 0 },
+        { 247, 155, 40, 0 },
+        { 38, 185, 205, 1 },
+        { 10, 108, 247, 1 }, },
+      { { 210, 153, 64, 1 },
+        { 14, 13, 201, 0 },
+        { 129, 76, 165, 1 },
+        { 73, 216, 56, 0 }, },
+      { { 210, 209, 23, 0 },
+        { 86, 67, 217, 0 },
+        { 116, 69, 165, 1 },
+        { 77, 225, 53, 0 }, },
+      { { 222, 90, 110, 1 },
+        { 236, 143, 220, 1 },
+        { 187, 45, 61, 1 },
+        { 157, 248, 155, 1 }, },
+      { { 218, 71, 66, 1 },
+        { 237, 7, 137, 0 },
+        { 161, 113, 45, 1 },
+        { 72, 240, 91, 1 }, },
+      { { 219, 60, 16, 0 },
+        { 149, 25, 202, 0 },
+        { 4, 30, 109, 1 },
+        { 41, 204, 84, 1 }, },
+      { { 219, 143, 201, 0 },
+        { 167, 93, 169, 1 },
+        { 73, 248, 237, 1 },
+        { 202, 221, 114, 1 }, },
+      { { 232, 24, 227, 1 },
+        { 136, 239, 104, 0 },
+        { 227, 140, 11, 1 },
+        { 11, 123, 136, 1 }, },
+      { { 229, 28, 111, 0 },
+        { 1, 255, 92, 1 },
+        { 123, 28, 83, 1 },
+        { 157, 127, 192, 0 }, },
+      { { 225, 174, 56, 1 },
+        { 59, 185, 10, 1 },
+        { 142, 58, 195, 1 },
+        { 168, 78, 238, 0 }, },
+      { { 237, 185, 123, 1 },
+        { 154, 255, 79, 1 },
+        { 239, 78, 219, 1 },
+        { 249, 127, 172, 1 }, },
+      { { 233, 224, 50, 0 },
+        { 210, 179, 10, 0 },
+        { 38, 3, 203, 1 },
+        { 40, 102, 165, 1 }, },
+      { { 235, 93, 12, 0 },
+        { 193, 57, 217, 1 },
+        { 24, 93, 107, 1 },
+        { 205, 206, 65, 1 }, },
+      { { 239, 249, 157, 0 },
+        { 210, 121, 255, 1 },
+        { 92, 207, 251, 1 },
+        { 255, 207, 37, 1 }, },
+      { { 248, 17, 1, 0 },
+        { 132, 97, 73, 0 },
+        { 64, 68, 15, 1 },
+        { 73, 67, 16, 1 }, },
+      { { 248, 7, 211, 0 },
+        { 181, 103, 41, 0 },
+        { 101, 240, 15, 1 },
+        { 74, 115, 86, 1 }, },
+      { { 246, 2, 32, 1 },
+        { 44, 161, 140, 0 },
+        { 130, 32, 55, 1 },
+        { 24, 194, 154, 0 }, },
+      { { 246, 27, 95, 1 },
+        { 60, 111, 221, 1 },
+        { 253, 108, 55, 1 },
+        { 221, 251, 30, 0 }, },
+      { { 254, 181, 237, 0 },
+        { 135, 229, 255, 1 },
+        { 91, 214, 191, 1 },
+        { 255, 211, 240, 1 }, },
+      { { 250, 51, 56, 1 },
+        { 188, 161, 203, 1 },
+        { 142, 102, 47, 1 },
+        { 233, 194, 158, 1 }, },
+      { { 250, 74, 193, 1 },
+        { 236, 109, 168, 0 },
+        { 193, 169, 47, 1 },
+        { 10, 219, 27, 1 }, },
+      { { 247, 47, 112, 1 },
+        { 61, 189, 143, 0 },
+        { 135, 122, 119, 1 },
+        { 120, 222, 222, 0 }, },
+      { { 247, 234, 252, 1 },
+        { 126, 189, 190, 1 },
+        { 159, 171, 247, 1 },
+        { 190, 222, 191, 0 }, },
+      { { 255, 24, 148, 1 },
+        { 156, 57, 252, 0 },
+        { 148, 140, 127, 1 },
+        { 31, 206, 28, 1 }, },
+      { { 251, 163, 94, 0 },
+        { 182, 55, 155, 1 },
+        { 61, 98, 239, 1 },
+        { 236, 246, 54, 1 }, },
+      { { 104, 184, 47, 0 },
+        { 130, 235, 82, 1 },
+        { 122, 14, 139, 0 },
+        { 165, 107, 160, 1 }, },
+      { { 153, 15, 11, 1 },
+        { 173, 90, 9, 1 },
+        { 232, 120, 76, 1 },
+        { 200, 45, 90, 1 }, },
+      { { 153, 216, 38, 1 },
+        { 206, 154, 88, 0 },
+        { 178, 13, 204, 1 },
+        { 13, 44, 185, 1 }, },
+      { { 228, 95, 14, 1 },
+        { 105, 43, 93, 1 },
+        { 184, 125, 19, 1 },
+        { 221, 106, 75, 0 }, },
+      { { 29, 16, 110, 1 },
+        { 140, 150, 84, 1 },
+        { 187, 4, 92, 0 },
+        { 149, 52, 152, 1 }, },
+      { { 42, 193, 48, 1 },
+        { 218, 160, 129, 0 },
+        { 134, 65, 170, 0 },
+        { 64, 130, 173, 1 }, },
+      { { 52, 65, 99, 1 },
+        { 76, 230, 5, 0 },
+        { 227, 65, 22, 0 },
+        { 80, 51, 153, 0 }, },
+      { { 55, 192, 116, 1 },
+        { 94, 180, 148, 0 },
+        { 151, 1, 246, 0 },
+        { 20, 150, 189, 0 }, },
+      { { 63, 53, 203, 1 },
+        { 141, 118, 231, 1 },
+        { 233, 214, 126, 0 },
+        { 243, 183, 88, 1 }, },
+      { { 86, 160, 76, 0 },
+        { 6, 5, 150, 1 },
+        { 25, 2, 181, 0 },
+        { 180, 208, 48, 0 }, },
+      { { 87, 56, 57, 1 },
+        { 28, 217, 198, 1 },
+        { 206, 14, 117, 0 },
+        { 177, 205, 156, 0 }, },
+      { { 102, 152, 184, 0 },
+        { 18, 169, 228, 1 },
+        { 14, 140, 179, 0 },
+        { 147, 202, 164, 0 }, },
+      { { 115, 165, 23, 0 },
+        { 23, 115, 147, 0 },
+        { 116, 82, 231, 0 },
+        { 100, 231, 116, 0 }, },
+      { { 127, 44, 253, 1 },
+        { 157, 253, 182, 1 },
+        { 223, 154, 127, 0 },
+        { 182, 223, 220, 1 }, },
+      { { 139, 71, 233, 0 },
+        { 225, 212, 169, 1 },
+        { 75, 241, 104, 1 },
+        { 202, 149, 195, 1 }, },
+      { { 165, 195, 151, 0 },
+        { 114, 114, 61, 0 },
+        { 116, 225, 210, 1 },
+        { 94, 39, 39, 0 }, },
+      { { 169, 169, 235, 0 },
+        { 130, 254, 43, 1 },
+        { 107, 202, 202, 1 },
+        { 234, 63, 160, 1 }, },
+      { { 181, 25, 183, 0 },
+        { 20, 250, 125, 0 },
+        { 118, 204, 86, 1 },
+        { 95, 47, 148, 0 }, },
+      { { 178, 218, 153, 1 },
+        { 126, 104, 232, 1 },
+        { 204, 173, 166, 1 },
+        { 139, 139, 63, 0 }, },
+      { { 196, 193, 244, 0 },
+        { 82, 133, 61, 0 },
+        { 23, 193, 145, 1 },
+        { 94, 80, 165, 0 }, },
+      { { 202, 185, 30, 0 },
+        { 146, 11, 219, 1 },
+        { 60, 78, 169, 1 },
+        { 237, 232, 36, 1 }, },
+      { { 216, 111, 163, 1 },
+        { 237, 203, 43, 0 },
+        { 226, 251, 13, 1 },
+        { 106, 105, 219, 1 }, },
+      { { 223, 141, 142, 0 },
+        { 135, 27, 189, 1 },
+        { 56, 216, 253, 1 },
+        { 222, 236, 112, 1 }, },
+      { { 229, 102, 143, 1 },
+        { 105, 115, 62, 1 },
+        { 248, 179, 83, 1 },
+        { 190, 103, 75, 0 }, },
+      { { 237, 71, 26, 1 },
+        { 249, 51, 13, 1 },
+        { 172, 113, 91, 1 },
+        { 216, 102, 79, 1 }, },
+      { { 240, 103, 134, 1 },
+        { 109, 35, 59, 0 },
+        { 176, 243, 7, 1 },
+        { 110, 98, 91, 0 }, },
+      { { 4, 41, 238, 1 },
+        { 8, 142, 55, 1 },
+        { 187, 202, 16, 0 },
+        { 246, 56, 136, 0 }, },
+      { { 0, 35, 71, 1 },
+        { 40, 70, 19, 0 },
+        { 241, 98, 0, 0 },
+        { 100, 49, 10, 0 }, },
+      { { 0, 162, 251, 0 },
+        { 50, 198, 34, 1 },
+        { 111, 162, 128, 0 },
+        { 162, 49, 166, 0 }, },
+      { { 4, 200, 206, 0 },
+        { 66, 14, 52, 1 },
+        { 57, 137, 144, 0 },
+        { 150, 56, 33, 0 }, },
+      { { 0, 210, 225, 1 },
+        { 106, 196, 96, 0 },
+        { 195, 165, 128, 0 },
+        { 3, 17, 171, 0 }, },
+      { { 12, 10, 15, 0 },
+        { 160, 74, 20, 1 },
+        { 120, 40, 24, 0 },
+        { 148, 41, 2, 1 }, },
+      { { 8, 139, 198, 0 },
+        { 162, 14, 49, 0 },
+        { 49, 232, 136, 0 },
+        { 70, 56, 34, 1 }, },
+      { { 12, 134, 91, 0 },
+        { 179, 70, 4, 1 },
+        { 109, 48, 152, 0 },
+        { 144, 49, 102, 1 }, },
+      { { 5, 129, 253, 0 },
+        { 18, 212, 53, 1 },
+        { 95, 192, 208, 0 },
+        { 214, 21, 164, 0 }, },
+      { { 1, 113, 30, 0 },
+        { 80, 18, 83, 1 },
+        { 60, 71, 64, 0 },
+        { 229, 36, 5, 0 }, },
+      { { 1, 194, 21, 1 },
+        { 122, 80, 16, 0 },
+        { 212, 33, 192, 0 },
+        { 4, 5, 47, 0 }, },
+      { { 1, 231, 113, 0 },
+        { 115, 212, 3, 0 },
+        { 71, 115, 192, 0 },
+        { 96, 21, 231, 0 }, },
+      { { 9, 41, 191, 0 },
+        { 144, 218, 51, 1 },
+        { 126, 202, 72, 0 },
+        { 230, 45, 132, 1 }, },
+      { { 13, 16, 27, 1 },
+        { 152, 82, 68, 1 },
+        { 236, 4, 88, 0 },
+        { 145, 37, 12, 1 }, },
+      { { 13, 5, 24, 0 },
+        { 145, 16, 5, 1 },
+        { 12, 80, 88, 0 },
+        { 208, 4, 68, 1 }, },
+      { { 13, 237, 47, 1 },
+        { 203, 218, 23, 1 },
+        { 250, 91, 216, 0 },
+        { 244, 45, 233, 1 }, },
+      { { 13, 102, 222, 0 },
+        { 241, 22, 54, 1 },
+        { 61, 179, 88, 0 },
+        { 182, 52, 71, 1 }, },
+      { { 9, 242, 118, 0 },
+        { 242, 150, 82, 0 },
+        { 55, 39, 200, 0 },
+        { 37, 52, 167, 1 }, },
+      { { 2, 208, 130, 1 },
+        { 74, 2, 224, 0 },
+        { 160, 133, 160, 0 },
+        { 3, 160, 41, 0 }, },
+      { { 2, 98, 201, 0 },
+        { 96, 68, 162, 1 },
+        { 73, 163, 32, 0 },
+        { 162, 145, 3, 0 }, },
+      { { 6, 243, 169, 0 },
+        { 98, 192, 231, 1 },
+        { 74, 231, 176, 0 },
+        { 243, 129, 163, 0 }, },
+      { { 6, 239, 35, 0 },
+        { 99, 202, 135, 0 },
+        { 98, 123, 176, 0 },
+        { 112, 169, 227, 0 }, },
+      { { 14, 62, 18, 0 },
+        { 177, 10, 198, 0 },
+        { 36, 62, 56, 0 },
+        { 49, 168, 70, 1 }, },
+      { { 10, 154, 221, 1 },
+        { 186, 76, 240, 1 },
+        { 221, 172, 168, 0 },
+        { 135, 153, 46, 1 }, },
+      { { 10, 97, 109, 1 },
+        { 200, 196, 147, 1 },
+        { 219, 67, 40, 0 },
+        { 228, 145, 137, 1 }, },
+      { { 10, 255, 81, 0 },
+        { 243, 76, 195, 0 },
+        { 69, 127, 168, 0 },
+        { 97, 153, 103, 1 }, },
+      { { 7, 230, 114, 1 },
+        { 123, 150, 134, 0 },
+        { 167, 51, 240, 0 },
+        { 48, 180, 239, 0 }, },
+      { { 11, 154, 1, 0 },
+        { 162, 88, 192, 0 },
+        { 64, 44, 232, 0 },
+        { 1, 141, 34, 1 }, },
+      { { 15, 208, 142, 0 },
+        { 194, 18, 244, 1 },
+        { 56, 133, 248, 0 },
+        { 151, 164, 33, 1 }, },
+      { { 15, 73, 147, 0 },
+        { 208, 90, 165, 0 },
+        { 100, 201, 120, 0 },
+        { 82, 173, 5, 1 }, },
+      { { 15, 247, 123, 0 },
+        { 243, 214, 199, 1 },
+        { 111, 119, 248, 0 },
+        { 241, 181, 231, 1 }, },
+      { { 16, 158, 96, 1 },
+        { 47, 140, 64, 0 },
+        { 131, 60, 132, 0 },
+        { 1, 24, 250, 0 }, },
+      { { 16, 81, 237, 0 },
+        { 68, 196, 113, 1 },
+        { 91, 197, 4, 0 },
+        { 199, 17, 145, 0 }, },
+      { { 20, 122, 222, 1 },
+        { 124, 14, 118, 1 },
+        { 189, 175, 20, 0 },
+        { 183, 56, 31, 0 }, },
+      { { 28, 133, 62, 1 },
+        { 159, 130, 21, 1 },
+        { 190, 80, 156, 0 },
+        { 212, 32, 252, 1 }, },
+      { { 28, 35, 104, 0 },
+        { 164, 132, 7, 1 },
+        { 11, 98, 28, 0 },
+        { 240, 16, 146, 1 }, },
+      { { 24, 199, 52, 0 },
+        { 247, 128, 17, 0 },
+        { 22, 113, 140, 0 },
+        { 68, 0, 247, 1 }, },
+      { { 21, 251, 130, 1 },
+        { 110, 26, 103, 0 },
+        { 160, 239, 212, 0 },
+        { 115, 44, 59, 0 }, },
+      { { 17, 78, 147, 1 },
+        { 125, 90, 32, 0 },
+        { 228, 185, 68, 0 },
+        { 2, 45, 95, 0 }, },
+      { { 25, 160, 234, 1 },
+        { 142, 150, 34, 1 },
+        { 171, 130, 204, 0 },
+        { 162, 52, 184, 1 }, },
+      { { 18, 24, 76, 0 },
+        { 4, 12, 208, 1 },
+        { 25, 12, 36, 0 },
+        { 133, 152, 16, 0 }, },
+      { { 18, 163, 174, 0 },
+        { 38, 130, 179, 1 },
+        { 58, 226, 164, 0 },
+        { 230, 160, 178, 0 }, },
+      { { 30, 172, 60, 0 },
+        { 151, 136, 150, 1 },
+        { 30, 26, 188, 0 },
+        { 180, 136, 244, 1 }, },
+      { { 30, 201, 108, 0 },
+        { 198, 140, 149, 1 },
+        { 27, 73, 188, 0 },
+        { 212, 152, 177, 1 }, },
+      { { 30, 233, 163, 1 },
+        { 206, 202, 167, 0 },
+        { 226, 203, 188, 0 },
+        { 114, 169, 185, 1 }, },
+      { { 26, 118, 216, 0 },
+        { 245, 4, 226, 1 },
+        { 13, 183, 44, 0 },
+        { 163, 144, 87, 1 }, },
+      { { 19, 182, 7, 1 },
+        { 47, 82, 210, 0 },
+        { 240, 54, 228, 0 },
+        { 37, 165, 122, 0 }, },
+      { { 23, 70, 188, 0 },
+        { 117, 144, 180, 1 },
+        { 30, 177, 116, 0 },
+        { 150, 132, 215, 0 }, },
+      { { 31, 21, 121, 0 },
+        { 149, 212, 197, 1 },
+        { 79, 84, 124, 0 },
+        { 209, 149, 212, 1 }, },
+      { { 27, 35, 125, 0 },
+        { 180, 212, 147, 1 },
+        { 95, 98, 108, 0 },
+        { 228, 149, 150, 1 }, },
+      { { 27, 191, 146, 0 },
+        { 183, 26, 227, 0 },
+        { 36, 254, 236, 0 },
+        { 99, 172, 118, 1 }, },
+      { { 31, 150, 154, 1 },
+        { 191, 18, 228, 1 },
+        { 172, 180, 252, 0 },
+        { 147, 164, 126, 1 }, },
+      { { 27, 72, 235, 0 },
+        { 196, 222, 160, 1 },
+        { 107, 137, 108, 0 },
+        { 130, 189, 145, 1 }, },
+      { { 32, 12, 253, 0 },
+        { 17, 236, 48, 1 },
+        { 95, 152, 2, 0 },
+        { 134, 27, 196, 0 }, },
+      { { 32, 23, 86, 0 },
+        { 49, 38, 81, 0 },
+        { 53, 116, 2, 0 },
+        { 69, 50, 70, 0 }, },
+      { { 40, 1, 153, 1 },
+        { 152, 96, 33, 1 },
+        { 204, 192, 10, 0 },
+        { 194, 3, 12, 1 }, },
+      { { 44, 50, 55, 1 },
+        { 184, 226, 86, 0 },
+        { 246, 38, 26, 0 },
+        { 53, 35, 142, 1 }, },
+      { { 37, 140, 230, 0 },
+        { 3, 190, 52, 0 },
+        { 51, 152, 210, 0 },
+        { 22, 62, 224, 0 }, },
+      { { 33, 30, 140, 0 },
+        { 33, 56, 112, 1 },
+        { 24, 188, 66, 0 },
+        { 135, 14, 66, 0 }, },
+      { { 45, 125, 105, 0 },
+        { 193, 252, 71, 1 },
+        { 75, 95, 90, 0 },
+        { 241, 31, 193, 1 }, },
+      { { 41, 192, 73, 0 },
+        { 194, 116, 0, 1 },
+        { 73, 1, 202, 0 },
+        { 128, 23, 33, 1 }, },
+      { { 38, 177, 32, 0 },
+        { 2, 160, 199, 0 },
+        { 2, 70, 178, 0 },
+        { 113, 130, 160, 0 }, },
+      { { 38, 128, 28, 1 },
+        { 26, 32, 148, 1 },
+        { 156, 0, 178, 0 },
+        { 148, 130, 44, 0 }, },
+      { { 34, 180, 26, 0 },
+        { 19, 34, 194, 1 },
+        { 44, 22, 162, 0 },
+        { 161, 162, 100, 0 }, },
+      { { 38, 42, 68, 1 },
+        { 40, 44, 150, 0 },
+        { 145, 42, 50, 0 },
+        { 52, 154, 10, 0 }, },
+      { { 38, 171, 89, 0 },
+        { 50, 108, 135, 1 },
+        { 77, 106, 178, 0 },
+        { 240, 155, 38, 0 }, },
+      { { 38, 201, 132, 0 },
+        { 66, 40, 181, 0 },
+        { 16, 201, 178, 0 },
+        { 86, 138, 33, 0 }, },
+      { { 42, 48, 98, 1 },
+        { 136, 166, 194, 0 },
+        { 163, 6, 42, 0 },
+        { 33, 178, 136, 1 }, },
+      { { 46, 50, 173, 0 },
+        { 160, 224, 246, 1 },
+        { 90, 166, 58, 0 },
+        { 183, 131, 130, 1 }, },
+      { { 35, 63, 1, 1 },
+        { 41, 120, 195, 0 },
+        { 192, 126, 98, 0 },
+        { 97, 143, 74, 0 }, },
+      { { 35, 131, 80, 0 },
+        { 50, 52, 129, 0 },
+        { 5, 96, 226, 0 },
+        { 64, 150, 38, 0 }, },
+      { { 39, 100, 46, 1 },
+        { 73, 178, 150, 1 },
+        { 186, 19, 114, 0 },
+        { 180, 166, 201, 0 }, },
+      { { 39, 212, 176, 1 },
+        { 91, 176, 228, 0 },
+        { 134, 149, 242, 0 },
+        { 19, 134, 237, 0 }, },
+      { { 47, 186, 44, 1 },
+        { 170, 184, 214, 1 },
+        { 154, 46, 250, 0 },
+        { 181, 142, 170, 1 }, },
+      { { 43, 38, 186, 1 },
+        { 185, 178, 162, 1 },
+        { 174, 178, 106, 0 },
+        { 162, 166, 206, 1 }, },
+      { { 48, 11, 141, 0 },
+        { 36, 104, 49, 1 },
+        { 88, 232, 6, 0 },
+        { 198, 11, 18, 0 }, },
+      { { 52, 38, 146, 1 },
+        { 61, 34, 38, 0 },
+        { 164, 178, 22, 0 },
+        { 50, 34, 94, 0 }, },
+      { { 48, 130, 25, 0 },
+        { 54, 96, 0, 1 },
+        { 76, 32, 134, 0 },
+        { 128, 3, 54, 0 }, },
+      { { 48, 123, 44, 1 },
+        { 108, 168, 83, 1 },
+        { 154, 111, 6, 0 },
+        { 229, 10, 155, 0 }, },
+      { { 60, 184, 59, 1 },
+        { 158, 234, 70, 1 },
+        { 238, 14, 158, 0 },
+        { 177, 43, 188, 1 }, },
+      { { 60, 38, 15, 1 },
+        { 173, 98, 22, 1 },
+        { 248, 50, 30, 0 },
+        { 180, 35, 90, 1 }, },
+      { { 56, 233, 220, 0 },
+        { 214, 44, 51, 1 },
+        { 29, 203, 142, 0 },
+        { 230, 26, 53, 1 }, },
+      { { 60, 192, 247, 0 },
+        { 214, 230, 52, 0 },
+        { 119, 129, 158, 0 },
+        { 22, 51, 181, 1 }, },
+      { { 56, 247, 84, 1 },
+        { 255, 36, 83, 0 },
+        { 149, 119, 142, 0 },
+        { 101, 18, 127, 1 }, },
+      { { 49, 5, 180, 1 },
+        { 29, 176, 49, 0 },
+        { 150, 208, 70, 0 },
+        { 70, 6, 220, 0 }, },
+      { { 53, 184, 254, 1 },
+        { 30, 190, 118, 1 },
+        { 191, 142, 214, 0 },
+        { 183, 62, 188, 0 }, },
+      { { 53, 178, 211, 1 },
+        { 62, 118, 102, 0 },
+        { 229, 166, 214, 0 },
+        { 51, 55, 62, 0 }, },
+      { { 57, 155, 206, 1 },
+        { 174, 62, 113, 1 },
+        { 185, 236, 206, 0 },
+        { 199, 62, 58, 1 }, },
+      { { 57, 109, 46, 0 },
+        { 197, 186, 19, 1 },
+        { 58, 91, 78, 0 },
+        { 228, 46, 209, 1 }, },
+      { { 61, 224, 131, 1 },
+        { 206, 114, 38, 0 },
+        { 224, 131, 222, 0 },
+        { 50, 39, 57, 1 }, },
+      { { 57, 244, 208, 0 },
+        { 215, 52, 98, 0 },
+        { 5, 151, 206, 0 },
+        { 35, 22, 117, 1 }, },
+      { { 57, 255, 32, 0 },
+        { 231, 184, 67, 0 },
+        { 2, 127, 206, 0 },
+        { 97, 14, 243, 1 }, },
+      { { 57, 199, 136, 1 },
+        { 239, 48, 33, 1 },
+        { 136, 241, 206, 0 },
+        { 194, 6, 123, 1 }, },
+      { { 54, 15, 36, 0 },
+        { 37, 168, 149, 0 },
+        { 18, 120, 54, 0 },
+        { 84, 138, 210, 0 }, },
+      { { 50, 30, 213, 0 },
+        { 53, 108, 240, 0 },
+        { 85, 188, 38, 0 },
+        { 7, 155, 86, 0 }, },
+      { { 54, 191, 209, 1 },
+        { 63, 108, 231, 0 },
+        { 197, 254, 182, 0 },
+        { 115, 155, 126, 0 }, },
+      { { 54, 70, 235, 0 },
+        { 101, 230, 164, 1 },
+        { 107, 177, 54, 0 },
+        { 146, 179, 211, 0 }, },
+      { { 58, 45, 168, 0 },
+        { 133, 168, 163, 1 },
+        { 10, 218, 46, 0 },
+        { 226, 138, 208, 1 }, },
+      { { 58, 147, 187, 0 },
+        { 182, 226, 225, 1 },
+        { 110, 228, 174, 0 },
+        { 195, 163, 182, 1 }, },
+      { { 55, 149, 173, 0 },
+        { 7, 240, 245, 1 },
+        { 90, 212, 246, 0 },
+        { 215, 135, 240, 0 }, },
+      { { 55, 4, 147, 0 },
+        { 21, 114, 164, 0 },
+        { 100, 144, 118, 0 },
+        { 18, 167, 84, 0 }, },
+      { { 51, 160, 216, 1 },
+        { 30, 52, 162, 1 },
+        { 141, 130, 230, 0 },
+        { 162, 150, 60, 0 }, },
+      { { 55, 67, 167, 0 },
+        { 100, 242, 181, 0 },
+        { 114, 225, 118, 0 },
+        { 86, 167, 147, 0 }, },
+      { { 51, 250, 92, 0 },
+        { 118, 60, 210, 1 },
+        { 29, 47, 230, 0 },
+        { 165, 158, 55, 0 }, },
+      { { 63, 131, 110, 0 },
+        { 166, 182, 149, 1 },
+        { 59, 96, 254, 0 },
+        { 212, 182, 178, 1 }, },
+      { { 63, 107, 96, 0 },
+        { 228, 188, 135, 0 },
+        { 3, 107, 126, 0 },
+        { 112, 158, 147, 1 }, },
+      { { 64, 225, 205, 0 },
+        { 66, 69, 51, 1 },
+        { 89, 195, 129, 0 },
+        { 230, 81, 33, 0 }, },
+      { { 76, 144, 234, 0 },
+        { 130, 135, 100, 1 },
+        { 43, 132, 153, 0 },
+        { 147, 112, 160, 1 }, },
+      { { 72, 154, 105, 1 },
+        { 170, 205, 64, 1 },
+        { 203, 44, 137, 0 },
+        { 129, 89, 170, 1 }, },
+      { { 76, 190, 247, 0 },
+        { 179, 207, 118, 0 },
+        { 119, 190, 153, 0 },
+        { 55, 121, 230, 1 }, },
+      { { 72, 235, 138, 1 },
+        { 234, 11, 35, 1 },
+        { 168, 235, 137, 0 },
+        { 226, 104, 43, 1 }, },
+      { { 72, 211, 7, 1 },
+        { 234, 67, 81, 0 },
+        { 240, 101, 137, 0 },
+        { 69, 97, 43, 1 }, },
+      { { 76, 90, 152, 1 },
+        { 248, 9, 100, 1 },
+        { 140, 173, 25, 0 },
+        { 147, 72, 15, 1 }, },
+      { { 65, 36, 19, 1 },
+        { 25, 83, 2, 0 },
+        { 228, 18, 65, 0 },
+        { 32, 101, 76, 0 }, },
+      { { 77, 11, 248, 0 },
+        { 176, 157, 37, 1 },
+        { 15, 232, 89, 0 },
+        { 210, 92, 134, 1 }, },
+      { { 73, 91, 189, 1 },
+        { 248, 217, 113, 1 },
+        { 222, 237, 73, 0 },
+        { 199, 77, 143, 1 }, },
+      { { 70, 141, 101, 0 },
+        { 3, 205, 149, 0 },
+        { 83, 88, 177, 0 },
+        { 84, 217, 224, 0 }, },
+      { { 66, 181, 107, 1 },
+        { 11, 199, 195, 1 },
+        { 235, 86, 161, 0 },
+        { 225, 241, 232, 0 }, },
+      { { 70, 92, 131, 0 },
+        { 65, 75, 228, 0 },
+        { 96, 157, 49, 0 },
+        { 19, 233, 65, 0 }, },
+      { { 70, 244, 103, 0 },
+        { 67, 199, 214, 0 },
+        { 115, 23, 177, 0 },
+        { 53, 241, 225, 0 }, },
+      { { 70, 121, 187, 0 },
+        { 80, 203, 231, 1 },
+        { 110, 207, 49, 0 },
+        { 243, 233, 133, 0 }, },
+      { { 74, 163, 157, 1 },
+        { 186, 65, 179, 1 },
+        { 220, 226, 169, 0 },
+        { 230, 193, 46, 1 }, },
+      { { 78, 65, 78, 1 },
+        { 200, 7, 149, 1 },
+        { 185, 65, 57, 0 },
+        { 212, 240, 9, 1 }, },
+      { { 78, 75, 194, 0 },
+        { 224, 15, 165, 0 },
+        { 33, 233, 57, 0 },
+        { 82, 248, 3, 1 }, },
+      { { 67, 137, 211, 1 },
+        { 26, 95, 161, 0 },
+        { 229, 200, 225, 0 },
+        { 66, 253, 44, 0 }, },
+      { { 71, 170, 200, 1 },
+        { 42, 29, 166, 1 },
+        { 137, 170, 241, 0 },
+        { 178, 220, 42, 0 }, },
+      { { 67, 59, 19, 0 },
+        { 48, 91, 195, 0 },
+        { 100, 110, 97, 0 },
+        { 97, 237, 6, 0 }, },
+      { { 71, 74, 105, 1 },
+        { 104, 221, 132, 1 },
+        { 203, 41, 113, 0 },
+        { 144, 221, 139, 0 }, },
+      { { 79, 22, 235, 1 },
+        { 169, 215, 228, 1 },
+        { 235, 180, 121, 0 },
+        { 147, 245, 202, 1 }, },
+      { { 79, 69, 160, 0 },
+        { 193, 145, 165, 0 },
+        { 2, 209, 121, 0 },
+        { 82, 196, 193, 1 }, },
+      { { 80, 145, 108, 1 },
+        { 14, 133, 81, 1 },
+        { 155, 68, 133, 0 },
+        { 197, 80, 184, 0 }, },
+      { { 84, 16, 187, 0 },
+        { 20, 195, 100, 1 },
+        { 110, 132, 21, 0 },
+        { 147, 97, 148, 0 }, },
+      { { 80, 90, 77, 1 },
+        { 108, 77, 80, 1 },
+        { 217, 45, 5, 0 },
+        { 133, 89, 27, 0 }, },
+      { { 80, 114, 212, 0 },
+        { 116, 5, 114, 0 },
+        { 21, 167, 5, 0 },
+        { 39, 80, 23, 0 }, },
+      { { 84, 234, 241, 1 },
+        { 126, 205, 38, 0 },
+        { 199, 171, 149, 0 },
+        { 50, 89, 191, 0 }, },
+      { { 88, 9, 195, 1 },
+        { 140, 79, 33, 0 },
+        { 225, 200, 13, 0 },
+        { 66, 121, 24, 1 }, },
+      { { 92, 89, 121, 0 },
+        { 212, 205, 69, 1 },
+        { 79, 77, 29, 0 },
+        { 209, 89, 149, 1 }, },
+      { { 88, 107, 27, 0 },
+        { 244, 75, 3, 1 },
+        { 108, 107, 13, 0 },
+        { 224, 105, 23, 1 }, },
+      { { 81, 52, 246, 1 },
+        { 29, 151, 114, 0 },
+        { 183, 150, 69, 0 },
+        { 39, 116, 220, 0 }, },
+      { { 85, 169, 118, 1 },
+        { 30, 159, 23, 0 },
+        { 183, 74, 213, 0 },
+        { 116, 124, 188, 0 }, },
+      { { 85, 151, 183, 1 },
+        { 63, 211, 117, 0 },
+        { 246, 244, 213, 0 },
+        { 87, 101, 254, 0 }, },
+      { { 85, 72, 67, 1 },
+        { 76, 95, 4, 0 },
+        { 225, 9, 85, 0 },
+        { 16, 125, 25, 0 }, },
+      { { 81, 203, 28, 0 },
+        { 118, 25, 17, 1 },
+        { 28, 105, 197, 0 },
+        { 196, 76, 55, 0 }, },
+      { { 89, 103, 105, 1 },
+        { 237, 213, 3, 1 },
+        { 203, 115, 77, 0 },
+        { 224, 85, 219, 1 }, },
+      { { 89, 87, 155, 0 },
+        { 245, 83, 97, 1 },
+        { 108, 245, 77, 0 },
+        { 195, 101, 87, 1 }, },
+      { { 86, 160, 171, 1 },
+        { 14, 195, 166, 1 },
+        { 234, 130, 181, 0 },
+        { 178, 225, 184, 0 }, },
+      { { 82, 76, 88, 0 },
+        { 85, 13, 128, 1 },
+        { 13, 25, 37, 0 },
+        { 128, 216, 85, 0 }, },
+      { { 86, 87, 68, 1 },
+        { 109, 5, 213, 0 },
+        { 145, 117, 53, 0 },
+        { 85, 208, 91, 0 }, },
+      { { 94, 1, 56, 0 },
+        { 148, 129, 133, 1 },
+        { 14, 64, 61, 0 },
+        { 208, 192, 148, 1 }, },
+      { { 90, 1, 255, 0 },
+        { 148, 199, 177, 1 },
+        { 127, 192, 45, 0 },
+        { 198, 241, 148, 1 }, },
+      { { 90, 53, 19, 1 },
+        { 157, 67, 195, 0 },
+        { 228, 86, 45, 0 },
+        { 97, 225, 92, 1 }, },
+      { { 94, 29, 215, 1 },
+        { 157, 79, 245, 0 },
+        { 245, 220, 61, 0 },
+        { 87, 249, 92, 1 }, },
+      { { 94, 146, 70, 1 },
+        { 174, 7, 212, 0 },
+        { 177, 36, 189, 0 },
+        { 21, 240, 58, 1 }, },
+      { { 90, 108, 162, 0 },
+        { 197, 139, 162, 0 },
+        { 34, 155, 45, 0 },
+        { 34, 232, 209, 1 }, },
+      { { 87, 57, 5, 0 },
+        { 4, 89, 215, 0 },
+        { 80, 78, 117, 0 },
+        { 117, 205, 16, 0 }, },
+      { { 87, 185, 238, 0 },
+        { 6, 159, 247, 1 },
+        { 59, 206, 245, 0 },
+        { 247, 252, 176, 0 }, },
+      { { 83, 27, 44, 1 },
+        { 44, 153, 209, 1 },
+        { 154, 108, 101, 0 },
+        { 197, 204, 154, 0 }, },
+      { { 87, 134, 8, 0 },
+        { 39, 17, 132, 1 },
+        { 8, 48, 245, 0 },
+        { 144, 196, 114, 0 }, },
+      { { 87, 179, 31, 1 },
+        { 62, 83, 215, 1 },
+        { 252, 102, 245, 0 },
+        { 245, 229, 62, 0 }, },
+      { { 87, 175, 125, 0 },
+        { 55, 221, 151, 1 },
+        { 95, 122, 245, 0 },
+        { 244, 221, 246, 0 }, },
+      { { 83, 240, 235, 0 },
+        { 70, 215, 226, 1 },
+        { 107, 135, 229, 0 },
+        { 163, 245, 177, 0 }, },
+      { { 91, 30, 236, 0 },
+        { 165, 157, 240, 1 },
+        { 27, 188, 109, 0 },
+        { 135, 220, 210, 1 }, },
+      { { 95, 6, 166, 1 },
+        { 173, 147, 180, 0 },
+        { 178, 176, 125, 0 },
+        { 22, 228, 218, 1 }, },
+      { { 95, 46, 87, 1 },
+        { 189, 95, 150, 0 },
+        { 245, 58, 125, 0 },
+        { 52, 253, 94, 1 }, },
+      { { 91, 89, 192, 0 },
+        { 196, 29, 225, 0 },
+        { 1, 205, 109, 0 },
+        { 67, 220, 17, 1 }, },
+      { { 91, 221, 125, 1 },
+        { 223, 221, 209, 1 },
+        { 223, 93, 237, 0 },
+        { 197, 221, 253, 1 }, },
+      { { 91, 78, 47, 0 },
+        { 229, 219, 144, 1 },
+        { 122, 57, 109, 0 },
+        { 132, 237, 211, 1 }, },
+      { { 95, 111, 137, 1 },
+        { 237, 89, 167, 1 },
+        { 200, 251, 125, 0 },
+        { 242, 205, 91, 1 }, },
+      { { 91, 99, 218, 0 },
+        { 244, 23, 163, 1 },
+        { 45, 227, 109, 0 },
+        { 226, 244, 23, 1 }, },
+      { { 96, 32, 36, 1 },
+        { 8, 161, 18, 0 },
+        { 146, 2, 3, 0 },
+        { 36, 66, 136, 0 }, },
+      { { 100, 167, 30, 1 },
+        { 59, 35, 23, 1 },
+        { 188, 114, 147, 0 },
+        { 244, 98, 110, 0 }, },
+      { { 96, 84, 84, 1 },
+        { 89, 37, 80, 0 },
+        { 149, 21, 3, 0 },
+        { 5, 82, 77, 0 }, },
+      { { 104, 166, 103, 0 },
+        { 163, 231, 18, 0 },
+        { 115, 50, 139, 0 },
+        { 36, 115, 226, 1 }, },
+      { { 108, 235, 188, 1 },
+        { 250, 169, 55, 1 },
+        { 158, 235, 155, 0 },
+        { 246, 74, 175, 1 }, },
+      { { 105, 70, 205, 1 },
+        { 233, 117, 48, 1 },
+        { 217, 177, 75, 0 },
+        { 134, 87, 75, 1 }, },
+      { { 109, 243, 169, 1 },
+        { 234, 241, 103, 1 },
+        { 202, 231, 219, 0 },
+        { 243, 71, 171, 1 }, },
+      { { 109, 94, 31, 0 },
+        { 241, 123, 84, 1 },
+        { 124, 61, 91, 0 },
+        { 149, 111, 71, 1 }, },
+      { { 102, 32, 99, 0 },
+        { 0, 231, 134, 0 },
+        { 99, 2, 51, 0 },
+        { 48, 243, 128, 0 }, },
+      { { 102, 219, 83, 1 },
+        { 122, 111, 197, 0 },
+        { 229, 109, 179, 0 },
+        { 81, 251, 47, 0 }, },
+      { { 98, 215, 16, 1 },
+        { 123, 33, 193, 0 },
+        { 132, 117, 163, 0 },
+        { 65, 194, 111, 0 }, },
+      { { 106, 165, 84, 1 },
+        { 155, 37, 147, 0 },
+        { 149, 82, 171, 0 },
+        { 100, 210, 108, 1 }, },
+      { { 110, 46, 41, 1 },
+        { 169, 233, 134, 1 },
+        { 202, 58, 59, 0 },
+        { 176, 203, 202, 1 }, },
+      { { 103, 54, 146, 0 },
+        { 49, 51, 230, 0 },
+        { 36, 182, 115, 0 },
+        { 51, 230, 70, 0 }, },
+      { { 103, 196, 202, 0 },
+        { 67, 55, 164, 1 },
+        { 41, 145, 243, 0 },
+        { 146, 246, 97, 0 }, },
+      { { 99, 83, 34, 1 },
+        { 104, 179, 193, 0 },
+        { 162, 101, 99, 0 },
+        { 65, 230, 139, 0 }, },
+      { { 107, 59, 196, 1 },
+        { 168, 61, 243, 0 },
+        { 145, 238, 107, 0 },
+        { 103, 222, 10, 1 }, },
+      { { 111, 22, 80, 1 },
+        { 185, 53, 196, 0 },
+        { 133, 52, 123, 0 },
+        { 17, 214, 78, 1 }, },
+      { { 107, 88, 37, 1 },
+        { 200, 249, 208, 0 },
+        { 210, 13, 107, 0 },
+        { 5, 207, 137, 1 }, },
+      { { 111, 99, 213, 1 },
+        { 248, 117, 183, 0 },
+        { 213, 227, 123, 0 },
+        { 118, 215, 15, 1 }, },
+      { { 112, 192, 248, 1 },
+        { 94, 165, 32, 1 },
+        { 143, 129, 135, 0 },
+        { 130, 82, 189, 0 }, },
+      { { 116, 215, 208, 0 },
+        { 119, 37, 101, 0 },
+        { 5, 245, 151, 0 },
+        { 83, 82, 119, 0 }, },
+      { { 113, 43, 110, 1 },
+        { 44, 191, 19, 1 },
+        { 187, 106, 71, 0 },
+        { 228, 126, 154, 0 }, },
+      { { 113, 121, 27, 1 },
+        { 92, 123, 67, 1 },
+        { 236, 79, 71, 0 },
+        { 225, 111, 29, 0 }, },
+      { { 113, 66, 210, 0 },
+        { 116, 55, 32, 0 },
+        { 37, 161, 71, 0 },
+        { 2, 118, 23, 0 }, },
+      { { 113, 99, 253, 0 },
+        { 116, 245, 51, 1 },
+        { 95, 227, 71, 0 },
+        { 230, 87, 151, 0 }, },
+      { { 117, 254, 122, 1 },
+        { 127, 191, 70, 1 },
+        { 175, 63, 215, 0 },
+        { 177, 126, 255, 0 }, },
+      { { 125, 152, 140, 0 },
+        { 134, 57, 116, 1 },
+        { 24, 140, 223, 0 },
+        { 151, 78, 48, 1 }, },
+      { { 125, 185, 247, 0 },
+        { 150, 255, 119, 0 },
+        { 119, 206, 223, 0 },
+        { 119, 127, 180, 1 }, },
+      { { 125, 19, 147, 1 },
+        { 188, 115, 101, 0 },
+        { 228, 228, 95, 0 },
+        { 83, 103, 30, 1 }, },
+      { { 121, 71, 103, 0 },
+        { 229, 247, 17, 0 },
+        { 115, 113, 79, 0 },
+        { 68, 119, 211, 1 }, },
+      { { 125, 223, 195, 0 },
+        { 231, 127, 101, 0 },
+        { 97, 253, 223, 0 },
+        { 83, 127, 115, 1 }, },
+      { { 121, 239, 82, 1 },
+        { 255, 63, 3, 0 },
+        { 165, 123, 207, 0 },
+        { 96, 126, 127, 1 }, },
+      { { 114, 0, 182, 0 },
+        { 20, 163, 176, 0 },
+        { 54, 128, 39, 0 },
+        { 6, 226, 148, 0 }, },
+      { { 118, 68, 152, 1 },
+        { 93, 33, 164, 1 },
+        { 140, 145, 55, 0 },
+        { 146, 194, 93, 0 }, },
+      { { 118, 122, 66, 0 },
+        { 100, 47, 198, 0 },
+        { 33, 47, 55, 0 },
+        { 49, 250, 19, 0 }, },
+      { { 126, 11, 181, 1 },
+        { 188, 233, 181, 0 },
+        { 214, 232, 63, 0 },
+        { 86, 203, 158, 1 }, },
+      { { 115, 58, 225, 1 },
+        { 44, 253, 226, 0 },
+        { 195, 174, 103, 0 },
+        { 35, 223, 154, 0 }, },
+      { { 119, 139, 59, 1 },
+        { 62, 251, 133, 1 },
+        { 238, 104, 247, 0 },
+        { 208, 239, 190, 0 }, },
+      { { 119, 93, 234, 0 },
+        { 69, 191, 229, 1 },
+        { 43, 221, 119, 0 },
+        { 211, 254, 209, 0 }, },
+      { { 127, 76, 0, 1 },
+        { 205, 57, 132, 0 },
+        { 128, 25, 127, 0 },
+        { 16, 206, 89, 1 }, },
+      { { 123, 117, 224, 1 },
+        { 205, 181, 227, 0 },
+        { 131, 215, 111, 0 },
+        { 99, 214, 217, 1 }, },
+      { { 127, 226, 186, 0 },
+        { 246, 179, 166, 1 },
+        { 46, 163, 255, 0 },
+        { 178, 230, 183, 1 }, },
+      { { 128, 176, 67, 1 },
+        { 10, 70, 74, 0 },
+        { 225, 6, 128, 1 },
+        { 41, 49, 40, 0 }, },
+      { { 128, 188, 61, 0 },
+        { 19, 200, 90, 1 },
+        { 94, 30, 128, 1 },
+        { 173, 9, 228, 0 }, },
+      { { 128, 50, 88, 0 },
+        { 48, 4, 74, 1 },
+        { 13, 38, 0, 1 },
+        { 169, 16, 6, 0 }, },
+      { { 128, 92, 26, 1 },
+        { 89, 10, 72, 1 },
+        { 172, 29, 0, 1 },
+        { 137, 40, 77, 0 }, },
+      { { 132, 251, 36, 0 },
+        { 98, 136, 95, 0 },
+        { 18, 111, 144, 1 },
+        { 125, 8, 163, 0 }, },
+      { { 128, 127, 245, 1 },
+        { 121, 204, 123, 0 },
+        { 215, 255, 0, 1 },
+        { 111, 25, 207, 0 }, },
+      { { 136, 45, 197, 1 },
+        { 137, 76, 59, 0 },
+        { 209, 218, 8, 1 },
+        { 110, 25, 72, 1 }, },
+      { { 136, 153, 224, 1 },
+        { 138, 140, 105, 0 },
+        { 131, 204, 136, 1 },
+        { 75, 24, 168, 1 }, },
+      { { 136, 25, 149, 0 },
+        { 144, 72, 121, 0 },
+        { 84, 204, 8, 1 },
+        { 79, 9, 4, 1 }, },
+      { { 133, 29, 199, 1 },
+        { 9, 94, 125, 0 },
+        { 241, 220, 80, 1 },
+        { 95, 61, 72, 0 }, },
+      { { 129, 187, 135, 0 },
+        { 34, 90, 123, 0 },
+        { 112, 238, 192, 1 },
+        { 111, 45, 34, 0 }, },
+      { { 129, 225, 96, 1 },
+        { 74, 148, 11, 0 },
+        { 131, 67, 192, 1 },
+        { 104, 20, 169, 0 }, },
+      { { 133, 126, 33, 1 },
+        { 105, 216, 78, 0 },
+        { 194, 63, 80, 1 },
+        { 57, 13, 203, 0 }, },
+      { { 129, 242, 146, 0 },
+        { 114, 18, 106, 0 },
+        { 36, 167, 192, 1 },
+        { 43, 36, 39, 0 }, },
+      { { 137, 61, 108, 1 },
+        { 137, 156, 91, 1 },
+        { 155, 94, 72, 1 },
+        { 237, 28, 200, 1 }, },
+      { { 137, 100, 178, 1 },
+        { 217, 146, 42, 0 },
+        { 166, 147, 72, 1 },
+        { 42, 36, 205, 1 }, },
+      { { 141, 212, 30, 1 },
+        { 219, 18, 92, 1 },
+        { 188, 21, 216, 1 },
+        { 157, 36, 109, 1 }, },
+      { { 137, 94, 209, 1 },
+        { 249, 92, 104, 0 },
+        { 197, 189, 72, 1 },
+        { 11, 29, 79, 1 }, },
+      { { 138, 4, 172, 0 },
+        { 129, 128, 184, 1 },
+        { 26, 144, 40, 1 },
+        { 142, 128, 192, 1 }, },
+      { { 142, 200, 22, 0 },
+        { 210, 10, 156, 0 },
+        { 52, 9, 184, 1 },
+        { 28, 168, 37, 1 }, },
+      { { 142, 242, 252, 1 },
+        { 250, 132, 254, 1 },
+        { 159, 167, 184, 1 },
+        { 191, 144, 175, 1 }, },
+      { { 131, 11, 137, 0 },
+        { 32, 88, 169, 1 },
+        { 72, 232, 96, 1 },
+        { 202, 141, 2, 0 }, },
+      { { 135, 43, 109, 0 },
+        { 32, 220, 159, 1 },
+        { 91, 106, 112, 1 },
+        { 252, 157, 130, 0 }, },
+      { { 135, 69, 49, 0 },
+        { 81, 208, 141, 0 },
+        { 70, 81, 112, 1 },
+        { 88, 133, 197, 0 }, },
+      { { 131, 108, 120, 1 },
+        { 89, 156, 138, 1 },
+        { 143, 27, 96, 1 },
+        { 168, 156, 205, 0 }, },
+      { { 135, 238, 13, 0 },
+        { 99, 88, 158, 1 },
+        { 88, 59, 240, 1 },
+        { 188, 141, 99, 0 }, },
+      { { 139, 177, 43, 1 },
+        { 138, 210, 203, 1 },
+        { 234, 70, 232, 1 },
+        { 233, 165, 168, 1 }, },
+      { { 139, 145, 216, 0 },
+        { 146, 20, 233, 1 },
+        { 13, 196, 232, 1 },
+        { 203, 148, 36, 1 }, },
+      { { 139, 89, 102, 0 },
+        { 192, 158, 217, 0 },
+        { 51, 77, 104, 1 },
+        { 77, 188, 129, 1 }, },
+      { { 143, 229, 85, 0 },
+        { 211, 84, 159, 0 },
+        { 85, 83, 248, 1 },
+        { 124, 149, 101, 1 }, },
+      { { 143, 243, 101, 1 },
+        { 234, 212, 223, 0 },
+        { 211, 103, 248, 1 },
+        { 125, 149, 171, 1 }, },
+      { { 148, 26, 21, 0 },
+        { 52, 72, 92, 0 },
+        { 84, 44, 20, 1 },
+        { 29, 9, 22, 0 }, },
+      { { 144, 225, 167, 0 },
+        { 70, 194, 59, 0 },
+        { 114, 195, 132, 1 },
+        { 110, 33, 177, 0 }, },
+      { { 144, 71, 255, 0 },
+        { 117, 198, 57, 1 },
+        { 127, 241, 4, 1 },
+        { 206, 49, 215, 0 }, },
+      { { 156, 188, 213, 0 },
+        { 151, 76, 126, 0 },
+        { 85, 158, 156, 1 },
+        { 63, 25, 116, 1 }, },
+      { { 152, 146, 244, 0 },
+        { 182, 132, 120, 0 },
+        { 23, 164, 140, 1 },
+        { 15, 16, 182, 1 }, },
+      { { 156, 83, 168, 1 },
+        { 236, 128, 109, 1 },
+        { 138, 229, 28, 1 },
+        { 219, 0, 155, 1 }, },
+      { { 152, 195, 107, 0 },
+        { 230, 198, 9, 1 },
+        { 107, 97, 140, 1 },
+        { 200, 49, 179, 1 }, },
+      { { 152, 114, 63, 1 },
+        { 252, 194, 90, 1 },
+        { 254, 39, 12, 1 },
+        { 173, 33, 159, 1 }, },
+      { { 145, 19, 213, 0 },
+        { 52, 84, 121, 0 },
+        { 85, 228, 68, 1 },
+        { 79, 21, 22, 0 }, },
+      { { 149, 191, 251, 0 },
+        { 55, 222, 111, 1 },
+        { 111, 254, 212, 1 },
+        { 251, 61, 246, 0 }, },
+      { { 149, 69, 22, 1 },
+        { 93, 18, 29, 0 },
+        { 180, 81, 84, 1 },
+        { 92, 36, 93, 0 }, },
+      { { 149, 238, 216, 0 },
+        { 119, 28, 46, 1 },
+        { 13, 187, 212, 1 },
+        { 186, 28, 119, 0 }, },
+      { { 157, 214, 4, 0 },
+        { 231, 16, 92, 0 },
+        { 16, 53, 220, 1 },
+        { 29, 4, 115, 1 }, },
+      { { 157, 98, 112, 0 },
+        { 244, 148, 14, 0 },
+        { 7, 35, 92, 1 },
+        { 56, 20, 151, 1 }, },
+      { { 150, 175, 206, 0 },
+        { 39, 14, 191, 1 },
+        { 57, 250, 180, 1 },
+        { 254, 184, 114, 0 }, },
+      { { 150, 186, 24, 1 },
+        { 62, 8, 206, 1 },
+        { 140, 46, 180, 1 },
+        { 185, 136, 62, 0 }, },
+      { { 150, 217, 61, 1 },
+        { 94, 200, 221, 1 },
+        { 222, 77, 180, 1 },
+        { 221, 137, 189, 0 }, },
+      { { 158, 33, 46, 0 },
+        { 132, 130, 159, 1 },
+        { 58, 66, 60, 1 },
+        { 252, 160, 144, 1 }, },
+      { { 154, 185, 132, 0 },
+        { 134, 8, 251, 0 },
+        { 16, 206, 172, 1 },
+        { 111, 136, 48, 1 }, },
+      { { 154, 129, 79, 1 },
+        { 142, 70, 153, 1 },
+        { 249, 64, 172, 1 },
+        { 204, 177, 56, 1 }, },
+      { { 154, 59, 54, 1 },
+        { 188, 138, 219, 0 },
+        { 182, 110, 44, 1 },
+        { 109, 168, 158, 1 }, },
+      { { 158, 195, 37, 0 },
+        { 230, 192, 157, 0 },
+        { 82, 97, 188, 1 },
+        { 92, 129, 179, 1 }, },
+      { { 147, 149, 40, 0 },
+        { 7, 144, 201, 1 },
+        { 10, 84, 228, 1 },
+        { 201, 132, 240, 0 }, },
+      { { 151, 50, 46, 1 },
+        { 44, 146, 222, 1 },
+        { 186, 38, 116, 1 },
+        { 189, 164, 154, 0 }, },
+      { { 151, 211, 152, 0 },
+        { 118, 16, 237, 1 },
+        { 12, 229, 244, 1 },
+        { 219, 132, 55, 0 }, },
+      { { 155, 157, 163, 1 },
+        { 143, 218, 233, 0 },
+        { 226, 220, 236, 1 },
+        { 75, 173, 248, 1 }, },
+      { { 159, 28, 240, 0 },
+        { 149, 156, 236, 0 },
+        { 7, 156, 124, 1 },
+        { 27, 156, 212, 1 }, },
+      { { 159, 51, 82, 1 },
+        { 188, 22, 207, 0 },
+        { 165, 102, 124, 1 },
+        { 121, 180, 30, 1 }, },
+      { { 155, 250, 202, 0 },
+        { 230, 30, 234, 1 },
+        { 41, 175, 236, 1 },
+        { 171, 188, 51, 1 }, },
+      { { 159, 250, 148, 0 },
+        { 246, 24, 254, 0 },
+        { 20, 175, 252, 1 },
+        { 63, 140, 55, 1 }, },
+      { { 160, 60, 203, 1 },
+        { 9, 110, 106, 1 },
+        { 233, 158, 2, 1 },
+        { 171, 59, 72, 0 }, },
+      { { 164, 168, 105, 0 },
+        { 2, 236, 14, 1 },
+        { 75, 10, 146, 1 },
+        { 184, 27, 160, 0 }, },
+      { { 160, 179, 245, 0 },
+        { 50, 228, 123, 0 },
+        { 87, 230, 130, 1 },
+        { 111, 19, 166, 0 }, },
+      { { 164, 106, 191, 0 },
+        { 112, 234, 62, 1 },
+        { 126, 171, 18, 1 },
+        { 190, 43, 135, 0 }, },
+      { { 160, 91, 120, 1 },
+        { 120, 172, 73, 1 },
+        { 143, 109, 2, 1 },
+        { 201, 26, 143, 0 }, },
+      { { 168, 104, 152, 1 },
+        { 216, 40, 42, 1 },
+        { 140, 139, 10, 1 },
+        { 170, 10, 13, 1 }, },
+      { { 172, 205, 54, 1 },
+        { 219, 170, 29, 0 },
+        { 182, 89, 154, 1 },
+        { 92, 42, 237, 1 }, },
+      { { 172, 220, 121, 1 },
+        { 219, 236, 76, 1 },
+        { 207, 29, 154, 1 },
+        { 153, 27, 237, 1 }, },
+      { { 161, 73, 35, 0 },
+        { 64, 250, 9, 0 },
+        { 98, 73, 66, 1 },
+        { 72, 47, 129, 0 }, },
+      { { 161, 67, 217, 0 },
+        { 112, 116, 41, 1 },
+        { 77, 225, 66, 1 },
+        { 202, 23, 7, 0 }, },
+      { { 173, 176, 209, 0 },
+        { 146, 116, 110, 0 },
+        { 69, 134, 218, 1 },
+        { 59, 23, 36, 1 }, },
+      { { 169, 155, 28, 1 },
+        { 186, 56, 89, 1 },
+        { 156, 108, 202, 1 },
+        { 205, 14, 46, 1 }, },
+      { { 169, 138, 215, 1 },
+        { 186, 126, 56, 0 },
+        { 245, 168, 202, 1 },
+        { 14, 63, 46, 1 }, },
+      { { 173, 84, 106, 1 },
+        { 201, 182, 76, 1 },
+        { 171, 21, 90, 1 },
+        { 153, 54, 201, 1 }, },
+      { { 173, 235, 81, 1 },
+        { 250, 124, 15, 0 },
+        { 197, 107, 218, 1 },
+        { 120, 31, 47, 1 }, },
+      { { 166, 29, 142, 0 },
+        { 1, 42, 253, 1 },
+        { 56, 220, 50, 1 },
+        { 223, 170, 64, 0 }, },
+      { { 166, 92, 102, 1 },
+        { 73, 174, 220, 0 },
+        { 179, 29, 50, 1 },
+        { 29, 186, 201, 0 }, },
+      { { 174, 188, 36, 0 },
+        { 131, 168, 222, 0 },
+        { 18, 30, 186, 1 },
+        { 61, 138, 224, 1 }, },
+      { { 170, 171, 48, 0 },
+        { 178, 168, 139, 0 },
+        { 6, 106, 170, 1 },
+        { 104, 138, 166, 1 }, },
+      { { 174, 204, 216, 0 },
+        { 211, 44, 172, 1 },
+        { 13, 153, 186, 1 },
+        { 154, 154, 101, 1 }, },
+      { { 170, 237, 187, 0 },
+        { 211, 234, 171, 1 },
+        { 110, 219, 170, 1 },
+        { 234, 171, 229, 1 }, },
+      { { 174, 227, 205, 1 },
+        { 234, 100, 191, 1 },
+        { 217, 227, 186, 1 },
+        { 254, 147, 43, 1 }, },
+      { { 167, 54, 8, 1 },
+        { 41, 48, 206, 1 },
+        { 136, 54, 114, 1 },
+        { 185, 134, 74, 0 }, },
+      { { 163, 236, 229, 0 },
+        { 67, 252, 186, 0 },
+        { 83, 155, 226, 1 },
+        { 46, 159, 225, 0 }, },
+      { { 163, 193, 155, 1 },
+        { 90, 114, 169, 1 },
+        { 236, 193, 226, 1 },
+        { 202, 167, 45, 0 }, },
+      { { 167, 250, 58, 0 },
+        { 114, 186, 206, 1 },
+        { 46, 47, 242, 1 },
+        { 185, 174, 167, 0 }, },
+      { { 175, 165, 105, 1 },
+        { 139, 244, 143, 1 },
+        { 203, 82, 250, 1 },
+        { 248, 151, 232, 1 }, },
+      { { 175, 200, 189, 1 },
+        { 218, 248, 188, 1 },
+        { 222, 137, 250, 1 },
+        { 158, 143, 173, 1 }, },
+      { { 175, 239, 164, 0 },
+        { 227, 184, 191, 0 },
+        { 18, 251, 250, 1 },
+        { 126, 142, 227, 1 }, },
+      { { 171, 103, 246, 0 },
+        { 241, 182, 187, 0 },
+        { 55, 243, 106, 1 },
+        { 110, 182, 199, 1 }, },
+      { { 180, 28, 82, 0 },
+        { 21, 46, 76, 0 },
+        { 37, 28, 22, 1 },
+        { 25, 58, 84, 0 }, },
+      { { 180, 63, 68, 1 },
+        { 45, 44, 95, 0 },
+        { 145, 126, 22, 1 },
+        { 125, 26, 90, 0 }, },
+      { { 180, 240, 202, 0 },
+        { 70, 38, 110, 1 },
+        { 41, 135, 150, 1 },
+        { 187, 50, 49, 0 }, },
+      { { 184, 24, 45, 0 },
+        { 132, 232, 88, 1 },
+        { 90, 12, 14, 1 },
+        { 141, 11, 144, 1 }, },
+      { { 188, 191, 136, 1 },
+        { 175, 40, 111, 1 },
+        { 136, 254, 158, 1 },
+        { 251, 10, 122, 1 }, },
+      { { 184, 142, 4, 1 },
+        { 175, 40, 24, 0 },
+        { 144, 56, 142, 1 },
+        { 12, 10, 122, 1 }, },
+      { { 188, 120, 40, 1 },
+        { 204, 168, 78, 1 },
+        { 138, 15, 30, 1 },
+        { 185, 10, 153, 1 }, },
+      { { 184, 200, 67, 1 },
+        { 206, 110, 8, 0 },
+        { 225, 9, 142, 1 },
+        { 8, 59, 57, 1 }, },
+      { { 188, 243, 60, 1 },
+        { 254, 160, 95, 1 },
+        { 158, 103, 158, 1 },
+        { 253, 2, 191, 1 }, },
+      { { 181, 19, 12, 0 },
+        { 36, 48, 93, 1 },
+        { 24, 100, 86, 1 },
+        { 221, 6, 18, 0 }, },
+      { { 177, 63, 106, 0 },
+        { 37, 190, 75, 1 },
+        { 43, 126, 70, 1 },
+        { 233, 62, 210, 0 }, },
+      { { 177, 101, 123, 1 },
+        { 93, 246, 11, 1 },
+        { 239, 83, 70, 1 },
+        { 232, 55, 221, 0 }, },
+      { { 177, 203, 237, 0 },
+        { 102, 252, 57, 1 },
+        { 91, 233, 198, 1 },
+        { 206, 31, 179, 0 }, },
+      { { 177, 194, 103, 1 },
+        { 110, 246, 24, 0 },
+        { 243, 33, 198, 1 },
+        { 12, 55, 187, 0 }, },
+      { { 177, 90, 242, 1 },
+        { 124, 190, 104, 0 },
+        { 167, 173, 70, 1 },
+        { 11, 62, 159, 0 }, },
+      { { 181, 238, 31, 1 },
+        { 127, 122, 30, 1 },
+        { 252, 59, 214, 1 },
+        { 188, 47, 127, 0 }, },
+      { { 185, 144, 112, 1 },
+        { 158, 180, 72, 0 },
+        { 135, 4, 206, 1 },
+        { 9, 22, 188, 1 }, },
+      { { 185, 163, 64, 1 },
+        { 174, 52, 11, 0 },
+        { 129, 98, 206, 1 },
+        { 104, 22, 58, 1 }, },
+      { { 185, 120, 90, 0 },
+        { 212, 62, 74, 1 },
+        { 45, 15, 78, 1 },
+        { 169, 62, 21, 1 }, },
+      { { 185, 247, 203, 0 },
+        { 231, 118, 107, 1 },
+        { 105, 247, 206, 1 },
+        { 235, 55, 115, 1 }, },
+      { { 182, 5, 1, 1 },
+        { 13, 96, 141, 0 },
+        { 192, 80, 54, 1 },
+        { 88, 131, 88, 0 }, },
+      { { 178, 255, 194, 0 },
+        { 103, 46, 235, 0 },
+        { 33, 255, 166, 1 },
+        { 107, 186, 115, 0 }, },
+      { { 178, 123, 21, 0 },
+        { 116, 104, 219, 0 },
+        { 84, 111, 38, 1 },
+        { 109, 139, 23, 0 }, },
+      { { 178, 110, 90, 1 },
+        { 125, 46, 138, 1 },
+        { 173, 59, 38, 1 },
+        { 168, 186, 95, 0 }, },
+      { { 190, 181, 243, 1 },
+        { 159, 230, 239, 0 },
+        { 231, 214, 190, 1 },
+        { 123, 179, 252, 1 }, },
+      { { 186, 167, 161, 0 },
+        { 167, 224, 171, 0 },
+        { 66, 242, 174, 1 },
+        { 106, 131, 242, 1 }, },
+      { { 186, 114, 10, 1 },
+        { 236, 34, 202, 1 },
+        { 168, 39, 46, 1 },
+        { 169, 162, 27, 1 }, },
+      { { 179, 48, 64, 0 },
+        { 4, 52, 202, 0 },
+        { 1, 6, 102, 1 },
+        { 41, 150, 16, 0 }, },
+      { { 183, 181, 52, 1 },
+        { 31, 176, 223, 0 },
+        { 150, 86, 246, 1 },
+        { 125, 134, 252, 0 }, },
+      { { 183, 105, 76, 0 },
+        { 68, 60, 159, 1 },
+        { 25, 75, 118, 1 },
+        { 252, 158, 17, 0 }, },
+      { { 183, 197, 193, 0 },
+        { 71, 116, 173, 0 },
+        { 65, 209, 246, 1 },
+        { 90, 151, 113, 0 }, },
+      { { 179, 87, 222, 0 },
+        { 117, 54, 249, 1 },
+        { 61, 245, 102, 1 },
+        { 207, 182, 87, 0 }, },
+      { { 187, 84, 251, 0 },
+        { 213, 246, 232, 1 },
+        { 111, 149, 110, 1 },
+        { 139, 183, 213, 1 }, },
+      { { 187, 202, 108, 1 },
+        { 238, 188, 152, 1 },
+        { 155, 41, 238, 1 },
+        { 140, 158, 187, 1 }, },
+      { { 187, 251, 225, 1 },
+        { 238, 252, 235, 0 },
+        { 195, 239, 238, 1 },
+        { 107, 159, 187, 1 }, },
+      { { 191, 246, 134, 1 },
+        { 239, 50, 254, 0 },
+        { 176, 183, 254, 1 },
+        { 63, 166, 123, 1 }, },
+      { { 196, 45, 124, 0 },
+        { 17, 141, 31, 1 },
+        { 31, 90, 17, 1 },
+        { 252, 88, 196, 0 }, },
+      { { 200, 28, 52, 0 },
+        { 145, 137, 88, 0 },
+        { 22, 28, 9, 1 },
+        { 13, 72, 196, 1 }, },
+      { { 204, 67, 229, 1 },
+        { 232, 197, 61, 0 },
+        { 211, 225, 25, 1 },
+        { 94, 81, 139, 1 }, },
+      { { 197, 53, 174, 1 },
+        { 9, 147, 127, 1 },
+        { 186, 214, 81, 1 },
+        { 255, 100, 200, 0 }, },
+      { { 193, 146, 192, 0 },
+        { 34, 21, 104, 0 },
+        { 1, 164, 193, 1 },
+        { 11, 84, 34, 0 }, },
+      { { 197, 35, 247, 0 },
+        { 48, 215, 63, 0 },
+        { 119, 226, 81, 1 },
+        { 126, 117, 134, 0 }, },
+      { { 193, 159, 254, 0 },
+        { 51, 159, 121, 1 },
+        { 63, 252, 193, 1 },
+        { 207, 124, 230, 0 }, },
+      { { 193, 84, 97, 0 },
+        { 65, 213, 72, 0 },
+        { 67, 21, 65, 1 },
+        { 9, 85, 193, 0 }, },
+      { { 193, 87, 130, 0 },
+        { 97, 19, 105, 0 },
+        { 32, 245, 65, 1 },
+        { 75, 100, 67, 0 }, },
+      { { 193, 199, 55, 1 },
+        { 123, 211, 25, 0 },
+        { 246, 113, 193, 1 },
+        { 76, 101, 239, 0 }, },
+      { { 201, 140, 239, 1 },
+        { 139, 223, 56, 1 },
+        { 251, 152, 201, 1 },
+        { 142, 125, 232, 1 }, },
+      { { 205, 240, 111, 0 },
+        { 194, 215, 94, 1 },
+        { 123, 7, 217, 1 },
+        { 189, 117, 161, 1 }, },
+      { { 201, 95, 103, 1 },
+        { 233, 223, 89, 0 },
+        { 243, 125, 73, 1 },
+        { 77, 125, 203, 1 }, },
+      { { 201, 119, 241, 0 },
+        { 241, 213, 107, 0 },
+        { 71, 247, 73, 1 },
+        { 107, 85, 199, 1 }, },
+      { { 205, 226, 149, 1 },
+        { 250, 81, 62, 0 },
+        { 212, 163, 217, 1 },
+        { 62, 69, 47, 1 }, },
+      { { 198, 191, 7, 1 },
+        { 43, 75, 223, 0 },
+        { 240, 126, 177, 1 },
+        { 125, 233, 106, 0 }, },
+      { { 198, 191, 184, 0 },
+        { 51, 137, 239, 1 },
+        { 14, 254, 177, 1 },
+        { 251, 200, 230, 0 }, },
+      { { 198, 219, 201, 1 },
+        { 106, 77, 237, 1 },
+        { 201, 237, 177, 1 },
+        { 219, 217, 43, 0 }, },
+      { { 202, 49, 136, 0 },
+        { 128, 1, 235, 1 },
+        { 8, 198, 41, 1 },
+        { 235, 192, 0, 1 }, },
+      { { 206, 222, 45, 1 },
+        { 235, 201, 220, 1 },
+        { 218, 61, 185, 1 },
+        { 157, 201, 235, 1 }, },
+      { { 199, 120, 44, 1 },
+        { 72, 153, 222, 1 },
+        { 154, 15, 113, 1 },
+        { 189, 204, 137, 0 }, },
+      { { 203, 171, 75, 1 },
+        { 170, 95, 139, 1 },
+        { 233, 106, 233, 1 },
+        { 232, 253, 42, 1 }, },
+      { { 207, 67, 191, 0 },
+        { 240, 211, 189, 1 },
+        { 126, 225, 121, 1 },
+        { 222, 229, 135, 1 }, },
+      { { 208, 174, 86, 1 },
+        { 63, 15, 26, 0 },
+        { 181, 58, 133, 1 },
+        { 44, 120, 126, 0 }, },
+      { { 208, 115, 51, 0 },
+        { 116, 195, 75, 0 },
+        { 102, 103, 5, 1 },
+        { 105, 97, 151, 0 }, },
+      { { 216, 20, 152, 0 },
+        { 149, 1, 104, 1 },
+        { 12, 148, 13, 1 },
+        { 139, 64, 84, 1 }, },
+      { { 220, 96, 159, 1 },
+        { 220, 67, 62, 1 },
+        { 252, 131, 29, 1 },
+        { 190, 97, 29, 1 }, },
+      { { 213, 117, 88, 0 },
+        { 85, 21, 79, 1 },
+        { 13, 87, 85, 1 },
+        { 249, 84, 85, 0 }, },
+      { { 209, 224, 215, 0 },
+        { 86, 87, 58, 0 },
+        { 117, 131, 197, 1 },
+        { 46, 117, 53, 0 }, },
+      { { 213, 251, 177, 0 },
+        { 118, 217, 111, 0 },
+        { 70, 239, 213, 1 },
+        { 123, 77, 183, 0 }, },
+      { { 213, 218, 116, 1 },
+        { 126, 157, 92, 0 },
+        { 151, 45, 213, 1 },
+        { 29, 92, 191, 0 }, },
+      { { 221, 60, 116, 1 },
+        { 157, 157, 94, 0 },
+        { 151, 30, 93, 1 },
+        { 61, 92, 220, 1 }, },
+      { { 221, 151, 109, 0 },
+        { 167, 213, 93, 1 },
+        { 91, 116, 221, 1 },
+        { 221, 85, 242, 1 }, },
+      { { 217, 27, 49, 0 },
+        { 180, 217, 73, 0 },
+        { 70, 108, 77, 1 },
+        { 73, 77, 150, 1 }, },
+      { { 217, 98, 166, 0 },
+        { 228, 147, 58, 0 },
+        { 50, 163, 77, 1 },
+        { 46, 100, 147, 1 }, },
+      { { 210, 171, 124, 1 },
+        { 62, 141, 155, 1 },
+        { 159, 106, 165, 1 },
+        { 236, 216, 190, 0 }, },
+      { { 210, 197, 236, 0 },
+        { 71, 133, 185, 1 },
+        { 27, 209, 165, 1 },
+        { 206, 208, 241, 0 }, },
+      { { 210, 202, 106, 0 },
+        { 102, 143, 136, 1 },
+        { 43, 41, 165, 1 },
+        { 136, 248, 179, 0 }, },
+      { { 210, 107, 214, 0 },
+        { 116, 15, 187, 0 },
+        { 53, 235, 37, 1 },
+        { 110, 248, 23, 0 }, },
+      { { 222, 155, 52, 0 },
+        { 182, 137, 221, 0 },
+        { 22, 108, 189, 1 },
+        { 93, 200, 182, 1 }, },
+      { { 222, 146, 158, 0 },
+        { 182, 3, 252, 1 },
+        { 60, 164, 189, 1 },
+        { 159, 224, 54, 1 }, },
+      { { 218, 96, 216, 1 },
+        { 220, 5, 170, 1 },
+        { 141, 131, 45, 1 },
+        { 170, 208, 29, 1 }, },
+      { { 215, 57, 178, 1 },
+        { 28, 155, 239, 0 },
+        { 166, 206, 117, 1 },
+        { 123, 236, 156, 0 }, },
+      { { 215, 95, 38, 0 },
+        { 101, 155, 221, 0 },
+        { 50, 125, 117, 1 },
+        { 93, 236, 211, 0 }, },
+      { { 223, 1, 65, 1 },
+        { 140, 85, 141, 0 },
+        { 193, 64, 125, 1 },
+        { 88, 213, 24, 1 }, },
+      { { 223, 121, 15, 1 },
+        { 204, 91, 223, 1 },
+        { 248, 79, 125, 1 },
+        { 253, 237, 25, 1 }, },
+      { { 219, 247, 116, 0 },
+        { 247, 149, 219, 0 },
+        { 23, 119, 237, 1 },
+        { 109, 212, 247, 1 }, },
+      { { 224, 67, 79, 1 },
+        { 104, 103, 25, 1 },
+        { 249, 97, 3, 1 },
+        { 204, 115, 11, 0 }, },
+      { { 224, 198, 227, 0 },
+        { 99, 231, 40, 0 },
+        { 99, 177, 131, 1 },
+        { 10, 115, 227, 0 }, },
+      { { 236, 56, 189, 1 },
+        { 152, 233, 126, 1 },
+        { 222, 142, 27, 1 },
+        { 191, 75, 140, 1 }, },
+      { { 236, 81, 253, 0 },
+        { 208, 229, 125, 1 },
+        { 95, 197, 27, 1 },
+        { 223, 83, 133, 1 }, },
+      { { 229, 141, 36, 0 },
+        { 3, 185, 29, 0 },
+        { 18, 88, 211, 1 },
+        { 92, 78, 224, 0 }, },
+      { { 229, 5, 121, 1 },
+        { 25, 245, 13, 1 },
+        { 207, 80, 83, 1 },
+        { 216, 87, 204, 0 }, },
+      { { 225, 78, 248, 0 },
+        { 113, 189, 40, 1 },
+        { 15, 185, 67, 1 },
+        { 138, 94, 199, 0 }, },
+      { { 229, 87, 220, 1 },
+        { 121, 53, 125, 1 },
+        { 157, 245, 83, 1 },
+        { 223, 86, 79, 0 }, },
+      { { 225, 247, 242, 1 },
+        { 123, 183, 107, 0 },
+        { 167, 247, 195, 1 },
+        { 107, 118, 239, 0 }, },
+      { { 226, 133, 77, 0 },
+        { 3, 101, 153, 1 },
+        { 89, 80, 163, 1 },
+        { 204, 211, 96, 0 }, },
+      { { 226, 24, 26, 0 },
+        { 16, 43, 200, 1 },
+        { 44, 12, 35, 1 },
+        { 137, 234, 4, 0 }, },
+      { { 226, 43, 203, 0 },
+        { 32, 111, 171, 1 },
+        { 105, 234, 35, 1 },
+        { 234, 251, 2, 0 }, },
+      { { 230, 236, 2, 0 },
+        { 67, 43, 142, 0 },
+        { 32, 27, 179, 1 },
+        { 56, 234, 97, 0 }, },
+      { { 230, 98, 129, 0 },
+        { 96, 97, 174, 0 },
+        { 64, 163, 51, 1 },
+        { 58, 195, 3, 0 }, },
+      { { 234, 38, 64, 0 },
+        { 161, 37, 138, 0 },
+        { 1, 50, 43, 1 },
+        { 40, 210, 66, 1 }, },
+      { { 234, 224, 196, 0 },
+        { 194, 37, 186, 0 },
+        { 17, 131, 171, 1 },
+        { 46, 210, 33, 1 }, },
+      { { 234, 114, 148, 1 },
+        { 248, 33, 250, 0 },
+        { 148, 167, 43, 1 },
+        { 47, 194, 15, 1 }, },
+      { { 227, 17, 63, 1 },
+        { 24, 243, 217, 1 },
+        { 254, 68, 99, 1 },
+        { 205, 231, 140, 0 }, },
+      { { 231, 11, 230, 1 },
+        { 40, 191, 189, 0 },
+        { 179, 232, 115, 1 },
+        { 94, 254, 138, 0 }, },
+      { { 227, 100, 241, 1 },
+        { 89, 245, 170, 0 },
+        { 199, 147, 99, 1 },
+        { 42, 215, 205, 0 }, },
+      { { 231, 250, 226, 1 },
+        { 106, 191, 238, 0 },
+        { 163, 175, 243, 1 },
+        { 59, 254, 171, 0 }, },
+      { { 227, 219, 243, 0 },
+        { 114, 255, 233, 0 },
+        { 103, 237, 227, 1 },
+        { 75, 255, 167, 0 }, },
+      { { 239, 135, 98, 0 },
+        { 163, 183, 141, 0 },
+        { 35, 112, 251, 1 },
+        { 88, 246, 226, 1 }, },
+      { { 239, 93, 112, 0 },
+        { 209, 189, 205, 0 },
+        { 7, 93, 123, 1 },
+        { 89, 222, 197, 1 }, },
+      { { 235, 102, 14, 0 },
+        { 225, 51, 154, 1 },
+        { 56, 51, 107, 1 },
+        { 172, 230, 67, 1 }, },
+      { { 239, 74, 60, 0 },
+        { 240, 185, 156, 1 },
+        { 30, 41, 123, 1 },
+        { 156, 206, 135, 1 }, },
+      { { 240, 178, 33, 1 },
+        { 46, 225, 74, 0 },
+        { 194, 38, 135, 1 },
+        { 41, 67, 186, 0 }, },
+      { { 240, 175, 79, 0 },
+        { 39, 111, 27, 1 },
+        { 121, 122, 135, 1 },
+        { 236, 123, 114, 0 }, },
+      { { 244, 159, 60, 1 },
+        { 63, 169, 93, 1 },
+        { 158, 124, 151, 1 },
+        { 221, 74, 254, 0 }, },
+      { { 240, 245, 4, 0 },
+        { 71, 33, 91, 0 },
+        { 16, 87, 135, 1 },
+        { 109, 66, 113, 0 }, },
+      { { 240, 242, 120, 0 },
+        { 118, 165, 74, 1 },
+        { 15, 39, 135, 1 },
+        { 169, 82, 183, 0 }, },
+      { { 248, 52, 99, 0 },
+        { 133, 231, 74, 0 },
+        { 99, 22, 15, 1 },
+        { 41, 115, 208, 1 }, },
+      { { 252, 219, 143, 0 },
+        { 230, 107, 125, 1 },
+        { 120, 237, 159, 1 },
+        { 223, 107, 51, 1 }, },
+      { { 252, 254, 77, 1 },
+        { 239, 109, 94, 1 },
+        { 217, 63, 159, 1 },
+        { 189, 91, 123, 1 }, },
+      { { 253, 176, 69, 1 },
+        { 142, 117, 94, 0 },
+        { 209, 6, 223, 1 },
+        { 61, 87, 56, 1 }, },
+      { { 253, 51, 235, 0 },
+        { 164, 247, 111, 1 },
+        { 107, 230, 95, 1 },
+        { 251, 119, 146, 1 }, },
+      { { 249, 196, 217, 1 },
+        { 223, 117, 40, 1 },
+        { 205, 145, 207, 1 },
+        { 138, 87, 125, 1 }, },
+      { { 242, 35, 145, 1 },
+        { 60, 97, 171, 0 },
+        { 196, 226, 39, 1 },
+        { 106, 195, 30, 0 }, },
+      { { 246, 210, 251, 1 },
+        { 126, 231, 236, 1 },
+        { 239, 165, 183, 1 },
+        { 155, 243, 191, 0 }, },
+      { { 254, 239, 211, 1 },
+        { 255, 111, 175, 0 },
+        { 229, 251, 191, 1 },
+        { 122, 251, 127, 1 }, },
+      { { 243, 176, 58, 1 },
+        { 30, 179, 202, 1 },
+        { 174, 6, 231, 1 },
+        { 169, 230, 188, 0 }, },
+      { { 247, 138, 77, 1 },
+        { 46, 125, 156, 1 },
+        { 217, 40, 247, 1 },
+        { 156, 223, 58, 0 }, },
+      { { 243, 143, 157, 1 },
+        { 63, 121, 185, 1 },
+        { 220, 248, 231, 1 },
+        { 206, 207, 126, 0 }, },
+      { { 247, 242, 39, 0 },
+        { 102, 243, 222, 0 },
+        { 114, 39, 247, 1 },
+        { 61, 231, 179, 0 }, },
+      { { 255, 189, 133, 1 },
+        { 143, 121, 255, 0 },
+        { 208, 222, 255, 1 },
+        { 127, 207, 120, 1 }, },
+      { { 255, 38, 197, 1 },
+        { 173, 117, 190, 0 },
+        { 209, 178, 127, 1 },
+        { 62, 215, 90, 1 }, },
+      { { 251, 224, 97, 0 },
+        { 198, 245, 138, 0 },
+        { 67, 3, 239, 1 },
+        { 40, 215, 177, 1 }, },
+      { { 255, 220, 26, 0 },
+        { 215, 59, 204, 1 },
+        { 44, 29, 255, 1 },
+        { 153, 238, 117, 1 }, },
+      { { 25, 248, 99, 1 },
+        { 206, 222, 66, 0 },
+        { 227, 15, 204, 0 },
+        { 33, 61, 185, 1 }, },
+      { { 169, 93, 31, 1 },
+        { 217, 122, 89, 1 },
+        { 252, 93, 74, 1 },
+        { 205, 47, 77, 1 }, },
+      { { 0, 184, 72, 1 },
+        { 10, 12, 66, 1 },
+        { 137, 14, 128, 0 },
+        { 161, 24, 40, 0 }, },
+      { { 0, 236, 225, 0 },
+        { 67, 204, 34, 0 },
+        { 67, 155, 128, 0 },
+        { 34, 25, 225, 0 }, },
+      { { 8, 97, 102, 0 },
+        { 192, 134, 19, 0 },
+        { 51, 67, 8, 0 },
+        { 100, 48, 129, 1 }, },
+      { { 8, 244, 131, 0 },
+        { 195, 66, 98, 0 },
+        { 96, 151, 136, 0 },
+        { 35, 33, 97, 1 }, },
+      { { 12, 248, 157, 0 },
+        { 210, 72, 118, 1 },
+        { 92, 143, 152, 0 },
+        { 183, 9, 37, 1 }, },
+      { { 8, 192, 62, 1 },
+        { 218, 130, 16, 1 },
+        { 190, 1, 136, 0 },
+        { 132, 32, 173, 1 }, },
+      { { 1, 57, 192, 0 },
+        { 0, 28, 99, 0 },
+        { 1, 206, 64, 0 },
+        { 99, 28, 0, 0 }, },
+      { { 1, 40, 10, 0 },
+        { 0, 26, 2, 1 },
+        { 40, 10, 64, 0 },
+        { 160, 44, 0, 0 }, },
+      { { 1, 190, 179, 1 },
+        { 59, 218, 98, 0 },
+        { 230, 190, 192, 0 },
+        { 35, 45, 238, 0 }, },
+      { { 13, 128, 85, 0 },
+        { 146, 84, 20, 0 },
+        { 85, 0, 216, 0 },
+        { 20, 21, 36, 1 }, },
+      { { 13, 175, 99, 1 },
+        { 171, 222, 7, 0 },
+        { 227, 122, 216, 0 },
+        { 112, 61, 234, 1 }, },
+      { { 6, 181, 236, 0 },
+        { 3, 132, 247, 1 },
+        { 27, 214, 176, 0 },
+        { 247, 144, 224, 0 }, },
+      { { 2, 153, 54, 1 },
+        { 26, 138, 209, 0 },
+        { 182, 76, 160, 0 },
+        { 69, 168, 172, 0 }, },
+      { { 6, 182, 143, 0 },
+        { 35, 66, 246, 1 },
+        { 120, 182, 176, 0 },
+        { 183, 161, 98, 0 }, },
+      { { 6, 125, 64, 1 },
+        { 73, 12, 199, 0 },
+        { 129, 95, 48, 0 },
+        { 113, 152, 73, 0 }, },
+      { { 2, 114, 104, 1 },
+        { 104, 132, 194, 1 },
+        { 139, 39, 32, 0 },
+        { 161, 144, 139, 0 }, },
+      { { 6, 203, 237, 1 },
+        { 106, 204, 181, 1 },
+        { 219, 233, 176, 0 },
+        { 214, 153, 171, 0 }, },
+      { { 14, 15, 61, 0 },
+        { 177, 200, 149, 1 },
+        { 94, 120, 56, 0 },
+        { 212, 137, 198, 1 }, },
+      { { 14, 213, 203, 0 },
+        { 195, 70, 229, 1 },
+        { 105, 213, 184, 0 },
+        { 211, 177, 97, 1 }, },
+      { { 3, 125, 39, 1 },
+        { 73, 218, 211, 0 },
+        { 242, 95, 96, 0 },
+        { 101, 173, 201, 0 }, },
+      { { 3, 233, 143, 0 },
+        { 66, 90, 179, 1 },
+        { 120, 203, 224, 0 },
+        { 230, 173, 33, 0 }, },
+      { { 7, 250, 159, 1 },
+        { 122, 90, 246, 1 },
+        { 252, 175, 240, 0 },
+        { 183, 173, 47, 0 }, },
+      { { 11, 76, 16, 0 },
+        { 209, 24, 128, 0 },
+        { 4, 25, 104, 0 },
+        { 0, 140, 69, 1 }, },
+      { { 16, 185, 87, 1 },
+        { 30, 78, 83, 0 },
+        { 245, 78, 132, 0 },
+        { 101, 57, 60, 0 }, },
+      { { 16, 22, 41, 0 },
+        { 37, 192, 64, 1 },
+        { 74, 52, 4, 0 },
+        { 129, 1, 210, 0 }, },
+      { { 16, 98, 139, 1 },
+        { 108, 66, 34, 1 },
+        { 232, 163, 4, 0 },
+        { 162, 33, 27, 0 }, },
+      { { 24, 157, 182, 0 },
+        { 151, 138, 113, 0 },
+        { 54, 220, 140, 0 },
+        { 71, 40, 244, 1 }, },
+      { { 24, 109, 0, 1 },
+        { 205, 8, 3, 0 },
+        { 128, 91, 12, 0 },
+        { 96, 8, 89, 1 }, },
+      { { 28, 118, 42, 0 },
+        { 229, 130, 70, 1 },
+        { 42, 55, 28, 0 },
+        { 177, 32, 211, 1 }, },
+      { { 24, 95, 228, 1 },
+        { 237, 140, 113, 0 },
+        { 147, 253, 12, 0 },
+        { 71, 24, 219, 1 }, },
+      { { 28, 66, 22, 0 },
+        { 244, 2, 20, 0 },
+        { 52, 33, 28, 0 },
+        { 20, 32, 23, 1 }, },
+      { { 17, 60, 169, 0 },
+        { 5, 216, 98, 1 },
+        { 74, 158, 68, 0 },
+        { 163, 13, 208, 0 }, },
+      { { 17, 152, 57, 1 },
+        { 30, 216, 64, 1 },
+        { 206, 12, 196, 0 },
+        { 129, 13, 188, 0 }, },
+      { { 21, 58, 99, 0 },
+        { 36, 222, 70, 0 },
+        { 99, 46, 84, 0 },
+        { 49, 61, 146, 0 }, },
+      { { 21, 18, 117, 1 },
+        { 60, 212, 84, 0 },
+        { 215, 36, 84, 0 },
+        { 21, 21, 158, 0 }, },
+      { { 21, 222, 162, 0 },
+        { 103, 154, 100, 0 },
+        { 34, 189, 212, 0 },
+        { 19, 44, 243, 0 }, },
+      { { 21, 106, 24, 1 },
+        { 124, 24, 6, 1 },
+        { 140, 43, 84, 0 },
+        { 176, 12, 31, 0 }, },
+      { { 29, 209, 40, 0 },
+        { 198, 144, 69, 1 },
+        { 10, 69, 220, 0 },
+        { 209, 4, 177, 1 }, },
+      { { 29, 113, 148, 1 },
+        { 220, 16, 119, 0 },
+        { 148, 199, 92, 0 },
+        { 119, 4, 29, 1 }, },
+      { { 18, 57, 139, 1 },
+        { 12, 74, 227, 1 },
+        { 232, 206, 36, 0 },
+        { 227, 169, 24, 0 }, },
+      { { 18, 5, 152, 0 },
+        { 21, 0, 161, 1 },
+        { 12, 208, 36, 0 },
+        { 194, 128, 84, 0 }, },
+      { { 22, 2, 152, 1 },
+        { 60, 0, 164, 1 },
+        { 140, 160, 52, 0 },
+        { 146, 128, 30, 0 }, },
+      { { 26, 52, 127, 1 },
+        { 157, 198, 210, 1 },
+        { 255, 22, 44, 0 },
+        { 165, 177, 220, 1 }, },
+      { { 30, 220, 239, 1 },
+        { 207, 206, 244, 1 },
+        { 251, 157, 188, 0 },
+        { 151, 185, 249, 1 }, },
+      { { 30, 112, 115, 0 },
+        { 212, 198, 198, 0 },
+        { 103, 7, 60, 0 },
+        { 49, 177, 149, 1 }, },
+      { { 26, 67, 149, 0 },
+        { 244, 64, 177, 0 },
+        { 84, 225, 44, 0 },
+        { 70, 129, 23, 1 }, },
+      { { 26, 126, 27, 1 },
+        { 253, 74, 194, 1 },
+        { 236, 63, 44, 0 },
+        { 161, 169, 95, 1 }, },
+      { { 23, 173, 194, 0 },
+        { 7, 30, 167, 0 },
+        { 33, 218, 244, 0 },
+        { 114, 188, 112, 0 }, },
+      { { 19, 25, 222, 1 },
+        { 28, 30, 241, 1 },
+        { 189, 204, 100, 0 },
+        { 199, 188, 28, 0 }, },
+      { { 27, 168, 147, 1 },
+        { 158, 90, 162, 0 },
+        { 228, 138, 236, 0 },
+        { 34, 173, 60, 1 }, },
+      { { 27, 147, 73, 1 },
+        { 174, 84, 193, 1 },
+        { 201, 100, 236, 0 },
+        { 193, 149, 58, 1 }, },
+      { { 27, 208, 27, 0 },
+        { 214, 82, 192, 1 },
+        { 108, 5, 236, 0 },
+        { 129, 165, 53, 1 }, },
+      { { 31, 66, 219, 1 },
+        { 252, 86, 164, 1 },
+        { 237, 161, 124, 0 },
+        { 146, 181, 31, 1 }, },
+      { { 32, 185, 170, 0 },
+        { 2, 170, 99, 1 },
+        { 42, 206, 130, 0 },
+        { 227, 42, 160, 0 }, },
+      { { 36, 196, 186, 0 },
+        { 83, 162, 36, 1 },
+        { 46, 145, 146, 0 },
+        { 146, 34, 229, 0 }, },
+      { { 40, 173, 5, 0 },
+        { 131, 104, 19, 0 },
+        { 80, 90, 138, 0 },
+        { 100, 11, 96, 1 }, },
+      { { 44, 35, 100, 1 },
+        { 168, 164, 23, 0 },
+        { 147, 98, 26, 0 },
+        { 116, 18, 138, 1 }, },
+      { { 44, 14, 154, 1 },
+        { 185, 42, 36, 1 },
+        { 172, 184, 26, 0 },
+        { 146, 42, 78, 1 }, },
+      { { 44, 81, 3, 1 },
+        { 200, 98, 69, 0 },
+        { 224, 69, 26, 0 },
+        { 81, 35, 9, 1 }, },
+      { { 37, 197, 207, 1 },
+        { 75, 118, 53, 1 },
+        { 249, 209, 210, 0 },
+        { 214, 55, 105, 0 }, },
+      { { 37, 200, 211, 1 },
+        { 90, 126, 36, 0 },
+        { 229, 137, 210, 0 },
+        { 18, 63, 45, 0 }, },
+      { { 33, 119, 232, 1 },
+        { 105, 180, 99, 1 },
+        { 139, 247, 66, 0 },
+        { 227, 22, 203, 0 }, },
+      { { 34, 141, 218, 1 },
+        { 27, 46, 161, 1 },
+        { 173, 216, 162, 0 },
+        { 194, 186, 108, 0 }, },
+      { { 34, 10, 238, 0 },
+        { 32, 174, 176, 1 },
+        { 59, 168, 34, 0 },
+        { 134, 186, 130, 0 }, },
+      { { 46, 134, 44, 0 },
+        { 163, 160, 148, 1 },
+        { 26, 48, 186, 0 },
+        { 148, 130, 226, 1 }, },
+      { { 42, 182, 47, 1 },
+        { 171, 226, 210, 1 },
+        { 250, 54, 170, 0 },
+        { 165, 163, 234, 1 }, },
+      { { 39, 60, 45, 0 },
+        { 1, 248, 214, 1 },
+        { 90, 30, 114, 0 },
+        { 181, 143, 192, 0 }, },
+      { { 39, 157, 74, 0 },
+        { 3, 62, 197, 1 },
+        { 41, 92, 242, 0 },
+        { 209, 190, 96, 0 }, },
+      { { 39, 155, 7, 1 },
+        { 42, 122, 213, 0 },
+        { 240, 108, 242, 0 },
+        { 85, 175, 42, 0 }, },
+      { { 35, 87, 132, 0 },
+        { 97, 48, 241, 0 },
+        { 16, 245, 98, 0 },
+        { 71, 134, 67, 0 }, },
+      { { 35, 78, 67, 1 },
+        { 105, 126, 128, 0 },
+        { 225, 57, 98, 0 },
+        { 0, 191, 75, 0 }, },
+      { { 47, 171, 185, 1 },
+        { 186, 248, 167, 1 },
+        { 206, 234, 250, 0 },
+        { 242, 143, 174, 1 }, },
+      { { 48, 176, 46, 1 },
+        { 14, 162, 82, 1 },
+        { 186, 6, 134, 0 },
+        { 165, 34, 184, 0 }, },
+      { { 48, 40, 122, 0 },
+        { 20, 174, 2, 1 },
+        { 47, 10, 6, 0 },
+        { 160, 58, 148, 0 }, },
+      { { 52, 253, 160, 1 },
+        { 79, 168, 103, 0 },
+        { 130, 223, 150, 0 },
+        { 115, 10, 249, 0 }, },
+      { { 60, 214, 137, 0 },
+        { 231, 96, 100, 1 },
+        { 72, 181, 158, 0 },
+        { 147, 3, 115, 1 }, },
+      { { 56, 126, 182, 0 },
+        { 245, 170, 114, 0 },
+        { 54, 191, 14, 0 },
+        { 39, 42, 215, 1 }, },
+      { { 49, 0, 109, 0 },
+        { 4, 244, 16, 1 },
+        { 91, 0, 70, 0 },
+        { 132, 23, 144, 0 }, },
+      { { 49, 23, 219, 1 },
+        { 61, 118, 97, 1 },
+        { 237, 244, 70, 0 },
+        { 195, 55, 94, 0 }, },
+      { { 49, 167, 119, 1 },
+        { 63, 246, 19, 0 },
+        { 247, 114, 198, 0 },
+        { 100, 55, 254, 0 }, },
+      { { 61, 128, 10, 1 },
+        { 142, 50, 4, 1 },
+        { 168, 0, 222, 0 },
+        { 144, 38, 56, 1 }, },
+      { { 61, 226, 157, 0 },
+        { 246, 112, 54, 1 },
+        { 92, 163, 222, 0 },
+        { 182, 7, 55, 1 }, },
+      { { 54, 106, 119, 1 },
+        { 124, 238, 150, 0 },
+        { 247, 43, 54, 0 },
+        { 52, 187, 159, 0 }, },
+      { { 54, 199, 190, 1 },
+        { 127, 162, 181, 1 },
+        { 190, 241, 182, 0 },
+        { 214, 162, 255, 0 }, },
+      { { 62, 187, 41, 0 },
+        { 166, 232, 199, 1 },
+        { 74, 110, 190, 0 },
+        { 241, 139, 178, 1 }, },
+      { { 62, 104, 154, 0 },
+        { 212, 42, 166, 1 },
+        { 44, 139, 62, 0 },
+        { 178, 170, 21, 1 }, },
+      { { 62, 95, 2, 1 },
+        { 237, 42, 197, 0 },
+        { 160, 125, 62, 0 },
+        { 81, 170, 91, 1 }, },
+      { { 58, 86, 206, 1 },
+        { 237, 38, 240, 1 },
+        { 185, 181, 46, 0 },
+        { 135, 178, 91, 1 }, },
+      { { 62, 95, 252, 0 },
+        { 245, 172, 245, 1 },
+        { 31, 253, 62, 0 },
+        { 215, 154, 215, 1 }, },
+      { { 51, 185, 172, 0 },
+        { 6, 184, 243, 1 },
+        { 26, 206, 230, 0 },
+        { 231, 142, 176, 0 }, },
+      { { 51, 84, 174, 0 },
+        { 69, 178, 240, 1 },
+        { 58, 149, 102, 0 },
+        { 135, 166, 209, 0 }, },
+      { { 63, 25, 160, 0 },
+        { 132, 184, 229, 0 },
+        { 2, 204, 126, 0 },
+        { 83, 142, 144, 1 }, },
+      { { 59, 173, 97, 1 },
+        { 143, 252, 131, 0 },
+        { 195, 90, 238, 0 },
+        { 96, 159, 248, 1 }, },
+      { { 59, 112, 47, 1 },
+        { 204, 242, 210, 1 },
+        { 250, 7, 110, 0 },
+        { 165, 167, 153, 1 }, },
+      { { 59, 235, 58, 1 },
+        { 254, 186, 131, 1 },
+        { 174, 107, 238, 0 },
+        { 224, 174, 191, 1 }, },
+      { { 64, 83, 90, 0 },
+        { 112, 7, 65, 1 },
+        { 45, 101, 1, 0 },
+        { 193, 112, 7, 0 }, },
+      { { 65, 152, 22, 0 },
+        { 18, 27, 80, 0 },
+        { 52, 12, 193, 0 },
+        { 5, 108, 36, 0 }, },
+      { { 65, 143, 177, 0 },
+        { 51, 217, 33, 0 },
+        { 70, 248, 193, 0 },
+        { 66, 77, 230, 0 }, },
+      { { 69, 217, 33, 1 },
+        { 74, 217, 69, 0 },
+        { 194, 77, 209, 0 },
+        { 81, 77, 169, 0 }, },
+      { { 69, 235, 1, 0 },
+        { 98, 89, 7, 0 },
+        { 64, 107, 209, 0 },
+        { 112, 77, 35, 0 }, },
+      { { 73, 157, 82, 0 },
+        { 147, 31, 65, 0 },
+        { 37, 92, 201, 0 },
+        { 65, 124, 100, 1 }, },
+      { { 66, 56, 79, 1 },
+        { 8, 79, 210, 1 },
+        { 249, 14, 33, 0 },
+        { 165, 249, 8, 0 }, },
+      { { 74, 166, 163, 1 },
+        { 171, 195, 162, 0 },
+        { 226, 178, 169, 0 },
+        { 34, 225, 234, 1 }, },
+      { { 74, 197, 42, 1 },
+        { 203, 131, 129, 1 },
+        { 170, 81, 169, 0 },
+        { 192, 224, 233, 1 }, },
+      { { 74, 200, 115, 0 },
+        { 210, 207, 128, 0 },
+        { 103, 9, 169, 0 },
+        { 0, 249, 165, 1 }, },
+      { { 71, 180, 198, 1 },
+        { 11, 23, 246, 0 },
+        { 177, 150, 241, 0 },
+        { 55, 244, 104, 0 }, },
+      { { 67, 147, 93, 0 },
+        { 50, 85, 209, 1 },
+        { 93, 100, 225, 0 },
+        { 197, 213, 38, 0 }, },
+      { { 67, 120, 117, 0 },
+        { 80, 221, 210, 0 },
+        { 87, 15, 97, 0 },
+        { 37, 221, 133, 0 }, },
+      { { 79, 58, 175, 1 },
+        { 168, 219, 246, 1 },
+        { 250, 174, 121, 0 },
+        { 183, 237, 138, 1 }, },
+      { { 79, 135, 68, 1 },
+        { 171, 21, 149, 0 },
+        { 145, 112, 249, 0 },
+        { 84, 212, 106, 1 }, },
+      { { 79, 135, 223, 0 },
+        { 179, 87, 181, 1 },
+        { 125, 240, 249, 0 },
+        { 214, 245, 102, 1 }, },
+      { { 79, 196, 222, 1 },
+        { 219, 23, 180, 1 },
+        { 189, 145, 249, 0 },
+        { 150, 244, 109, 1 }, },
+      { { 84, 31, 71, 0 },
+        { 37, 79, 85, 0 },
+        { 113, 124, 21, 0 },
+        { 85, 121, 82, 0 }, },
+      { { 80, 31, 148, 0 },
+        { 53, 9, 113, 0 },
+        { 20, 252, 5, 0 },
+        { 71, 72, 86, 0 }, },
+      { { 92, 145, 67, 0 },
+        { 134, 71, 69, 0 },
+        { 97, 68, 157, 0 },
+        { 81, 113, 48, 1 }, },
+      { { 88, 189, 239, 1 },
+        { 143, 207, 115, 1 },
+        { 251, 222, 141, 0 },
+        { 231, 121, 248, 1 }, },
+      { { 92, 221, 7, 1 },
+        { 207, 75, 85, 0 },
+        { 240, 93, 157, 0 },
+        { 85, 105, 121, 1 }, },
+      { { 92, 102, 88, 1 },
+        { 253, 5, 6, 1 },
+        { 141, 51, 29, 0 },
+        { 176, 80, 95, 1 }, },
+      { { 92, 219, 50, 1 },
+        { 254, 139, 69, 0 },
+        { 166, 109, 157, 0 },
+        { 81, 104, 191, 1 }, },
+      { { 85, 69, 212, 0 },
+        { 85, 21, 53, 0 },
+        { 21, 209, 85, 0 },
+        { 86, 84, 85, 0 }, },
+      { { 81, 68, 62, 0 },
+        { 85, 147, 16, 1 },
+        { 62, 17, 69, 0 },
+        { 132, 100, 213, 0 }, },
+      { { 81, 231, 230, 0 },
+        { 103, 151, 51, 0 },
+        { 51, 243, 197, 0 },
+        { 102, 116, 243, 0 }, },
+      { { 89, 11, 167, 0 },
+        { 164, 219, 49, 0 },
+        { 114, 232, 77, 0 },
+        { 70, 109, 146, 1 }, },
+      { { 93, 186, 56, 1 },
+        { 190, 153, 70, 1 },
+        { 142, 46, 221, 0 },
+        { 177, 76, 190, 1 }, },
+      { { 93, 166, 55, 1 },
+        { 191, 211, 22, 0 },
+        { 246, 50, 221, 0 },
+        { 52, 101, 254, 1 }, },
+      { { 89, 249, 149, 0 },
+        { 214, 89, 115, 0 },
+        { 84, 207, 205, 0 },
+        { 103, 77, 53, 1 }, },
+      { { 93, 255, 236, 0 },
+        { 231, 157, 119, 1 },
+        { 27, 255, 221, 0 },
+        { 247, 92, 243, 1 }, },
+      { { 82, 157, 58, 0 },
+        { 23, 139, 193, 1 },
+        { 46, 92, 165, 0 },
+        { 193, 232, 244, 0 }, },
+      { { 86, 58, 151, 0 },
+        { 52, 75, 246, 0 },
+        { 116, 174, 53, 0 },
+        { 55, 233, 22, 0 }, },
+      { { 82, 99, 34, 0 },
+        { 100, 131, 131, 0 },
+        { 34, 99, 37, 0 },
+        { 96, 224, 147, 0 }, },
+      { { 82, 203, 49, 1 },
+        { 126, 201, 129, 0 },
+        { 198, 105, 165, 0 },
+        { 64, 201, 191, 0 }, },
+      { { 90, 139, 204, 1 },
+        { 174, 13, 177, 1 },
+        { 153, 232, 173, 0 },
+        { 198, 216, 58, 1 }, },
+      { { 83, 33, 106, 0 },
+        { 4, 151, 131, 1 },
+        { 43, 66, 101, 0 },
+        { 224, 244, 144, 0 }, },
+      { { 87, 245, 17, 0 },
+        { 87, 81, 199, 0 },
+        { 68, 87, 245, 0 },
+        { 113, 197, 117, 0 }, },
+      { { 95, 220, 33, 0 },
+        { 199, 217, 196, 0 },
+        { 66, 29, 253, 0 },
+        { 17, 205, 241, 1 }, },
+      { { 96, 140, 28, 0 },
+        { 19, 41, 16, 1 },
+        { 28, 24, 131, 0 },
+        { 132, 74, 100, 0 }, },
+      { { 96, 162, 213, 1 },
+        { 58, 101, 50, 0 },
+        { 213, 162, 131, 0 },
+        { 38, 83, 46, 0 }, },
+      { { 96, 222, 5, 1 },
+        { 107, 105, 80, 0 },
+        { 208, 61, 131, 0 },
+        { 5, 75, 107, 0 }, },
+      { { 108, 76, 110, 0 },
+        { 193, 175, 20, 1 },
+        { 59, 25, 27, 0 },
+        { 148, 122, 193, 1 }, },
+      { { 104, 82, 12, 0 },
+        { 224, 33, 80, 1 },
+        { 24, 37, 11, 0 },
+        { 133, 66, 3, 1 }, },
+      { { 101, 59, 167, 0 },
+        { 32, 251, 119, 0 },
+        { 114, 238, 83, 0 },
+        { 119, 111, 130, 0 }, },
+      { { 97, 170, 234, 0 },
+        { 34, 191, 34, 1 },
+        { 43, 170, 195, 0 },
+        { 162, 126, 162, 0 }, },
+      { { 101, 113, 110, 1 },
+        { 72, 183, 87, 1 },
+        { 187, 71, 83, 0 },
+        { 245, 118, 137, 0 }, },
+      { { 101, 124, 89, 1 },
+        { 89, 125, 70, 1 },
+        { 205, 31, 83, 0 },
+        { 177, 95, 77, 0 }, },
+      { { 105, 131, 46, 1 },
+        { 170, 179, 17, 1 },
+        { 186, 96, 203, 0 },
+        { 196, 102, 170, 1 }, },
+      { { 109, 196, 12, 0 },
+        { 195, 49, 20, 1 },
+        { 24, 17, 219, 0 },
+        { 148, 70, 97, 1 }, },
+      { { 109, 210, 20, 1 },
+        { 250, 49, 84, 0 },
+        { 148, 37, 219, 0 },
+        { 21, 70, 47, 1 }, },
+      { { 98, 150, 165, 1 },
+        { 43, 225, 240, 0 },
+        { 210, 180, 163, 0 },
+        { 7, 195, 234, 0 }, },
+      { { 98, 117, 38, 1 },
+        { 73, 163, 211, 0 },
+        { 178, 87, 35, 0 },
+        { 101, 226, 201, 0 }, },
+      { { 98, 100, 214, 1 },
+        { 89, 39, 178, 0 },
+        { 181, 147, 35, 0 },
+        { 38, 242, 77, 0 }, },
+      { { 98, 91, 220, 1 },
+        { 120, 45, 241, 1 },
+        { 157, 237, 35, 0 },
+        { 199, 218, 15, 0 }, },
+      { { 110, 51, 2, 1 },
+        { 168, 35, 199, 0 },
+        { 160, 102, 59, 0 },
+        { 113, 226, 10, 1 }, },
+      { { 110, 90, 137, 0 },
+        { 224, 105, 228, 1 },
+        { 72, 173, 59, 0 },
+        { 147, 203, 3, 1 }, },
+      { { 99, 209, 212, 0 },
+        { 82, 53, 241, 0 },
+        { 21, 197, 227, 0 },
+        { 71, 214, 37, 0 }, },
+      { { 99, 75, 129, 1 },
+        { 104, 121, 161, 0 },
+        { 192, 233, 99, 0 },
+        { 66, 207, 11, 0 }, },
+      { { 107, 56, 145, 1 },
+        { 152, 121, 226, 0 },
+        { 196, 142, 107, 0 },
+        { 35, 207, 12, 1 }, },
+      { { 107, 122, 42, 0 },
+        { 224, 187, 194, 1 },
+        { 42, 47, 107, 0 },
+        { 161, 238, 131, 1 }, },
+      { { 116, 56, 51, 0 },
+        { 20, 235, 70, 0 },
+        { 102, 14, 23, 0 },
+        { 49, 107, 148, 0 }, },
+      { { 112, 6, 44, 0 },
+        { 37, 161, 16, 1 },
+        { 26, 48, 7, 0 },
+        { 132, 66, 210, 0 }, },
+      { { 116, 170, 141, 1 },
+        { 46, 105, 54, 1 },
+        { 216, 170, 151, 0 },
+        { 182, 75, 58, 0 }, },
+      { { 116, 76, 143, 0 },
+        { 69, 107, 52, 1 },
+        { 120, 153, 23, 0 },
+        { 150, 107, 81, 0 }, },
+      { { 124, 183, 167, 0 },
+        { 167, 227, 119, 0 },
+        { 114, 246, 159, 0 },
+        { 119, 99, 242, 1 }, },
+      { { 120, 3, 22, 1 },
+        { 188, 35, 17, 0 },
+        { 180, 96, 15, 0 },
+        { 68, 98, 30, 1 }, },
+      { { 124, 199, 198, 1 },
+        { 239, 39, 53, 0 },
+        { 177, 241, 159, 0 },
+        { 86, 114, 123, 1 }, },
+      { { 117, 182, 4, 1 },
+        { 47, 49, 86, 0 },
+        { 144, 54, 215, 0 },
+        { 53, 70, 122, 0 }, },
+      { { 113, 254, 101, 0 },
+        { 103, 253, 82, 0 },
+        { 83, 63, 199, 0 },
+        { 37, 95, 243, 0 }, },
+      { { 113, 79, 154, 1 },
+        { 125, 59, 33, 1 },
+        { 172, 249, 71, 0 },
+        { 194, 110, 95, 0 }, },
+      { { 121, 32, 119, 0 },
+        { 148, 247, 18, 0 },
+        { 119, 2, 79, 0 },
+        { 36, 119, 148, 1 }, },
+      { { 125, 121, 205, 0 },
+        { 196, 125, 119, 1 },
+        { 89, 207, 95, 0 },
+        { 247, 95, 17, 1 }, },
+      { { 125, 67, 92, 0 },
+        { 244, 53, 21, 1 },
+        { 29, 97, 95, 0 },
+        { 212, 86, 23, 1 }, },
+      { { 125, 127, 59, 0 },
+        { 245, 251, 71, 1 },
+        { 110, 127, 95, 0 },
+        { 241, 111, 215, 1 }, },
+      { { 118, 85, 8, 0 },
+        { 69, 33, 197, 1 },
+        { 8, 85, 55, 0 },
+        { 209, 194, 81, 0 }, },
+      { { 122, 152, 199, 0 },
+        { 134, 111, 240, 0 },
+        { 113, 140, 175, 0 },
+        { 7, 251, 48, 1 }, },
+      { { 126, 19, 192, 0 },
+        { 164, 37, 229, 0 },
+        { 1, 228, 63, 0 },
+        { 83, 210, 18, 1 }, },
+      { { 126, 94, 89, 1 },
+        { 253, 109, 196, 1 },
+        { 205, 61, 63, 0 },
+        { 145, 219, 95, 1 }, },
+      { { 115, 36, 132, 0 },
+        { 5, 49, 178, 0 },
+        { 16, 146, 103, 0 },
+        { 38, 198, 80, 0 }, },
+      { { 115, 46, 39, 1 },
+        { 45, 251, 146, 0 },
+        { 242, 58, 103, 0 },
+        { 36, 239, 218, 0 }, },
+      { { 115, 139, 84, 1 },
+        { 62, 61, 145, 0 },
+        { 149, 104, 231, 0 },
+        { 68, 222, 62, 0 }, },
+      { { 132, 4, 34, 0 },
+        { 1, 130, 12, 0 },
+        { 34, 16, 16, 1 },
+        { 24, 32, 192, 0 }, },
+      { { 128, 232, 46, 0 },
+        { 66, 138, 26, 1 },
+        { 58, 11, 128, 1 },
+        { 172, 40, 161, 0 }, },
+      { { 128, 237, 48, 0 },
+        { 83, 136, 11, 0 },
+        { 6, 91, 128, 1 },
+        { 104, 8, 229, 0 }, },
+      { { 140, 53, 96, 0 },
+        { 129, 132, 79, 0 },
+        { 3, 86, 24, 1 },
+        { 121, 16, 192, 1 }, },
+      { { 140, 120, 240, 1 },
+        { 216, 140, 110, 0 },
+        { 135, 143, 24, 1 },
+        { 59, 24, 141, 1 }, },
+      { { 136, 194, 128, 1 },
+        { 234, 0, 40, 0 },
+        { 128, 161, 136, 1 },
+        { 10, 0, 43, 1 }, },
+      { { 129, 26, 100, 1 },
+        { 40, 156, 88, 0 },
+        { 147, 44, 64, 1 },
+        { 13, 28, 138, 0 }, },
+      { { 129, 38, 163, 0 },
+        { 33, 210, 42, 0 },
+        { 98, 178, 64, 1 },
+        { 42, 37, 194, 0 }, },
+      { { 133, 154, 140, 1 },
+        { 42, 24, 124, 1 },
+        { 152, 172, 208, 1 },
+        { 159, 12, 42, 0 }, },
+      { { 137, 19, 23, 1 },
+        { 184, 82, 89, 0 },
+        { 244, 100, 72, 1 },
+        { 77, 37, 14, 1 }, },
+      { { 130, 9, 37, 0 },
+        { 0, 200, 153, 0 },
+        { 82, 72, 32, 1 },
+        { 76, 137, 128, 0 }, },
+      { { 130, 183, 201, 1 },
+        { 43, 68, 235, 1 },
+        { 201, 246, 160, 1 },
+        { 235, 145, 106, 0 }, },
+      { { 142, 185, 191, 1 },
+        { 154, 202, 255, 1 },
+        { 254, 206, 184, 1 },
+        { 255, 169, 172, 1 }, },
+      { { 138, 159, 236, 0 },
+        { 163, 140, 249, 1 },
+        { 27, 252, 168, 1 },
+        { 207, 152, 226, 1 }, },
+      { { 142, 228, 226, 0 },
+        { 195, 134, 174, 0 },
+        { 35, 147, 184, 1 },
+        { 58, 176, 225, 1 }, },
+      { { 135, 32, 232, 0 },
+        { 0, 148, 174, 1 },
+        { 11, 130, 112, 1 },
+        { 186, 148, 128, 0 }, },
+      { { 135, 205, 96, 1 },
+        { 75, 156, 141, 0 },
+        { 131, 89, 240, 1 },
+        { 88, 156, 233, 0 }, },
+      { { 135, 71, 172, 1 },
+        { 105, 144, 189, 1 },
+        { 154, 241, 112, 1 },
+        { 222, 132, 203, 0 }, },
+      { { 139, 10, 91, 0 },
+        { 176, 94, 136, 1 },
+        { 109, 40, 104, 1 },
+        { 136, 189, 6, 1 }, },
+      { { 139, 92, 190, 1 },
+        { 217, 154, 248, 1 },
+        { 190, 157, 104, 1 },
+        { 143, 172, 205, 1 }, },
+      { { 143, 213, 180, 0 },
+        { 211, 144, 253, 0 },
+        { 22, 213, 248, 1 },
+        { 95, 132, 229, 1 }, },
+      { { 139, 118, 41, 0 },
+        { 225, 208, 202, 1 },
+        { 74, 55, 104, 1 },
+        { 169, 133, 195, 1 }, },
+      { { 148, 51, 175, 0 },
+        { 36, 194, 127, 1 },
+        { 122, 230, 20, 1 },
+        { 255, 33, 146, 0 }, },
+      { { 144, 85, 72, 1 },
+        { 77, 4, 73, 1 },
+        { 137, 85, 4, 1 },
+        { 201, 16, 89, 0 }, },
+      { { 156, 62, 39, 0 },
+        { 165, 202, 94, 0 },
+        { 114, 62, 28, 1 },
+        { 61, 41, 210, 1 }, },
+      { { 152, 151, 159, 0 },
+        { 183, 66, 121, 1 },
+        { 124, 244, 140, 1 },
+        { 207, 33, 118, 1 }, },
+      { { 152, 88, 144, 1 },
+        { 220, 8, 104, 0 },
+        { 132, 141, 12, 1 },
+        { 11, 8, 29, 1 }, },
+      { { 149, 182, 31, 0 },
+        { 55, 82, 94, 1 },
+        { 124, 54, 212, 1 },
+        { 189, 37, 118, 0 }, },
+      { { 145, 64, 55, 0 },
+        { 84, 210, 24, 0 },
+        { 118, 1, 68, 1 },
+        { 12, 37, 149, 0 }, },
+      { { 157, 179, 128, 0 },
+        { 166, 16, 111, 0 },
+        { 0, 230, 220, 1 },
+        { 123, 4, 50, 1 }, },
+      { { 153, 65, 137, 1 },
+        { 204, 80, 41, 1 },
+        { 200, 193, 76, 1 },
+        { 202, 5, 25, 1 }, },
+      { { 146, 173, 38, 0 },
+        { 7, 138, 155, 0 },
+        { 50, 90, 164, 1 },
+        { 108, 168, 240, 0 }, },
+      { { 146, 101, 228, 1 },
+        { 77, 132, 187, 0 },
+        { 147, 211, 36, 1 },
+        { 110, 144, 217, 0 }, },
+      { { 146, 111, 141, 1 },
+        { 109, 72, 187, 1 },
+        { 216, 251, 36, 1 },
+        { 238, 137, 91, 0 }, },
+      { { 150, 94, 153, 0 },
+        { 117, 72, 236, 1 },
+        { 76, 189, 52, 1 },
+        { 155, 137, 87, 0 }, },
+      { { 154, 11, 77, 0 },
+        { 164, 76, 153, 1 },
+        { 89, 104, 44, 1 },
+        { 204, 153, 18, 1 }, },
+      { { 154, 221, 17, 0 },
+        { 215, 72, 201, 0 },
+        { 68, 93, 172, 1 },
+        { 73, 137, 117, 1 }, },
+      { { 147, 246, 156, 1 },
+        { 127, 16, 250, 1 },
+        { 156, 183, 228, 1 },
+        { 175, 132, 127, 0 }, },
+      { { 159, 52, 189, 1 },
+        { 157, 208, 254, 1 },
+        { 222, 150, 124, 1 },
+        { 191, 133, 220, 1 }, },
+      { { 159, 80, 9, 0 },
+        { 196, 80, 204, 1 },
+        { 72, 5, 124, 1 },
+        { 153, 133, 17, 1 }, },
+      { { 160, 153, 27, 1 },
+        { 26, 106, 73, 1 },
+        { 236, 76, 130, 1 },
+        { 201, 43, 44, 0 }, },
+      { { 164, 15, 234, 0 },
+        { 33, 174, 45, 1 },
+        { 43, 248, 18, 1 },
+        { 218, 58, 194, 0 }, },
+      { { 160, 15, 83, 1 },
+        { 57, 110, 9, 0 },
+        { 229, 120, 2, 1 },
+        { 72, 59, 78, 0 }, },
+      { { 168, 2, 105, 1 },
+        { 168, 228, 8, 1 },
+        { 203, 32, 10, 1 },
+        { 136, 19, 138, 1 }, },
+      { { 172, 27, 205, 1 },
+        { 168, 108, 125, 1 },
+        { 217, 236, 26, 1 },
+        { 223, 27, 10, 1 }, },
+      { { 172, 135, 77, 0 },
+        { 163, 100, 29, 1 },
+        { 89, 112, 154, 1 },
+        { 220, 19, 98, 1 }, },
+      { { 172, 118, 200, 0 },
+        { 225, 36, 110, 1 },
+        { 9, 183, 26, 1 },
+        { 187, 18, 67, 1 }, },
+      { { 165, 68, 167, 0 },
+        { 65, 242, 60, 0 },
+        { 114, 145, 82, 1 },
+        { 30, 39, 193, 0 }, },
+      { { 161, 244, 92, 0 },
+        { 83, 52, 90, 1 },
+        { 29, 23, 194, 1 },
+        { 173, 22, 101, 0 }, },
+      { { 169, 157, 169, 0 },
+        { 131, 248, 105, 1 },
+        { 74, 220, 202, 1 },
+        { 203, 15, 224, 1 }, },
+      { { 169, 135, 255, 0 },
+        { 179, 246, 57, 1 },
+        { 127, 240, 202, 1 },
+        { 206, 55, 230, 1 }, },
+      { { 169, 71, 98, 1 },
+        { 233, 182, 9, 0 },
+        { 163, 113, 74, 1 },
+        { 72, 54, 203, 1 }, },
+      { { 166, 129, 114, 1 },
+        { 26, 166, 141, 0 },
+        { 167, 64, 178, 1 },
+        { 88, 178, 172, 0 }, },
+      { { 166, 249, 172, 1 },
+        { 74, 168, 255, 1 },
+        { 154, 207, 178, 1 },
+        { 255, 138, 169, 0 }, },
+      { { 162, 196, 38, 0 },
+        { 67, 162, 152, 0 },
+        { 50, 17, 162, 1 },
+        { 12, 162, 225, 0 }, },
+      { { 170, 53, 101, 1 },
+        { 137, 228, 219, 0 },
+        { 211, 86, 42, 1 },
+        { 109, 147, 200, 1 }, },
+      { { 170, 168, 102, 0 },
+        { 130, 174, 154, 0 },
+        { 51, 10, 170, 1 },
+        { 44, 186, 160, 1 }, },
+      { { 170, 200, 143, 0 },
+        { 194, 106, 184, 1 },
+        { 120, 137, 170, 1 },
+        { 142, 171, 33, 1 }, },
+      { { 167, 110, 148, 1 },
+        { 121, 56, 190, 0 },
+        { 148, 187, 114, 1 },
+        { 62, 142, 79, 0 }, },
+      { { 175, 4, 36, 1 },
+        { 137, 176, 156, 0 },
+        { 146, 16, 122, 1 },
+        { 28, 134, 200, 1 }, },
+      { { 176, 65, 44, 0 },
+        { 68, 160, 25, 1 },
+        { 26, 65, 6, 1 },
+        { 204, 2, 145, 0 }, },
+      { { 176, 208, 227, 0 },
+        { 70, 230, 104, 0 },
+        { 99, 133, 134, 1 },
+        { 11, 51, 177, 0 }, },
+      { { 176, 237, 129, 1 },
+        { 79, 104, 43, 0 },
+        { 192, 219, 134, 1 },
+        { 106, 11, 121, 0 }, },
+      { { 180, 231, 236, 0 },
+        { 103, 164, 63, 1 },
+        { 27, 243, 150, 1 },
+        { 254, 18, 243, 0 }, },
+      { { 184, 160, 236, 1 },
+        { 142, 164, 58, 1 },
+        { 155, 130, 142, 1 },
+        { 174, 18, 184, 1 }, },
+      { { 184, 188, 60, 1 },
+        { 159, 168, 90, 1 },
+        { 158, 30, 142, 1 },
+        { 173, 10, 252, 1 }, },
+      { { 177, 102, 224, 1 },
+        { 109, 180, 42, 0 },
+        { 131, 179, 70, 1 },
+        { 42, 22, 219, 0 }, },
+      { { 189, 49, 10, 1 },
+        { 140, 50, 79, 1 },
+        { 168, 70, 94, 1 },
+        { 249, 38, 24, 1 }, },
+      { { 189, 63, 186, 1 },
+        { 189, 186, 111, 1 },
+        { 174, 254, 94, 1 },
+        { 251, 46, 222, 1 }, },
+      { { 185, 190, 220, 0 },
+        { 183, 60, 122, 1 },
+        { 29, 190, 206, 1 },
+        { 175, 30, 118, 1 }, },
+      { { 178, 58, 240, 1 },
+        { 60, 172, 234, 0 },
+        { 135, 174, 38, 1 },
+        { 43, 154, 158, 0 }, },
+      { { 182, 207, 169, 0 },
+        { 103, 232, 173, 1 },
+        { 74, 249, 182, 1 },
+        { 218, 139, 243, 0 }, },
+      { { 186, 35, 226, 1 },
+        { 172, 166, 171, 0 },
+        { 163, 226, 46, 1 },
+        { 106, 178, 154, 1 }, },
+      { { 183, 36, 171, 1 },
+        { 13, 242, 174, 1 },
+        { 234, 146, 118, 1 },
+        { 186, 167, 216, 0 }, },
+      { { 183, 41, 251, 0 },
+        { 20, 254, 175, 1 },
+        { 111, 202, 118, 1 },
+        { 250, 191, 148, 0 }, },
+      { { 179, 174, 8, 0 },
+        { 39, 56, 138, 1 },
+        { 8, 58, 230, 1 },
+        { 168, 142, 114, 0 }, },
+      { { 183, 86, 202, 1 },
+        { 109, 54, 236, 1 },
+        { 169, 181, 118, 1 },
+        { 155, 182, 91, 0 }, },
+      { { 191, 168, 244, 0 },
+        { 150, 188, 190, 0 },
+        { 23, 138, 254, 1 },
+        { 62, 158, 180, 1 }, },
+      { { 191, 148, 18, 1 },
+        { 159, 50, 204, 0 },
+        { 164, 20, 254, 1 },
+        { 25, 166, 124, 1 }, },
+      { { 191, 122, 64, 1 },
+        { 236, 60, 206, 0 },
+        { 129, 47, 126, 1 },
+        { 57, 158, 27, 1 }, },
+      { { 196, 133, 200, 0 },
+        { 3, 5, 45, 1 },
+        { 9, 208, 145, 1 },
+        { 218, 80, 96, 0 }, },
+      { { 192, 14, 9, 1 },
+        { 41, 73, 8, 1 },
+        { 200, 56, 1, 1 },
+        { 136, 73, 74, 0 }, },
+      { { 192, 112, 254, 0 },
+        { 80, 135, 122, 1 },
+        { 63, 135, 1, 1 },
+        { 175, 112, 133, 0 }, },
+      { { 204, 116, 17, 0 },
+        { 209, 65, 78, 0 },
+        { 68, 23, 25, 1 },
+        { 57, 65, 69, 1 }, },
+      { { 193, 8, 90, 1 },
+        { 24, 31, 8, 1 },
+        { 173, 8, 65, 1 },
+        { 136, 124, 12, 0 }, },
+      { { 193, 47, 130, 1 },
+        { 41, 27, 43, 0 },
+        { 160, 250, 65, 1 },
+        { 106, 108, 74, 0 }, },
+      { { 193, 35, 120, 0 },
+        { 48, 149, 11, 1 },
+        { 15, 98, 65, 1 },
+        { 232, 84, 134, 0 }, },
+      { { 198, 52, 219, 1 },
+        { 25, 71, 238, 1 },
+        { 237, 150, 49, 1 },
+        { 187, 241, 76, 0 }, },
+      { { 198, 164, 244, 1 },
+        { 27, 133, 190, 0 },
+        { 151, 146, 177, 1 },
+        { 62, 208, 236, 0 }, },
+      { { 194, 228, 25, 0 },
+        { 83, 65, 138, 1 },
+        { 76, 19, 161, 1 },
+        { 168, 193, 101, 0 }, },
+      { { 195, 29, 35, 0 },
+        { 1, 219, 201, 0 },
+        { 98, 92, 97, 1 },
+        { 73, 237, 192, 0 }, },
+      { { 195, 242, 196, 1 },
+        { 106, 21, 250, 0 },
+        { 145, 167, 225, 1 },
+        { 47, 212, 43, 0 }, },
+      { { 199, 95, 223, 0 },
+        { 113, 95, 253, 1 },
+        { 125, 253, 113, 1 },
+        { 223, 253, 71, 0 }, },
+      { { 203, 101, 189, 0 },
+        { 209, 209, 187, 1 },
+        { 94, 211, 105, 1 },
+        { 238, 197, 197, 1 }, },
+      { { 203, 199, 15, 1 },
+        { 235, 83, 153, 1 },
+        { 248, 113, 233, 1 },
+        { 204, 229, 107, 1 }, },
+      { { 207, 246, 185, 0 },
+        { 243, 209, 238, 1 },
+        { 78, 183, 249, 1 },
+        { 187, 197, 231, 1 }, },
+      { { 212, 84, 239, 0 },
+        { 69, 199, 124, 1 },
+        { 123, 149, 21, 1 },
+        { 159, 113, 209, 0 }, },
+      { { 212, 251, 220, 0 },
+        { 118, 13, 127, 1 },
+        { 29, 239, 149, 1 },
+        { 255, 88, 55, 0 }, },
+      { { 220, 232, 84, 0 },
+        { 214, 13, 30, 0 },
+        { 21, 11, 157, 1 },
+        { 60, 88, 53, 1 }, },
+      { { 213, 177, 150, 0 },
+        { 22, 19, 127, 0 },
+        { 52, 198, 213, 1 },
+        { 127, 100, 52, 0 }, },
+      { { 209, 159, 7, 1 },
+        { 47, 91, 89, 0 },
+        { 240, 124, 197, 1 },
+        { 77, 109, 122, 0 }, },
+      { { 209, 93, 126, 1 },
+        { 93, 159, 89, 1 },
+        { 191, 93, 69, 1 },
+        { 205, 124, 221, 0 }, },
+      { { 217, 164, 134, 1 },
+        { 143, 19, 58, 0 },
+        { 176, 146, 205, 1 },
+        { 46, 100, 120, 1 }, },
+      { { 221, 9, 48, 1 },
+        { 156, 153, 13, 0 },
+        { 134, 72, 93, 1 },
+        { 88, 76, 156, 1 }, },
+      { { 217, 180, 57, 1 },
+        { 159, 209, 74, 1 },
+        { 206, 22, 205, 1 },
+        { 169, 69, 252, 1 }, },
+      { { 221, 171, 105, 1 },
+        { 174, 221, 15, 1 },
+        { 203, 106, 221, 1 },
+        { 248, 93, 186, 1 }, },
+      { { 217, 203, 66, 0 },
+        { 230, 31, 9, 0 },
+        { 33, 105, 205, 1 },
+        { 72, 124, 51, 1 }, },
+      { { 210, 33, 13, 0 },
+        { 4, 65, 155, 1 },
+        { 88, 66, 37, 1 },
+        { 236, 193, 16, 0 }, },
+      { { 214, 73, 4, 0 },
+        { 68, 9, 157, 0 },
+        { 16, 73, 53, 1 },
+        { 92, 200, 17, 0 }, },
+      { { 210, 216, 219, 0 },
+        { 86, 79, 232, 1 },
+        { 109, 141, 165, 1 },
+        { 139, 249, 53, 0 }, },
+      { { 218, 63, 69, 1 },
+        { 173, 77, 219, 0 },
+        { 209, 126, 45, 1 },
+        { 109, 217, 90, 1 }, },
+      { { 218, 125, 218, 0 },
+        { 213, 15, 235, 1 },
+        { 45, 223, 45, 1 },
+        { 235, 248, 85, 1 }, },
+      { { 218, 211, 230, 0 },
+        { 230, 135, 249, 0 },
+        { 51, 229, 173, 1 },
+        { 79, 240, 179, 1 }, },
+      { { 211, 51, 189, 0 },
+        { 52, 209, 251, 1 },
+        { 94, 230, 101, 1 },
+        { 239, 197, 150, 0 }, },
+      { { 215, 225, 237, 1 },
+        { 78, 213, 191, 1 },
+        { 219, 195, 245, 1 },
+        { 254, 213, 185, 0 }, },
+      { { 219, 197, 122, 0 },
+        { 215, 151, 137, 1 },
+        { 47, 81, 237, 1 },
+        { 200, 244, 245, 1 }, },
+      { { 224, 128, 59, 1 },
+        { 26, 227, 8, 1 },
+        { 238, 0, 131, 1 },
+        { 136, 99, 172, 0 }, },
+      { { 224, 207, 105, 1 },
+        { 107, 237, 9, 1 },
+        { 203, 121, 131, 1 },
+        { 200, 91, 235, 0 }, },
+      { { 228, 71, 48, 1 },
+        { 121, 161, 13, 0 },
+        { 134, 113, 19, 1 },
+        { 88, 66, 207, 0 }, },
+      { { 232, 29, 86, 1 },
+        { 153, 47, 89, 0 },
+        { 181, 92, 11, 1 },
+        { 77, 122, 76, 1 }, },
+      { { 232, 243, 72, 1 },
+        { 234, 37, 75, 1 },
+        { 137, 103, 139, 1 },
+        { 233, 82, 43, 1 }, },
+      { { 232, 254, 175, 0 },
+        { 227, 235, 122, 1 },
+        { 122, 191, 139, 1 },
+        { 175, 107, 227, 1 }, },
+      { { 236, 231, 159, 0 },
+        { 243, 99, 63, 1 },
+        { 124, 243, 155, 1 },
+        { 254, 99, 103, 1 }, },
+      { { 225, 60, 212, 1 },
+        { 25, 61, 122, 0 },
+        { 149, 158, 67, 1 },
+        { 47, 94, 76, 0 }, },
+      { { 229, 204, 106, 1 },
+        { 75, 191, 12, 1 },
+        { 171, 25, 211, 1 },
+        { 152, 126, 233, 0 }, },
+      { { 233, 175, 154, 0 },
+        { 179, 59, 43, 1 },
+        { 44, 250, 203, 1 },
+        { 234, 110, 102, 1 }, },
+      { { 227, 0, 237, 0 },
+        { 0, 245, 184, 1 },
+        { 91, 128, 99, 1 },
+        { 142, 215, 128, 0 }, },
+      { { 231, 177, 14, 0 },
+        { 2, 51, 223, 1 },
+        { 56, 70, 243, 1 },
+        { 253, 230, 32, 0 }, },
+      { { 227, 192, 126, 0 },
+        { 82, 183, 152, 1 },
+        { 63, 1, 227, 1 },
+        { 140, 246, 165, 0 }, },
+      { { 235, 140, 163, 0 },
+        { 131, 251, 168, 0 },
+        { 98, 152, 235, 1 },
+        { 10, 239, 224, 1 }, },
+      { { 235, 159, 109, 1 },
+        { 171, 253, 217, 1 },
+        { 219, 124, 235, 1 },
+        { 205, 223, 234, 1 }, },
+      { { 239, 65, 11, 0 },
+        { 192, 115, 141, 1 },
+        { 104, 65, 123, 1 },
+        { 216, 231, 1, 1 }, },
+      { { 239, 194, 195, 0 },
+        { 226, 119, 172, 0 },
+        { 97, 161, 251, 1 },
+        { 26, 247, 35, 1 }, },
+      { { 240, 168, 32, 0 },
+        { 6, 169, 10, 0 },
+        { 2, 10, 135, 1 },
+        { 40, 74, 176, 0 }, },
+      { { 244, 25, 211, 0 },
+        { 20, 111, 109, 0 },
+        { 101, 204, 23, 1 },
+        { 91, 123, 20, 0 }, },
+      { { 244, 133, 191, 1 },
+        { 31, 227, 61, 1 },
+        { 254, 208, 151, 1 },
+        { 222, 99, 252, 0 }, },
+      { { 240, 106, 204, 0 },
+        { 100, 45, 58, 1 },
+        { 25, 171, 7, 1 },
+        { 174, 90, 19, 0 }, },
+      { { 240, 123, 107, 1 },
+        { 108, 239, 75, 1 },
+        { 235, 111, 7, 1 },
+        { 233, 123, 155, 0 }, },
+      { { 244, 251, 170, 0 },
+        { 102, 171, 111, 1 },
+        { 42, 239, 151, 1 },
+        { 251, 106, 179, 0 }, },
+      { { 252, 198, 47, 0 },
+        { 231, 227, 28, 1 },
+        { 122, 49, 159, 1 },
+        { 156, 99, 243, 1 }, },
+      { { 248, 111, 16, 0 },
+        { 245, 41, 11, 0 },
+        { 4, 123, 15, 1 },
+        { 104, 74, 87, 1 }, },
+      { { 252, 127, 120, 1 },
+        { 253, 173, 79, 1 },
+        { 143, 127, 31, 1 },
+        { 249, 90, 223, 1 }, },
+      { { 241, 171, 217, 0 },
+        { 54, 125, 43, 1 },
+        { 77, 234, 199, 1 },
+        { 234, 95, 54, 0 }, },
+      { { 245, 81, 143, 1 },
+        { 76, 115, 125, 1 },
+        { 248, 197, 87, 1 },
+        { 223, 103, 25, 0 }, },
+      { { 241, 248, 166, 1 },
+        { 78, 187, 122, 0 },
+        { 178, 143, 199, 1 },
+        { 47, 110, 185, 0 }, },
+      { { 241, 86, 24, 0 },
+        { 117, 49, 72, 1 },
+        { 12, 53, 71, 1 },
+        { 137, 70, 87, 0 }, },
+      { { 253, 132, 196, 0 },
+        { 135, 53, 60, 0 },
+        { 17, 144, 223, 1 },
+        { 30, 86, 112, 1 }, },
+      { { 249, 141, 114, 1 },
+        { 159, 191, 9, 0 },
+        { 167, 88, 207, 1 },
+        { 72, 126, 252, 1 }, },
+      { { 253, 15, 85, 1 },
+        { 189, 125, 29, 0 },
+        { 213, 120, 95, 1 },
+        { 92, 95, 94, 1 }, },
+      { { 242, 156, 111, 1 },
+        { 15, 239, 216, 1 },
+        { 251, 28, 167, 1 },
+        { 141, 251, 248, 0 }, },
+      { { 246, 136, 24, 1 },
+        { 30, 41, 140, 1 },
+        { 140, 8, 183, 1 },
+        { 152, 202, 60, 0 }, },
+      { { 246, 7, 197, 0 },
+        { 37, 101, 189, 0 },
+        { 81, 240, 55, 1 },
+        { 94, 211, 82, 0 }, },
+      { { 242, 65, 215, 0 },
+        { 84, 103, 185, 0 },
+        { 117, 193, 39, 1 },
+        { 78, 243, 21, 0 }, },
+      { { 246, 241, 27, 0 },
+        { 86, 99, 207, 1 },
+        { 108, 71, 183, 1 },
+        { 249, 227, 53, 0 }, },
+      { { 242, 230, 203, 1 },
+        { 111, 103, 170, 1 },
+        { 233, 179, 167, 1 },
+        { 170, 243, 123, 0 }, },
+      { { 250, 213, 32, 1 },
+        { 207, 161, 201, 0 },
+        { 130, 85, 175, 1 },
+        { 73, 194, 249, 1 }, },
+      { { 254, 67, 233, 0 },
+        { 228, 229, 173, 1 },
+        { 75, 225, 63, 1 },
+        { 218, 211, 147, 1 }, },
+      { { 243, 251, 142, 0 },
+        { 102, 59, 251, 1 },
+        { 56, 239, 231, 1 },
+        { 239, 238, 51, 0 }, },
+      { { 255, 187, 218, 0 },
+        { 182, 63, 239, 1 },
+        { 45, 238, 255, 1 },
+        { 251, 254, 54, 1 }, },
+      { { 251, 201, 14, 1 },
+        { 206, 59, 153, 1 },
+        { 184, 73, 239, 1 },
+        { 204, 238, 57, 1 }, }, };
+
+static unsigned char DICT_6X6_1000_BYTES[][4][5] =
+    { { { 30, 61, 216, 42, 6 },
+        { 227, 186, 70, 49, 9 },
+        { 101, 65, 187, 199, 8 },
+        { 152, 198, 37, 220, 7 }, },
+      { { 14, 251, 163, 137, 1 },
+        { 215, 230, 24, 5, 14 },
+        { 137, 28, 93, 247, 0 },
+        { 122, 1, 134, 126, 11 }, },
+      { { 21, 144, 126, 172, 13 },
+        { 236, 105, 87, 80, 6 },
+        { 179, 87, 224, 154, 8 },
+        { 96, 174, 169, 99, 7 }, },
+      { { 201, 27, 48, 105, 14 },
+        { 66, 50, 75, 222, 12 },
+        { 121, 96, 205, 137, 3 },
+        { 55, 189, 36, 196, 2 }, },
+      { { 214, 7, 214, 225, 5 },
+        { 164, 203, 74, 191, 2 },
+        { 168, 118, 190, 6, 11 },
+        { 79, 213, 45, 50, 5 }, },
+      { { 216, 232, 224, 230, 8 },
+        { 43, 140, 19, 138, 15 },
+        { 22, 112, 113, 113, 11 },
+        { 245, 28, 131, 29, 4 }, },
+      { { 66, 104, 180, 31, 5 },
+        { 13, 165, 192, 149, 13 },
+        { 175, 130, 209, 100, 2 },
+        { 186, 144, 58, 91, 0 }, },
+      { { 136, 165, 15, 41, 10 },
+        { 19, 115, 23, 38, 0 },
+        { 89, 79, 10, 81, 1 },
+        { 6, 78, 140, 236, 8 }, },
+      { { 48, 125, 82, 79, 13 },
+        { 109, 110, 97, 60, 9 },
+        { 191, 36, 171, 224, 12 },
+        { 147, 200, 103, 107, 6 }, },
+      { { 60, 47, 52, 179, 12 },
+        { 131, 11, 235, 52, 15 },
+        { 60, 210, 207, 67, 12 },
+        { 242, 205, 125, 12, 1 }, },
+      { { 69, 223, 199, 78, 3 },
+        { 252, 247, 24, 232, 9 },
+        { 199, 46, 63, 186, 2 },
+        { 145, 113, 142, 243, 15 }, },
+      { { 72, 216, 91, 37, 7 },
+        { 126, 84, 86, 148, 8 },
+        { 234, 77, 161, 177, 2 },
+        { 18, 150, 162, 167, 14 }, },
+      { { 113, 5, 88, 252, 6 },
+        { 40, 58, 230, 248, 2 },
+        { 99, 241, 170, 8, 14 },
+        { 65, 246, 117, 193, 4 }, },
+      { { 134, 220, 250, 208, 7 },
+        { 228, 212, 212, 59, 14 },
+        { 224, 181, 243, 182, 1 },
+        { 125, 194, 178, 178, 7 }, },
+      { { 141, 114, 169, 63, 6 },
+        { 219, 180, 206, 70, 5 },
+        { 111, 201, 84, 235, 1 },
+        { 166, 39, 50, 221, 11 }, },
+      { { 162, 184, 157, 205, 14 },
+        { 89, 177, 117, 31, 10 },
+        { 123, 59, 145, 212, 5 },
+        { 95, 138, 232, 217, 10 }, },
+      { { 9, 253, 30, 156, 4 },
+        { 75, 103, 212, 112, 10 },
+        { 35, 151, 139, 249, 0 },
+        { 80, 226, 190, 109, 2 }, },
+      { { 21, 77, 189, 24, 15 },
+        { 148, 191, 197, 112, 12 },
+        { 241, 139, 219, 42, 8 },
+        { 48, 234, 63, 210, 9 }, },
+      { { 48, 10, 49, 14, 2 },
+        { 24, 56, 40, 16, 13 },
+        { 71, 8, 197, 0, 12 },
+        { 176, 129, 65, 193, 8 }, },
+      { { 72, 7, 239, 175, 13 },
+        { 62, 227, 79, 164, 7 },
+        { 191, 95, 126, 1, 2 },
+        { 226, 95, 44, 119, 12 }, },
+      { { 86, 223, 17, 219, 6 },
+        { 208, 62, 216, 189, 11 },
+        { 109, 184, 143, 182, 10 },
+        { 219, 209, 183, 192, 11 }, },
+      { { 102, 136, 50, 116, 12 },
+        { 136, 64, 243, 153, 12 },
+        { 50, 228, 193, 22, 6 },
+        { 57, 156, 240, 33, 1 }, },
+      { { 118, 232, 203, 120, 1 },
+        { 181, 236, 182, 137, 8 },
+        { 129, 237, 49, 118, 14 },
+        { 25, 22, 211, 122, 13 }, },
+      { { 154, 83, 217, 207, 3 },
+        { 126, 190, 12, 31, 3 },
+        { 207, 57, 188, 165, 9 },
+        { 207, 131, 7, 215, 14 }, },
+      { { 169, 203, 132, 2, 4 },
+        { 2, 135, 120, 66, 9 },
+        { 36, 2, 29, 57, 5 },
+        { 148, 33, 238, 20, 0 }, },
+      { { 198, 117, 73, 73, 0 },
+        { 241, 38, 4, 175, 0 },
+        { 9, 41, 42, 230, 3 },
+        { 15, 82, 6, 72, 15 }, },
+      { { 193, 210, 136, 148, 1 },
+        { 76, 132, 156, 194, 2 },
+        { 130, 145, 20, 184, 3 },
+        { 68, 51, 146, 19, 2 }, },
+      { { 231, 72, 8, 82, 11 },
+        { 132, 20, 165, 203, 9 },
+        { 212, 161, 1, 46, 7 },
+        { 157, 58, 82, 130, 1 }, },
+      { { 234, 47, 202, 132, 8 },
+        { 43, 194, 45, 163, 10 },
+        { 18, 21, 63, 69, 7 },
+        { 92, 91, 68, 61, 4 }, },
+      { { 233, 99, 183, 123, 1 },
+        { 23, 231, 170, 222, 5 },
+        { 141, 238, 220, 105, 7 },
+        { 167, 181, 94, 126, 8 }, },
+      { { 250, 54, 101, 42, 15 },
+        { 119, 57, 107, 163, 5 },
+        { 245, 74, 102, 197, 15 },
+        { 172, 93, 105, 206, 14 }, },
+      { { 6, 91, 255, 123, 13 },
+        { 244, 231, 207, 29, 13 },
+        { 189, 239, 253, 166, 0 },
+        { 187, 143, 62, 114, 15 }, },
+      { { 5, 65, 215, 45, 6 },
+        { 184, 247, 66, 84, 0 },
+        { 107, 78, 184, 42, 0 },
+        { 2, 164, 46, 241, 13 }, },
+      { { 12, 247, 36, 106, 2 },
+        { 195, 55, 26, 40, 5 },
+        { 69, 98, 78, 243, 0 },
+        { 161, 69, 142, 204, 3 }, },
+      { { 19, 56, 163, 158, 11 },
+        { 93, 248, 129, 65, 15 },
+        { 215, 156, 81, 204, 8 },
+        { 248, 40, 17, 251, 10 }, },
+      { { 21, 168, 147, 231, 4 },
+        { 153, 200, 82, 92, 11 },
+        { 46, 124, 145, 90, 8 },
+        { 211, 164, 161, 57, 9 }, },
+      { { 58, 65, 126, 233, 14 },
+        { 34, 127, 103, 29, 6 },
+        { 121, 119, 232, 37, 12 },
+        { 107, 142, 111, 228, 4 }, },
+      { { 79, 17, 226, 108, 0 },
+        { 234, 226, 2, 201, 4 },
+        { 3, 100, 120, 143, 2 },
+        { 41, 52, 4, 117, 7 }, },
+      { { 83, 13, 182, 210, 0 },
+        { 0, 203, 128, 249, 15 },
+        { 4, 182, 219, 12, 10 },
+        { 249, 240, 29, 48, 0 }, },
+      { { 88, 155, 250, 227, 4 },
+        { 98, 202, 94, 156, 15 },
+        { 44, 117, 253, 145, 10 },
+        { 243, 151, 165, 52, 6 }, },
+      { { 100, 9, 232, 160, 11 },
+        { 164, 146, 39, 128, 14 },
+        { 208, 81, 121, 2, 6 },
+        { 112, 30, 68, 146, 5 }, },
+      { { 96, 83, 122, 137, 1 },
+        { 100, 102, 44, 148, 6 },
+        { 137, 21, 236, 160, 6 },
+        { 98, 147, 70, 98, 6 }, },
+      { { 97, 89, 6, 155, 10 },
+        { 64, 119, 161, 196, 11 },
+        { 93, 150, 9, 168, 6 },
+        { 210, 56, 94, 224, 2 }, },
+      { { 107, 255, 120, 215, 11 },
+        { 111, 22, 189, 253, 15 },
+        { 222, 177, 239, 253, 6 },
+        { 251, 251, 214, 143, 6 }, },
+      { { 112, 173, 150, 164, 15 },
+        { 13, 219, 115, 176, 10 },
+        { 242, 86, 155, 80, 14 },
+        { 80, 220, 237, 187, 0 }, },
+      { { 117, 132, 111, 113, 10 },
+        { 176, 89, 183, 236, 4 },
+        { 88, 239, 98, 26, 14 },
+        { 35, 126, 217, 160, 13 }, },
+      { { 122, 149, 25, 47, 12 },
+        { 90, 42, 119, 181, 1 },
+        { 63, 73, 138, 149, 14 },
+        { 138, 222, 229, 69, 10 }, },
+      { { 134, 9, 118, 10, 10 },
+        { 160, 115, 1, 19, 13 },
+        { 85, 6, 233, 6, 1 },
+        { 188, 136, 12, 224, 5 }, },
+      { { 138, 45, 68, 195, 15 },
+        { 39, 19, 65, 47, 11 },
+        { 252, 50, 43, 69, 1 },
+        { 223, 72, 44, 142, 4 }, },
+      { { 147, 235, 120, 177, 4 },
+        { 33, 14, 222, 87, 14 },
+        { 40, 209, 237, 124, 9 },
+        { 126, 167, 183, 8, 4 }, },
+      { { 152, 141, 168, 77, 4 },
+        { 10, 170, 84, 46, 12 },
+        { 43, 33, 91, 17, 9 },
+        { 55, 66, 165, 85, 0 }, },
+      { { 158, 222, 43, 60, 8 },
+        { 218, 108, 159, 35, 12 },
+        { 19, 205, 71, 183, 9 },
+        { 60, 79, 147, 101, 11 }, },
+      { { 165, 41, 224, 123, 8 },
+        { 161, 162, 163, 78, 13 },
+        { 29, 224, 121, 74, 5 },
+        { 183, 44, 84, 88, 5 }, },
+      { { 181, 147, 184, 85, 15 },
+        { 204, 154, 253, 94, 4 },
+        { 250, 161, 220, 154, 13 },
+        { 39, 171, 245, 147, 3 }, },
+      { { 183, 248, 228, 38, 15 },
+        { 237, 157, 115, 67, 13 },
+        { 246, 66, 113, 254, 13 },
+        { 188, 44, 235, 155, 7 }, },
+      { { 188, 32, 82, 37, 14 },
+        { 171, 88, 99, 22, 0 },
+        { 122, 68, 160, 67, 13 },
+        { 6, 140, 97, 173, 5 }, },
+      { { 192, 68, 135, 118, 5 },
+        { 28, 197, 194, 170, 1 },
+        { 166, 238, 18, 32, 3 },
+        { 133, 84, 58, 51, 8 }, },
+      { { 196, 195, 36, 37, 9 },
+        { 140, 7, 27, 134, 4 },
+        { 154, 66, 76, 50, 3 },
+        { 38, 29, 142, 3, 1 }, },
+      { { 197, 169, 27, 216, 13 },
+        { 149, 98, 213, 218, 10 },
+        { 177, 189, 137, 90, 3 },
+        { 85, 186, 180, 106, 9 }, },
+      { { 206, 115, 230, 178, 12 },
+        { 227, 199, 203, 131, 7 },
+        { 52, 214, 124, 231, 3 },
+        { 236, 29, 62, 60, 7 }, },
+      { { 205, 12, 166, 39, 2 },
+        { 138, 209, 2, 230, 13 },
+        { 78, 70, 83, 11, 3 },
+        { 182, 116, 8, 181, 1 }, },
+      { { 201, 67, 93, 68, 13 },
+        { 62, 7, 77, 218, 0 },
+        { 178, 43, 172, 41, 3 },
+        { 5, 187, 46, 7, 12 }, },
+      { { 207, 190, 128, 243, 4 },
+        { 195, 128, 218, 239, 11 },
+        { 44, 240, 23, 223, 3 },
+        { 223, 117, 176, 28, 3 }, },
+      { { 229, 125, 21, 135, 7 },
+        { 221, 23, 96, 246, 11 },
+        { 238, 26, 139, 234, 7 },
+        { 214, 240, 110, 139, 11 }, },
+      { { 239, 198, 133, 142, 9 },
+        { 158, 165, 57, 227, 3 },
+        { 151, 26, 22, 63, 7 },
+        { 204, 121, 202, 87, 9 }, },
+      { { 247, 126, 243, 119, 2 },
+        { 249, 220, 170, 255, 13 },
+        { 78, 236, 247, 238, 15 },
+        { 191, 245, 83, 185, 15 }, },
+      { { 44, 228, 63, 37, 4 },
+        { 155, 69, 118, 52, 4 },
+        { 42, 79, 194, 115, 4 },
+        { 34, 198, 234, 45, 9 }, },
+      { { 43, 220, 255, 75, 3 },
+        { 118, 245, 52, 125, 13 },
+        { 205, 47, 243, 189, 4 },
+        { 187, 226, 202, 246, 14 }, },
+      { { 55, 199, 221, 189, 10 },
+        { 184, 191, 191, 117, 2 },
+        { 91, 219, 190, 62, 12 },
+        { 74, 239, 223, 209, 13 }, },
+      { { 161, 162, 84, 224, 15 },
+        { 37, 17, 123, 90, 2 },
+        { 240, 114, 164, 88, 5 },
+        { 69, 173, 232, 138, 4 }, },
+      { { 169, 130, 193, 187, 5 },
+        { 54, 160, 250, 70, 3 },
+        { 173, 216, 52, 25, 5 },
+        { 198, 37, 240, 86, 12 }, },
+      { { 216, 27, 73, 176, 8 },
+        { 114, 10, 143, 130, 10 },
+        { 16, 217, 45, 129, 11 },
+        { 84, 31, 21, 4, 14 }, },
+      { { 3, 88, 41, 248, 6 },
+        { 80, 52, 198, 73, 14 },
+        { 97, 249, 65, 172, 0 },
+        { 121, 38, 50, 192, 10 }, },
+      { { 7, 196, 9, 95, 12 },
+        { 152, 36, 213, 109, 1 },
+        { 63, 169, 2, 62, 0 },
+        { 139, 106, 178, 65, 9 }, },
+      { { 15, 226, 102, 23, 11 },
+        { 175, 85, 153, 69, 5 },
+        { 222, 134, 100, 127, 0 },
+        { 170, 41, 154, 175, 5 }, },
+      { { 20, 72, 54, 68, 1 },
+        { 140, 77, 0, 24, 12 },
+        { 130, 38, 193, 34, 8 },
+        { 49, 128, 11, 35, 1 }, },
+      { { 16, 173, 95, 251, 7 },
+        { 53, 123, 214, 60, 11 },
+        { 237, 255, 171, 80, 8 },
+        { 211, 198, 189, 234, 12 }, },
+      { { 18, 130, 149, 83, 15 },
+        { 20, 153, 217, 29, 1 },
+        { 252, 170, 148, 20, 8 },
+        { 139, 137, 185, 146, 8 }, },
+      { { 22, 225, 49, 132, 12 },
+        { 153, 14, 81, 17, 6 },
+        { 50, 24, 200, 118, 8 },
+        { 104, 136, 167, 9, 9 }, },
+      { { 24, 122, 73, 107, 0 },
+        { 115, 44, 14, 12, 9 },
+        { 13, 105, 37, 225, 8 },
+        { 147, 7, 3, 76, 14 }, },
+      { { 26, 232, 134, 17, 2 },
+        { 3, 221, 144, 5, 8 },
+        { 72, 134, 17, 117, 8 },
+        { 26, 0, 155, 188, 0 }, },
+      { { 25, 19, 174, 10, 1 },
+        { 70, 235, 12, 64, 5 },
+        { 133, 7, 92, 137, 8 },
+        { 160, 35, 13, 118, 2 }, },
+      { { 27, 103, 181, 161, 7 },
+        { 23, 159, 74, 117, 6 },
+        { 232, 90, 222, 109, 8 },
+        { 106, 229, 47, 158, 8 }, },
+      { { 37, 220, 149, 240, 11 },
+        { 212, 149, 179, 120, 10 },
+        { 208, 250, 147, 186, 4 },
+        { 81, 236, 218, 146, 11 }, },
+      { { 40, 137, 97, 247, 6 },
+        { 58, 18, 242, 12, 15 },
+        { 110, 248, 105, 17, 4 },
+        { 243, 4, 244, 133, 12 }, },
+      { { 51, 84, 20, 106, 10 },
+        { 64, 61, 35, 121, 1 },
+        { 85, 98, 130, 172, 12 },
+        { 137, 236, 75, 192, 2 }, },
+      { { 49, 193, 108, 31, 7 },
+        { 44, 63, 244, 68, 5 },
+        { 239, 131, 104, 56, 12 },
+        { 162, 34, 255, 195, 4 }, },
+      { { 51, 203, 24, 198, 6 },
+        { 8, 30, 124, 89, 11 },
+        { 102, 49, 141, 60, 12 },
+        { 217, 163, 231, 129, 0 }, },
+      { { 62, 207, 228, 144, 15 },
+        { 166, 159, 249, 33, 14 },
+        { 240, 146, 127, 55, 12 },
+        { 120, 73, 255, 150, 5 }, },
+      { { 70, 69, 24, 163, 15 },
+        { 132, 22, 71, 181, 3 },
+        { 252, 81, 138, 38, 2 },
+        { 202, 222, 38, 130, 1 }, },
+      { { 68, 186, 112, 182, 7 },
+        { 237, 16, 218, 144, 15 },
+        { 230, 208, 229, 210, 2 },
+        { 240, 149, 176, 139, 7 }, },
+      { { 65, 156, 98, 62, 8 },
+        { 104, 96, 147, 224, 13 },
+        { 23, 196, 99, 152, 2 },
+        { 176, 124, 144, 97, 6 }, },
+      { { 72, 209, 145, 74, 1 },
+        { 86, 166, 16, 152, 1 },
+        { 133, 40, 152, 177, 2 },
+        { 129, 144, 134, 86, 10 }, },
+      { { 84, 244, 153, 246, 13 },
+        { 221, 140, 215, 184, 3 },
+        { 182, 249, 146, 242, 10 },
+        { 193, 222, 179, 27, 11 }, },
+      { { 87, 90, 156, 129, 3 },
+        { 196, 157, 12, 213, 10 },
+        { 200, 19, 149, 174, 10 },
+        { 90, 179, 11, 146, 3 }, },
+      { { 85, 131, 85, 178, 12 },
+        { 176, 11, 219, 208, 3 },
+        { 52, 218, 172, 26, 10 },
+        { 192, 189, 189, 0, 13 }, },
+      { { 87, 183, 118, 16, 15 },
+        { 229, 91, 217, 241, 4 },
+        { 240, 134, 238, 222, 10 },
+        { 40, 249, 189, 170, 7 }, },
+      { { 92, 52, 54, 254, 4 },
+        { 203, 105, 194, 184, 7 },
+        { 39, 246, 194, 195, 10 },
+        { 225, 212, 57, 109, 3 }, },
+      { { 92, 72, 252, 119, 14 },
+        { 170, 157, 199, 156, 13 },
+        { 126, 227, 241, 35, 10 },
+        { 179, 158, 59, 149, 5 }, },
+      { { 94, 110, 239, 64, 2 },
+        { 179, 221, 12, 169, 12 },
+        { 64, 47, 119, 103, 10 },
+        { 57, 83, 11, 188, 13 }, },
+      { { 95, 35, 59, 111, 15 },
+        { 159, 122, 79, 221, 5 },
+        { 255, 109, 204, 79, 10 },
+        { 171, 191, 37, 239, 9 }, },
+      { { 91, 116, 42, 99, 2 },
+        { 67, 92, 6, 237, 5 },
+        { 76, 101, 66, 237, 10 },
+        { 171, 118, 3, 172, 2 }, },
+      { { 101, 15, 163, 58, 14 },
+        { 144, 242, 235, 224, 13 },
+        { 117, 204, 95, 10, 6 },
+        { 176, 125, 116, 240, 9 }, },
+      { { 101, 211, 23, 92, 12 },
+        { 216, 103, 249, 216, 0 },
+        { 51, 174, 140, 186, 6 },
+        { 1, 185, 254, 97, 11 }, },
+      { { 106, 156, 36, 90, 14 },
+        { 66, 49, 241, 169, 13 },
+        { 117, 162, 67, 149, 6 },
+        { 185, 88, 248, 196, 2 }, },
+      { { 105, 197, 243, 4, 2 },
+        { 58, 214, 48, 240, 4 },
+        { 66, 12, 250, 57, 6 },
+        { 32, 240, 198, 181, 12 }, },
+      { { 105, 210, 72, 78, 10 },
+        { 106, 52, 61, 200, 1 },
+        { 87, 33, 36, 185, 6 },
+        { 129, 59, 194, 197, 6 }, },
+      { { 116, 121, 226, 222, 6 },
+        { 233, 254, 224, 136, 15 },
+        { 103, 180, 121, 226, 14 },
+        { 241, 16, 119, 249, 7 }, },
+      { { 114, 207, 35, 234, 11 },
+        { 20, 126, 59, 169, 15 },
+        { 213, 124, 79, 52, 14 },
+        { 249, 93, 199, 226, 8 }, },
+      { { 119, 177, 220, 65, 4 },
+        { 225, 139, 116, 221, 0 },
+        { 40, 35, 184, 222, 14 },
+        { 11, 178, 237, 24, 7 }, },
+      { { 126, 12, 7, 33, 7 },
+        { 150, 89, 98, 165, 8 },
+        { 232, 78, 3, 7, 14 },
+        { 26, 84, 105, 166, 9 }, },
+      { { 122, 105, 112, 100, 7 },
+        { 47, 30, 98, 153, 12 },
+        { 226, 96, 233, 101, 14 },
+        { 57, 148, 103, 143, 4 }, },
+      { { 120, 178, 216, 112, 7 },
+        { 103, 152, 254, 152, 0 },
+        { 224, 225, 180, 209, 14 },
+        { 1, 151, 241, 158, 6 }, },
+      { { 121, 197, 133, 121, 4 },
+        { 18, 175, 242, 236, 0 },
+        { 41, 234, 26, 57, 14 },
+        { 3, 116, 255, 84, 8 }, },
+      { { 134, 111, 89, 252, 6 },
+        { 185, 54, 206, 59, 10 },
+        { 99, 249, 175, 102, 1 },
+        { 93, 199, 54, 201, 13 }, },
+      { { 130, 246, 114, 127, 5 },
+        { 109, 100, 218, 63, 5 },
+        { 175, 228, 230, 244, 1 },
+        { 175, 197, 178, 107, 6 }, },
+      { { 133, 78, 47, 65, 4 },
+        { 144, 69, 76, 110, 12 },
+        { 40, 47, 71, 42, 1 },
+        { 55, 99, 42, 32, 9 }, },
+      { { 154, 17, 133, 147, 4 },
+        { 82, 139, 192, 7, 3 },
+        { 44, 154, 24, 133, 9 },
+        { 206, 0, 61, 20, 10 }, },
+      { { 156, 113, 96, 201, 7 },
+        { 231, 62, 64, 14, 6 },
+        { 233, 48, 104, 227, 9 },
+        { 103, 0, 39, 206, 7 }, },
+      { { 157, 209, 148, 253, 8 },
+        { 202, 175, 147, 94, 2 },
+        { 27, 242, 152, 187, 9 },
+        { 71, 172, 159, 85, 3 }, },
+      { { 162, 30, 18, 227, 8 },
+        { 64, 64, 43, 63, 11 },
+        { 28, 116, 135, 132, 5 },
+        { 223, 205, 64, 32, 2 }, },
+      { { 174, 112, 28, 130, 12 },
+        { 195, 5, 101, 19, 3 },
+        { 52, 19, 128, 231, 5 },
+        { 204, 138, 106, 12, 3 }, },
+      { { 173, 1, 33, 156, 1 },
+        { 158, 34, 160, 66, 6 },
+        { 131, 152, 72, 11, 5 },
+        { 100, 32, 84, 71, 9 }, },
+      { { 176, 53, 31, 158, 14 },
+        { 89, 123, 229, 50, 3 },
+        { 119, 159, 138, 192, 13 },
+        { 196, 202, 125, 233, 10 }, },
+      { { 182, 74, 216, 13, 4 },
+        { 168, 172, 108, 23, 8 },
+        { 43, 1, 181, 38, 13 },
+        { 30, 131, 99, 81, 5 }, },
+      { { 181, 55, 49, 75, 4 },
+        { 209, 42, 104, 126, 5 },
+        { 45, 40, 206, 202, 13 },
+        { 167, 225, 101, 72, 11 }, },
+      { { 190, 170, 199, 227, 11 },
+        { 183, 217, 59, 15, 11 },
+        { 220, 126, 53, 87, 13 },
+        { 223, 13, 201, 190, 13 }, },
+      { { 187, 104, 61, 188, 15 },
+        { 31, 61, 231, 83, 14 },
+        { 243, 219, 193, 109, 13 },
+        { 124, 174, 123, 207, 8 }, },
+      { { 198, 114, 247, 44, 1 },
+        { 253, 229, 10, 147, 4 },
+        { 131, 78, 244, 230, 3 },
+        { 44, 149, 10, 123, 15 }, },
+      { { 193, 231, 77, 186, 11 },
+        { 53, 55, 159, 226, 3 },
+        { 213, 219, 46, 120, 3 },
+        { 196, 127, 158, 202, 12 }, },
+      { { 203, 85, 238, 89, 13 },
+        { 102, 231, 197, 239, 4 },
+        { 185, 167, 122, 173, 3 },
+        { 47, 122, 62, 118, 6 }, },
+      { { 203, 160, 83, 114, 4 },
+        { 51, 64, 210, 219, 1 },
+        { 36, 236, 160, 93, 3 },
+        { 141, 180, 176, 44, 12 }, },
+      { { 208, 9, 15, 207, 1 },
+        { 28, 107, 4, 142, 11 },
+        { 143, 63, 9, 0, 11 },
+        { 215, 18, 13, 99, 8 }, },
+      { { 208, 108, 58, 213, 4 },
+        { 9, 76, 196, 190, 14 },
+        { 42, 181, 195, 96, 11 },
+        { 119, 210, 51, 41, 0 }, },
+      { { 211, 241, 32, 87, 4 },
+        { 73, 14, 208, 207, 5 },
+        { 46, 160, 72, 252, 11 },
+        { 175, 48, 183, 9, 2 }, },
+      { { 230, 227, 59, 26, 7 },
+        { 149, 118, 252, 147, 5 },
+        { 229, 141, 204, 118, 7 },
+        { 172, 147, 246, 234, 9 }, },
+      { { 227, 83, 62, 164, 10 },
+        { 72, 87, 47, 211, 6 },
+        { 82, 87, 204, 172, 7 },
+        { 108, 191, 78, 161, 2 }, },
+      { { 232, 6, 142, 177, 4 },
+        { 2, 193, 238, 166, 2 },
+        { 40, 215, 22, 1, 7 },
+        { 70, 87, 120, 52, 0 }, },
+      { { 236, 7, 192, 89, 7 },
+        { 166, 178, 232, 174, 0 },
+        { 233, 160, 62, 3, 7 },
+        { 7, 81, 116, 214, 5 }, },
+      { { 234, 243, 128, 61, 10 },
+        { 75, 182, 187, 135, 0 },
+        { 91, 192, 28, 245, 7 },
+        { 14, 29, 214, 221, 2 }, },
+      { { 246, 59, 39, 216, 8 },
+        { 209, 107, 169, 139, 14 },
+        { 17, 190, 77, 198, 15 },
+        { 125, 25, 93, 104, 11 }, },
+      { { 243, 7, 152, 55, 9 },
+        { 12, 138, 175, 247, 1 },
+        { 158, 193, 158, 12, 15 },
+        { 142, 255, 85, 19, 0 }, },
+      { { 254, 75, 186, 155, 9 },
+        { 134, 238, 173, 151, 15 },
+        { 157, 149, 221, 39, 15 },
+        { 254, 155, 87, 118, 1 }, },
+      { { 171, 165, 125, 134, 11 },
+        { 63, 19, 53, 115, 7 },
+        { 214, 27, 234, 93, 5 },
+        { 236, 234, 204, 143, 12 }, },
+      { { 192, 209, 98, 90, 11 },
+        { 100, 118, 145, 138, 5 },
+        { 213, 164, 104, 176, 3 },
+        { 165, 24, 150, 226, 6 }, },
+      { { 19, 206, 123, 174, 7 },
+        { 60, 124, 94, 113, 15 },
+        { 231, 93, 231, 60, 8 },
+        { 248, 231, 163, 227, 12 }, },
+      { { 78, 129, 253, 97, 7 },
+        { 182, 147, 86, 157, 4 },
+        { 232, 107, 248, 23, 2 },
+        { 43, 150, 172, 150, 13 }, },
+      { { 86, 224, 118, 50, 0 },
+        { 161, 77, 146, 145, 5 },
+        { 4, 198, 224, 118, 10 },
+        { 168, 148, 155, 40, 5 }, },
+      { { 106, 112, 138, 84, 0 },
+        { 75, 196, 164, 137, 0 },
+        { 2, 165, 16, 229, 6 },
+        { 9, 18, 82, 61, 2 }, },
+      { { 114, 168, 152, 161, 8 },
+        { 1, 136, 55, 149, 10 },
+        { 24, 81, 145, 84, 14 },
+        { 90, 158, 193, 24, 0 }, },
+      { { 129, 93, 66, 248, 0 },
+        { 96, 102, 130, 106, 10 },
+        { 1, 244, 43, 168, 1 },
+        { 85, 100, 22, 96, 6 }, },
+      { { 207, 76, 195, 213, 15 },
+        { 190, 212, 193, 239, 10 },
+        { 250, 188, 51, 47, 3 },
+        { 95, 120, 50, 183, 13 }, },
+      { { 214, 187, 101, 134, 4 },
+        { 249, 11, 88, 131, 15 },
+        { 38, 26, 109, 214, 11 },
+        { 252, 17, 173, 9, 15 }, },
+      { { 236, 211, 19, 163, 1 },
+        { 214, 70, 58, 150, 3 },
+        { 140, 92, 140, 179, 7 },
+        { 198, 149, 198, 38, 11 }, },
+      { { 245, 33, 245, 32, 7 },
+        { 181, 155, 98, 210, 4 },
+        { 224, 74, 248, 74, 15 },
+        { 36, 180, 109, 154, 13 }, },
+      { { 249, 31, 165, 223, 7 },
+        { 94, 187, 232, 238, 15 },
+        { 239, 186, 95, 137, 15 },
+        { 247, 113, 125, 215, 10 }, },
+      { { 0, 36, 244, 122, 7 },
+        { 37, 177, 194, 56, 5 },
+        { 229, 226, 242, 64, 0 },
+        { 161, 196, 56, 218, 4 }, },
+      { { 0, 8, 77, 136, 2 },
+        { 48, 49, 4, 0, 10 },
+        { 65, 27, 33, 0, 0 },
+        { 80, 2, 8, 192, 12 }, },
+      { { 4, 60, 194, 242, 9 },
+        { 229, 192, 131, 40, 11 },
+        { 148, 244, 51, 194, 0 },
+        { 209, 76, 16, 58, 7 }, },
+      { { 4, 123, 80, 33, 1 },
+        { 229, 6, 10, 20, 8 },
+        { 136, 64, 173, 226, 0 },
+        { 18, 133, 6, 10, 7 }, },
+      { { 6, 122, 228, 193, 13 },
+        { 229, 133, 73, 13, 14 },
+        { 184, 50, 117, 230, 0 },
+        { 123, 9, 42, 26, 7 }, },
+      { { 0, 170, 150, 138, 3 },
+        { 5, 241, 24, 16, 11 },
+        { 197, 22, 149, 80, 0 },
+        { 208, 129, 136, 250, 0 }, },
+      { { 4, 209, 56, 233, 4 },
+        { 192, 38, 86, 28, 6 },
+        { 41, 113, 200, 178, 0 },
+        { 99, 134, 166, 64, 3 }, },
+      { { 5, 16, 168, 13, 10 },
+        { 200, 176, 5, 68, 4 },
+        { 91, 1, 80, 138, 0 },
+        { 34, 42, 0, 209, 3 }, },
+      { { 1, 64, 176, 0, 7 },
+        { 4, 148, 64, 80, 4 },
+        { 224, 0, 208, 40, 0 },
+        { 32, 160, 34, 146, 0 }, },
+      { { 1, 157, 156, 238, 1 },
+        { 76, 163, 22, 120, 11 },
+        { 135, 115, 155, 152, 0 },
+        { 209, 230, 140, 83, 2 }, },
+      { { 8, 16, 87, 227, 11 },
+        { 118, 81, 3, 28, 3 },
+        { 220, 126, 160, 129, 0 },
+        { 195, 140, 8, 166, 14 }, },
+      { { 8, 107, 151, 182, 6 },
+        { 27, 215, 202, 16, 11 },
+        { 102, 222, 157, 97, 0 },
+        { 208, 133, 62, 189, 8 }, },
+      { { 14, 232, 184, 96, 10 },
+        { 131, 148, 23, 25, 12 },
+        { 80, 97, 209, 119, 0 },
+        { 57, 142, 130, 156, 1 }, },
+      { { 11, 108, 118, 185, 11 },
+        { 39, 117, 131, 117, 14 },
+        { 217, 214, 227, 109, 0 },
+        { 122, 236, 26, 238, 4 }, },
+      { { 15, 220, 185, 140, 11 },
+        { 222, 180, 21, 113, 14 },
+        { 211, 25, 211, 191, 0 },
+        { 120, 234, 130, 215, 11 }, },
+      { { 15, 202, 207, 58, 0 },
+        { 178, 229, 158, 65, 9 },
+        { 5, 207, 53, 63, 0 },
+        { 152, 39, 154, 116, 13 }, },
+      { { 20, 36, 159, 217, 8 },
+        { 145, 233, 133, 60, 2 },
+        { 25, 191, 146, 66, 8 },
+        { 67, 202, 25, 120, 9 }, },
+      { { 20, 7, 32, 31, 13 },
+        { 140, 42, 201, 36, 5 },
+        { 191, 128, 78, 2, 8 },
+        { 162, 73, 53, 67, 1 }, },
+      { { 21, 9, 16, 213, 7 },
+        { 140, 26, 192, 92, 10 },
+        { 234, 176, 137, 10, 8 },
+        { 83, 160, 53, 131, 1 }, },
+      { { 19, 92, 215, 48, 7 },
+        { 116, 221, 194, 113, 8 },
+        { 224, 206, 179, 172, 8 },
+        { 24, 228, 59, 178, 14 }, },
+      { { 17, 71, 154, 187, 6 },
+        { 0, 254, 206, 116, 3 },
+        { 109, 213, 158, 40, 8 },
+        { 194, 231, 55, 240, 0 }, },
+      { { 28, 185, 169, 35, 8 },
+        { 211, 138, 23, 4, 13 },
+        { 28, 73, 89, 211, 8 },
+        { 178, 14, 133, 28, 11 }, },
+      { { 28, 221, 7, 118, 6 },
+        { 218, 95, 210, 40, 9 },
+        { 102, 238, 11, 179, 8 },
+        { 145, 68, 191, 165, 11 }, },
+      { { 31, 46, 124, 36, 11 },
+        { 175, 25, 15, 113, 12 },
+        { 210, 67, 231, 79, 8 },
+        { 56, 239, 9, 143, 5 }, },
+      { { 25, 102, 66, 71, 7 },
+        { 47, 92, 72, 108, 1 },
+        { 238, 36, 38, 105, 8 },
+        { 131, 97, 35, 175, 4 }, },
+      { { 25, 87, 212, 200, 4 },
+        { 98, 175, 72, 120, 2 },
+        { 33, 50, 190, 169, 8 },
+        { 65, 225, 47, 84, 6 }, },
+      { { 31, 168, 244, 240, 4 },
+        { 163, 137, 210, 89, 14 },
+        { 32, 242, 241, 95, 8 },
+        { 121, 164, 185, 28, 5 }, },
+      { { 27, 130, 70, 237, 8 },
+        { 42, 105, 27, 77, 2 },
+        { 27, 118, 36, 29, 8 },
+        { 75, 45, 137, 101, 4 }, },
+      { { 27, 174, 225, 15, 14 },
+        { 59, 184, 89, 101, 13 },
+        { 127, 8, 119, 93, 8 },
+        { 186, 105, 161, 221, 12 }, },
+      { { 34, 164, 182, 60, 10 },
+        { 9, 241, 179, 49, 4 },
+        { 83, 198, 210, 84, 4 },
+        { 40, 204, 216, 249, 0 }, },
+      { { 34, 191, 144, 18, 15 },
+        { 69, 146, 249, 49, 9 },
+        { 244, 128, 159, 212, 4 },
+        { 152, 201, 244, 154, 2 }, },
+      { { 35, 44, 21, 180, 0 },
+        { 25, 1, 162, 113, 10 },
+        { 2, 218, 131, 76, 4 },
+        { 88, 228, 88, 9, 8 }, },
+      { { 37, 90, 169, 102, 12 },
+        { 216, 132, 111, 72, 13 },
+        { 54, 105, 85, 170, 4 },
+        { 177, 47, 98, 17, 11 }, },
+      { { 39, 165, 175, 169, 7 },
+        { 149, 243, 118, 101, 6 },
+        { 233, 95, 90, 94, 4 },
+        { 106, 102, 236, 250, 9 }, },
+      { { 37, 244, 14, 66, 5 },
+        { 197, 69, 116, 104, 1 },
+        { 164, 39, 2, 250, 4 },
+        { 129, 98, 234, 42, 3 }, },
+      { { 40, 102, 85, 205, 14 },
+        { 59, 53, 105, 60, 2 },
+        { 123, 58, 166, 97, 4 },
+        { 67, 201, 106, 205, 12 }, },
+      { { 44, 66, 126, 14, 0 },
+        { 170, 101, 44, 16, 5 },
+        { 7, 7, 228, 35, 4 },
+        { 160, 131, 74, 101, 5 }, },
+      { { 42, 185, 124, 189, 0 },
+        { 107, 35, 182, 21, 14 },
+        { 11, 211, 233, 213, 4 },
+        { 122, 134, 220, 77, 6 }, },
+      { { 41, 70, 225, 210, 3 },
+        { 54, 148, 168, 104, 7 },
+        { 196, 184, 118, 41, 4 },
+        { 225, 97, 82, 150, 12 }, },
+      { { 45, 166, 40, 65, 0 },
+        { 131, 0, 60, 108, 4 },
+        { 8, 33, 70, 91, 4 },
+        { 35, 99, 192, 12, 1 }, },
+      { { 43, 251, 32, 154, 6 },
+        { 67, 54, 248, 65, 15 },
+        { 101, 144, 77, 253, 4 },
+        { 248, 33, 246, 204, 2 }, },
+      { { 54, 140, 214, 107, 12 },
+        { 160, 233, 115, 61, 9 },
+        { 61, 102, 179, 22, 12 },
+        { 155, 204, 233, 112, 5 }, },
+      { { 52, 135, 119, 124, 7 },
+        { 188, 123, 250, 56, 4 },
+        { 227, 238, 238, 18, 12 },
+        { 33, 197, 253, 227, 13 }, },
+      { { 52, 221, 235, 132, 0 },
+        { 248, 206, 52, 32, 14 },
+        { 2, 29, 123, 178, 12 },
+        { 112, 66, 199, 49, 15 }, },
+      { { 55, 145, 247, 111, 1 },
+        { 252, 235, 50, 93, 5 },
+        { 143, 110, 248, 158, 12 },
+        { 171, 164, 205, 115, 15 }, },
+      { { 58, 34, 142, 23, 5 },
+        { 15, 201, 236, 5, 1 },
+        { 174, 135, 20, 69, 12 },
+        { 138, 3, 121, 63, 0 }, },
+      { { 62, 19, 189, 64, 8 },
+        { 210, 139, 45, 25, 4 },
+        { 16, 43, 220, 135, 12 },
+        { 41, 139, 77, 20, 11 }, },
+      { { 60, 152, 67, 202, 2 },
+        { 242, 120, 48, 8, 11 },
+        { 69, 60, 33, 147, 12 },
+        { 209, 0, 193, 228, 15 }, },
+      { { 57, 88, 157, 23, 9 },
+        { 94, 141, 165, 84, 9 },
+        { 158, 139, 145, 169, 12 },
+        { 146, 170, 91, 23, 10 }, },
+      { { 57, 116, 218, 238, 11 },
+        { 111, 252, 39, 120, 3 },
+        { 215, 117, 178, 233, 12 },
+        { 193, 238, 67, 255, 6 }, },
+      { { 63, 109, 188, 115, 1 },
+        { 135, 143, 166, 125, 13 },
+        { 140, 227, 219, 111, 12 },
+        { 187, 230, 95, 30, 1 }, },
+      { { 61, 107, 192, 80, 12 },
+        { 163, 142, 233, 72, 8 },
+        { 48, 160, 61, 107, 12 },
+        { 17, 41, 119, 28, 5 }, },
+      { { 57, 171, 39, 73, 7 },
+        { 23, 123, 120, 76, 12 },
+        { 233, 46, 77, 89, 12 },
+        { 51, 33, 237, 238, 8 }, },
+      { { 70, 2, 78, 37, 14 },
+        { 168, 81, 79, 133, 0 },
+        { 122, 71, 36, 6, 2 },
+        { 10, 31, 40, 161, 5 }, },
+      { { 70, 130, 186, 11, 12 },
+        { 128, 224, 93, 149, 5 },
+        { 61, 5, 212, 22, 2 },
+        { 170, 155, 160, 112, 1 }, },
+      { { 66, 233, 205, 90, 14 },
+        { 49, 183, 213, 137, 9 },
+        { 117, 171, 57, 116, 2 },
+        { 153, 26, 190, 216, 12 }, },
+      { { 68, 201, 183, 179, 15 },
+        { 148, 215, 211, 148, 15 },
+        { 252, 222, 217, 50, 2 },
+        { 242, 156, 190, 178, 9 }, },
+      { { 64, 199, 212, 30, 9 },
+        { 44, 167, 153, 176, 1 },
+        { 151, 130, 190, 48, 2 },
+        { 128, 217, 158, 83, 4 }, },
+      { { 70, 210, 180, 204, 14 },
+        { 200, 181, 89, 153, 6 },
+        { 115, 50, 212, 182, 2 },
+        { 105, 153, 170, 209, 3 }, },
+      { { 67, 25, 83, 86, 11 },
+        { 124, 82, 129, 217, 9 },
+        { 214, 172, 169, 140, 2 },
+        { 153, 184, 20, 163, 14 }, },
+      { { 65, 34, 230, 221, 9 },
+        { 45, 225, 137, 204, 6 },
+        { 155, 182, 116, 72, 2 },
+        { 99, 57, 24, 123, 4 }, },
+      { { 71, 83, 165, 154, 11 },
+        { 212, 183, 137, 193, 7 },
+        { 213, 154, 92, 174, 2 },
+        { 232, 57, 30, 210, 11 }, },
+      { { 78, 30, 241, 224, 8 },
+        { 242, 128, 11, 185, 14 },
+        { 16, 120, 247, 135, 2 },
+        { 121, 221, 0, 20, 15 }, },
+      { { 78, 74, 192, 150, 0 },
+        { 170, 132, 136, 129, 11 },
+        { 6, 144, 53, 39, 2 },
+        { 216, 17, 18, 21, 5 }, },
+      { { 78, 95, 170, 6, 15 },
+        { 206, 214, 77, 161, 13 },
+        { 246, 5, 95, 167, 2 },
+        { 184, 91, 38, 183, 3 }, },
+      { { 74, 141, 50, 148, 3 },
+        { 14, 82, 144, 177, 14 },
+        { 194, 148, 203, 21, 2 },
+        { 120, 208, 148, 167, 0 }, },
+      { { 73, 21, 148, 179, 9 },
+        { 70, 131, 131, 244, 3 },
+        { 156, 210, 154, 137, 2 },
+        { 194, 252, 28, 22, 2 }, },
+      { { 77, 77, 219, 98, 1 },
+        { 182, 198, 6, 248, 9 },
+        { 132, 109, 187, 43, 2 },
+        { 145, 246, 6, 54, 13 }, },
+      { { 75, 167, 97, 232, 1 },
+        { 55, 34, 26, 233, 6 },
+        { 129, 120, 110, 93, 2 },
+        { 105, 117, 132, 78, 12 }, },
+      { { 73, 212, 131, 216, 14 },
+        { 82, 244, 209, 232, 2 },
+        { 113, 188, 18, 185, 2 },
+        { 65, 120, 178, 244, 10 }, },
+      { { 86, 41, 14, 246, 12 },
+        { 137, 75, 199, 137, 11 },
+        { 54, 247, 9, 70, 10 },
+        { 217, 30, 61, 41, 1 }, },
+      { { 83, 126, 213, 255, 12 },
+        { 121, 173, 203, 253, 11 },
+        { 63, 250, 183, 236, 10 },
+        { 219, 253, 59, 89, 14 }, },
+      { { 85, 245, 167, 175, 10 },
+        { 217, 255, 19, 228, 7 },
+        { 95, 94, 90, 250, 10 },
+        { 226, 124, 143, 249, 11 }, },
+      { { 85, 213, 234, 100, 15 },
+        { 236, 222, 87, 232, 4 },
+        { 242, 101, 122, 186, 10 },
+        { 33, 126, 167, 179, 7 }, },
+      { { 88, 27, 171, 29, 10 },
+        { 90, 250, 141, 132, 12 },
+        { 91, 141, 93, 129, 10 },
+        { 50, 27, 21, 245, 10 }, },
+      { { 94, 190, 146, 109, 13 },
+        { 207, 232, 91, 189, 8 },
+        { 187, 100, 151, 215, 10 },
+        { 27, 221, 161, 127, 3 }, },
+      { { 95, 16, 249, 155, 5 },
+        { 246, 168, 196, 213, 7 },
+        { 173, 153, 240, 143, 10 },
+        { 234, 178, 49, 86, 15 }, },
+      { { 93, 30, 223, 165, 12 },
+        { 250, 201, 79, 244, 10 },
+        { 58, 95, 183, 139, 10 },
+        { 82, 255, 41, 53, 15 }, },
+      { { 95, 113, 141, 240, 2 },
+        { 211, 159, 134, 201, 2 },
+        { 64, 251, 24, 239, 10 },
+        { 73, 54, 31, 156, 11 }, },
+      { { 93, 225, 30, 70, 8 },
+        { 139, 79, 21, 216, 1 },
+        { 22, 39, 136, 123, 10 },
+        { 129, 186, 143, 45, 1 }, },
+      { { 96, 51, 187, 36, 7 },
+        { 93, 210, 110, 144, 4 },
+        { 226, 77, 220, 192, 6 },
+        { 32, 151, 100, 187, 10 }, },
+      { { 100, 88, 26, 254, 1 },
+        { 204, 100, 166, 152, 11 },
+        { 135, 245, 129, 162, 6 },
+        { 209, 150, 82, 99, 3 }, },
+      { { 99, 200, 221, 167, 6 },
+        { 56, 149, 118, 213, 11 },
+        { 110, 91, 177, 60, 6 },
+        { 218, 182, 234, 145, 12 }, },
+      { { 97, 218, 61, 143, 13 },
+        { 92, 37, 125, 212, 15 },
+        { 191, 27, 197, 184, 6 },
+        { 242, 187, 234, 67, 10 }, },
+      { { 110, 58, 34, 175, 10 },
+        { 203, 112, 43, 133, 15 },
+        { 95, 84, 69, 199, 6 },
+        { 250, 29, 64, 237, 3 }, },
+      { { 110, 97, 5, 183, 1 },
+        { 159, 7, 162, 133, 3 },
+        { 142, 218, 8, 103, 6 },
+        { 202, 20, 94, 15, 9 }, },
+      { { 106, 137, 169, 232, 12 },
+        { 18, 162, 119, 137, 14 },
+        { 49, 121, 89, 21, 6 },
+        { 121, 30, 228, 84, 8 }, },
+      { { 106, 151, 34, 79, 5 },
+        { 78, 98, 120, 173, 5 },
+        { 175, 36, 78, 149, 6 },
+        { 171, 81, 228, 103, 2 }, },
+      { { 107, 18, 195, 128, 1 },
+        { 118, 192, 40, 193, 2 },
+        { 128, 28, 52, 141, 6 },
+        { 72, 49, 64, 54, 14 }, },
+      { { 107, 104, 75, 34, 10 },
+        { 51, 84, 39, 193, 9 },
+        { 84, 77, 33, 109, 6 },
+        { 152, 62, 66, 172, 12 }, },
+      { { 111, 148, 193, 87, 9 },
+        { 254, 128, 177, 237, 1 },
+        { 158, 168, 50, 159, 6 },
+        { 139, 120, 208, 23, 15 }, },
+      { { 109, 166, 254, 160, 13 },
+        { 167, 193, 127, 240, 6 },
+        { 176, 87, 246, 91, 6 },
+        { 96, 255, 232, 62, 5 }, },
+      { { 111, 234, 202, 69, 7 },
+        { 175, 212, 124, 205, 8 },
+        { 234, 37, 53, 127, 6 },
+        { 27, 51, 226, 191, 5 }, },
+      { { 112, 61, 56, 166, 0 },
+        { 73, 10, 38, 176, 15 },
+        { 6, 81, 203, 192, 14 },
+        { 240, 214, 69, 9, 2 }, },
+      { { 118, 108, 53, 231, 8 },
+        { 153, 13, 35, 189, 15 },
+        { 30, 122, 195, 102, 14 },
+        { 251, 220, 75, 9, 9 }, },
+      { { 112, 74, 13, 255, 6 },
+        { 24, 61, 238, 140, 11 },
+        { 111, 251, 5, 32, 14 },
+        { 211, 23, 123, 193, 8 }, },
+      { { 117, 120, 169, 200, 0 },
+        { 209, 172, 36, 200, 14 },
+        { 1, 57, 81, 234, 14 },
+        { 113, 50, 67, 88, 11 }, },
+      { { 113, 74, 112, 19, 8 },
+        { 32, 12, 169, 212, 13 },
+        { 28, 128, 229, 40, 14 },
+        { 178, 185, 83, 0, 4 }, },
+      { { 117, 127, 140, 187, 9 },
+        { 197, 175, 175, 228, 11 },
+        { 157, 211, 31, 234, 14 },
+        { 210, 127, 95, 90, 3 }, },
+      { { 124, 35, 104, 51, 1 },
+        { 167, 10, 174, 132, 5 },
+        { 140, 193, 108, 67, 14 },
+        { 162, 23, 85, 14, 5 }, },
+      { { 124, 181, 167, 211, 1 },
+        { 215, 203, 176, 172, 7 },
+        { 140, 190, 90, 211, 14 },
+        { 227, 80, 221, 62, 11 }, },
+      { { 124, 248, 44, 237, 14 },
+        { 203, 61, 119, 140, 14 },
+        { 123, 115, 65, 243, 14 },
+        { 115, 30, 235, 205, 3 }, },
+      { { 127, 36, 226, 52, 15 },
+        { 175, 216, 227, 225, 4 },
+        { 242, 196, 114, 79, 14 },
+        { 40, 124, 113, 191, 5 }, },
+      { { 127, 71, 41, 141, 8 },
+        { 154, 46, 45, 229, 6 },
+        { 27, 25, 78, 47, 14 },
+        { 106, 123, 71, 69, 9 }, },
+      { { 134, 216, 3, 209, 9 },
+        { 212, 68, 145, 15, 10 },
+        { 152, 188, 1, 182, 1 },
+        { 95, 8, 146, 34, 11 }, },
+      { { 131, 139, 27, 161, 3 },
+        { 20, 82, 30, 87, 10 },
+        { 200, 93, 141, 28, 1 },
+        { 94, 167, 132, 162, 8 }, },
+      { { 135, 162, 121, 197, 9 },
+        { 189, 0, 29, 95, 6 },
+        { 154, 57, 228, 94, 1 },
+        { 111, 171, 128, 11, 13 }, },
+      { { 138, 67, 100, 140, 14 },
+        { 42, 55, 73, 3, 6 },
+        { 115, 18, 108, 37, 1 },
+        { 108, 9, 46, 197, 4 }, },
+      { { 136, 147, 59, 76, 8 },
+        { 90, 98, 29, 26, 4 },
+        { 19, 45, 204, 145, 1 },
+        { 37, 139, 132, 101, 10 }, },
+      { { 143, 33, 223, 78, 3 },
+        { 191, 243, 4, 91, 1 },
+        { 199, 47, 184, 79, 1 },
+        { 141, 162, 12, 255, 13 }, },
+      { { 141, 132, 53, 114, 9 },
+        { 150, 1, 147, 122, 5 },
+        { 148, 234, 194, 27, 1 },
+        { 165, 236, 152, 6, 9 }, },
+      { { 141, 136, 215, 31, 13 },
+        { 190, 225, 209, 86, 9 },
+        { 191, 142, 177, 27, 1 },
+        { 150, 168, 184, 119, 13 }, },
+      { { 137, 159, 120, 252, 13 },
+        { 110, 34, 223, 122, 14 },
+        { 179, 241, 239, 153, 1 },
+        { 117, 239, 180, 71, 6 }, },
+      { { 146, 107, 22, 121, 12 },
+        { 1, 111, 203, 31, 8 },
+        { 57, 230, 141, 100, 9 },
+        { 31, 141, 63, 104, 0 }, },
+      { { 148, 142, 34, 241, 2 },
+        { 128, 88, 154, 46, 14 },
+        { 72, 244, 71, 18, 9 },
+        { 119, 69, 145, 160, 1 }, },
+      { { 144, 229, 230, 49, 7 },
+        { 37, 223, 210, 38, 4 },
+        { 232, 198, 122, 112, 9 },
+        { 38, 68, 191, 186, 4 }, },
+      { { 150, 216, 133, 42, 1 },
+        { 212, 173, 18, 3, 9 },
+        { 133, 74, 17, 182, 9 },
+        { 156, 4, 139, 82, 11 }, },
+      { { 149, 57, 59, 164, 6 },
+        { 217, 90, 70, 82, 14 },
+        { 98, 93, 201, 202, 9 },
+        { 116, 166, 37, 169, 11 }, },
+      { { 149, 60, 251, 77, 13 },
+        { 253, 232, 69, 126, 12 },
+        { 187, 45, 243, 202, 9 },
+        { 55, 234, 33, 123, 15 }, },
+      { { 145, 62, 170, 18, 6 },
+        { 65, 216, 204, 98, 13 },
+        { 100, 133, 87, 200, 9 },
+        { 180, 99, 49, 184, 2 }, },
+      { { 151, 111, 90, 175, 9 },
+        { 173, 110, 15, 119, 11 },
+        { 159, 85, 175, 110, 9 },
+        { 222, 239, 7, 107, 5 }, },
+      { { 145, 178, 41, 253, 10 },
+        { 89, 56, 159, 78, 6 },
+        { 91, 249, 68, 216, 9 },
+        { 103, 47, 145, 201, 10 }, },
+      { { 145, 211, 250, 118, 1 },
+        { 108, 206, 158, 90, 5 },
+        { 134, 229, 252, 184, 9 },
+        { 165, 167, 151, 51, 6 }, },
+      { { 154, 112, 134, 200, 8 },
+        { 67, 237, 1, 11, 2 },
+        { 17, 54, 16, 229, 9 },
+        { 77, 8, 11, 124, 2 }, },
+      { { 152, 142, 205, 3, 1 },
+        { 54, 137, 28, 38, 9 },
+        { 140, 11, 55, 17, 9 },
+        { 150, 67, 137, 22, 12 }, },
+      { { 152, 199, 16, 151, 10 },
+        { 10, 30, 153, 54, 3 },
+        { 94, 144, 142, 49, 9 },
+        { 198, 201, 151, 133, 0 }, },
+      { { 157, 203, 235, 70, 6 },
+        { 186, 222, 92, 74, 13 },
+        { 102, 45, 125, 59, 9 },
+        { 181, 35, 167, 181, 13 }, },
+      { { 164, 40, 245, 182, 14 },
+        { 185, 145, 227, 18, 15 },
+        { 118, 218, 241, 66, 5 },
+        { 244, 140, 120, 153, 13 }, },
+      { { 163, 55, 241, 121, 3 },
+        { 117, 178, 170, 127, 4 },
+        { 201, 232, 254, 204, 5 },
+        { 47, 229, 84, 218, 14 }, },
+      { { 163, 68, 64, 245, 10 },
+        { 40, 20, 163, 111, 2 },
+        { 90, 240, 34, 44, 5 },
+        { 79, 108, 82, 129, 4 }, },
+      { { 161, 127, 173, 133, 8 },
+        { 89, 135, 45, 102, 14 },
+        { 26, 27, 95, 232, 5 },
+        { 118, 107, 78, 25, 10 }, },
+      { { 167, 210, 150, 35, 13 },
+        { 196, 197, 123, 87, 1 },
+        { 188, 70, 148, 190, 5 },
+        { 142, 173, 234, 50, 3 }, },
+      { { 168, 69, 112, 43, 11 },
+        { 38, 54, 35, 54, 5 },
+        { 221, 64, 234, 33, 5 },
+        { 166, 204, 70, 198, 4 }, },
+      { { 174, 72, 127, 160, 9 },
+        { 182, 69, 39, 19, 14 },
+        { 144, 95, 225, 39, 5 },
+        { 124, 142, 74, 38, 13 }, },
+      { { 172, 79, 182, 214, 8 },
+        { 138, 199, 169, 58, 15 },
+        { 22, 182, 223, 35, 5 },
+        { 245, 201, 94, 53, 1 }, },
+      { { 168, 168, 211, 133, 3 },
+        { 63, 208, 48, 22, 10 },
+        { 202, 28, 177, 81, 5 },
+        { 86, 128, 192, 191, 12 }, },
+      { { 169, 139, 10, 203, 8 },
+        { 2, 98, 61, 78, 11 },
+        { 29, 53, 13, 25, 5 },
+        { 215, 43, 196, 100, 0 }, },
+      { { 173, 254, 140, 222, 2 },
+        { 203, 181, 188, 106, 11 },
+        { 71, 179, 23, 251, 5 },
+        { 213, 99, 218, 221, 3 }, },
+      { { 180, 239, 46, 46, 14 },
+        { 137, 127, 127, 34, 13 },
+        { 119, 71, 79, 114, 13 },
+        { 180, 79, 239, 233, 1 }, },
+      { { 183, 153, 137, 199, 0 },
+        { 216, 138, 52, 79, 11 },
+        { 14, 57, 25, 158, 13 },
+        { 223, 34, 197, 17, 11 }, },
+      { { 190, 12, 162, 14, 12 },
+        { 138, 232, 97, 35, 13 },
+        { 55, 4, 83, 7, 13 },
+        { 188, 72, 97, 117, 1 }, },
+      { { 188, 112, 34, 122, 9 },
+        { 199, 108, 163, 10, 5 },
+        { 149, 228, 64, 227, 13 },
+        { 165, 12, 83, 110, 3 }, },
+      { { 190, 188, 47, 145, 10 },
+        { 211, 89, 181, 39, 14 },
+        { 88, 159, 67, 215, 13 },
+        { 126, 74, 217, 172, 11 }, },
+      { { 184, 233, 10, 152, 3 },
+        { 7, 126, 180, 2, 10 },
+        { 193, 149, 9, 113, 13 },
+        { 84, 2, 215, 238, 0 }, },
+      { { 189, 10, 48, 236, 8 },
+        { 138, 40, 43, 90, 14 },
+        { 19, 112, 197, 11, 13 },
+        { 117, 173, 65, 69, 1 }, },
+      { { 194, 2, 224, 243, 1 },
+        { 36, 128, 138, 143, 7 },
+        { 140, 240, 116, 4, 3 },
+        { 239, 21, 16, 18, 4 }, },
+      { { 194, 107, 50, 227, 7 },
+        { 5, 86, 74, 159, 15 },
+        { 236, 116, 205, 100, 3 },
+        { 255, 149, 38, 170, 0 }, },
+      { { 198, 202, 66, 106, 8 },
+        { 160, 100, 27, 139, 9 },
+        { 21, 100, 37, 54, 3 },
+        { 157, 29, 130, 96, 5 }, },
+      { { 199, 30, 238, 104, 14 },
+        { 224, 241, 79, 235, 12 },
+        { 113, 103, 119, 142, 3 },
+        { 61, 127, 40, 240, 7 }, },
+      { { 199, 125, 46, 145, 3 },
+        { 197, 87, 132, 231, 14 },
+        { 200, 151, 75, 238, 3 },
+        { 126, 114, 30, 170, 3 }, },
+      { { 206, 60, 32, 116, 2 },
+        { 203, 16, 130, 171, 12 },
+        { 66, 224, 67, 199, 3 },
+        { 61, 84, 16, 141, 3 }, },
+      { { 204, 74, 185, 197, 7 },
+        { 158, 148, 76, 158, 14 },
+        { 234, 57, 213, 35, 3 },
+        { 119, 147, 34, 151, 9 }, },
+      { { 206, 247, 99, 220, 13 },
+        { 255, 102, 217, 171, 6 },
+        { 179, 188, 110, 247, 3 },
+        { 109, 89, 182, 111, 15 }, },
+      { { 205, 67, 34, 202, 2 },
+        { 130, 118, 8, 202, 7 },
+        { 69, 52, 76, 43, 3 },
+        { 229, 49, 6, 228, 1 }, },
+      { { 207, 183, 204, 29, 0 },
+        { 235, 163, 156, 231, 0 },
+        { 11, 131, 62, 223, 3 },
+        { 14, 115, 156, 93, 7 }, },
+      { { 201, 206, 200, 53, 10 },
+        { 42, 148, 159, 230, 8 },
+        { 90, 193, 55, 57, 3 },
+        { 22, 127, 146, 149, 4 }, },
+      { { 207, 243, 75, 113, 3 },
+        { 247, 86, 158, 207, 0 },
+        { 200, 237, 44, 255, 3 },
+        { 15, 55, 150, 174, 15 }, },
+      { { 214, 46, 123, 112, 13 },
+        { 181, 72, 207, 187, 12 },
+        { 176, 237, 231, 70, 11 },
+        { 61, 223, 49, 42, 13 }, },
+      { { 212, 23, 75, 59, 4 },
+        { 240, 106, 206, 166, 1 },
+        { 45, 205, 46, 130, 11 },
+        { 134, 87, 53, 96, 15 }, },
+      { { 215, 141, 250, 151, 14 },
+        { 168, 218, 213, 247, 15 },
+        { 126, 149, 251, 30, 11 },
+        { 254, 250, 181, 177, 5 }, },
+      { { 209, 216, 245, 85, 1 },
+        { 124, 141, 144, 222, 12 },
+        { 138, 170, 241, 184, 11 },
+        { 55, 176, 155, 19, 14 }, },
+      { { 213, 207, 225, 211, 9 },
+        { 180, 142, 153, 238, 15 },
+        { 156, 184, 127, 58, 11 },
+        { 247, 121, 151, 18, 13 }, },
+      { { 218, 22, 168, 204, 9 },
+        { 78, 168, 13, 171, 6 },
+        { 147, 49, 86, 133, 11 },
+        { 109, 91, 1, 87, 2 }, },
+      { { 216, 76, 68, 133, 9 },
+        { 46, 13, 1, 166, 10 },
+        { 154, 18, 35, 33, 11 },
+        { 86, 88, 11, 7, 4 }, },
+      { { 220, 217, 114, 142, 13 },
+        { 238, 110, 81, 146, 15 },
+        { 183, 20, 233, 179, 11 },
+        { 244, 152, 167, 103, 7 }, },
+      { { 223, 103, 17, 126, 8 },
+        { 155, 46, 139, 251, 1 },
+        { 23, 232, 142, 111, 11 },
+        { 141, 253, 23, 77, 9 }, },
+      { { 219, 153, 125, 230, 7 },
+        { 126, 27, 86, 219, 15 },
+        { 230, 123, 233, 157, 11 },
+        { 253, 182, 173, 135, 14 }, },
+      { { 221, 171, 142, 49, 14 },
+        { 131, 219, 223, 198, 8 },
+        { 120, 199, 29, 91, 11 },
+        { 22, 63, 189, 188, 1 }, },
+      { { 224, 25, 8, 76, 13 },
+        { 76, 34, 101, 138, 8 },
+        { 179, 33, 9, 128, 7 },
+        { 21, 26, 100, 67, 2 }, },
+      { { 230, 54, 218, 82, 1 },
+        { 229, 192, 172, 187, 1 },
+        { 132, 165, 182, 198, 7 },
+        { 141, 211, 80, 58, 7 }, },
+      { { 226, 172, 199, 155, 0 },
+        { 49, 225, 176, 167, 11 },
+        { 13, 158, 51, 84, 7 },
+        { 222, 80, 216, 120, 12 }, },
+      { { 228, 141, 33, 98, 0 },
+        { 144, 2, 50, 170, 13 },
+        { 4, 104, 75, 18, 7 },
+        { 181, 84, 196, 0, 9 }, },
+      { { 226, 254, 208, 197, 1 },
+        { 109, 132, 56, 191, 10 },
+        { 138, 48, 183, 244, 7 },
+        { 95, 209, 194, 27, 6 }, },
+      { { 225, 58, 125, 2, 10 },
+        { 113, 17, 45, 210, 13 },
+        { 84, 11, 229, 200, 7 },
+        { 180, 187, 72, 136, 14 }, },
+      { { 231, 208, 91, 142, 5 },
+        { 252, 100, 116, 211, 3 },
+        { 167, 29, 160, 190, 7 },
+        { 204, 178, 226, 99, 15 }, },
+      { { 236, 48, 156, 107, 5 },
+        { 199, 161, 102, 158, 1 },
+        { 173, 99, 144, 195, 7 },
+        { 135, 150, 104, 94, 3 }, },
+      { { 236, 170, 73, 210, 0 },
+        { 179, 0, 188, 138, 11 },
+        { 4, 185, 37, 83, 7 },
+        { 213, 19, 208, 12, 13 }, },
+      { { 238, 179, 122, 196, 6 },
+        { 235, 82, 124, 155, 6 },
+        { 98, 53, 236, 215, 7 },
+        { 109, 147, 228, 173, 7 }, },
+      { { 232, 224, 103, 46, 2 },
+        { 59, 117, 50, 130, 5 },
+        { 71, 78, 96, 113, 7 },
+        { 164, 20, 202, 237, 12 }, },
+      { { 234, 229, 213, 36, 12 },
+        { 59, 135, 115, 179, 0 },
+        { 50, 74, 186, 117, 7 },
+        { 12, 220, 238, 29, 12 }, },
+      { { 237, 107, 28, 44, 2 },
+        { 139, 55, 46, 210, 8 },
+        { 67, 67, 141, 107, 7 },
+        { 20, 183, 78, 205, 1 }, },
+      { { 235, 200, 175, 29, 6 },
+        { 26, 245, 244, 199, 12 },
+        { 107, 143, 81, 61, 7 },
+        { 62, 50, 250, 245, 8 }, },
+      { { 242, 5, 98, 212, 5 },
+        { 44, 74, 224, 171, 6 },
+        { 162, 180, 106, 4, 15 },
+        { 109, 80, 117, 35, 4 }, },
+      { { 246, 25, 188, 251, 2 },
+        { 192, 187, 166, 159, 15 },
+        { 77, 243, 217, 134, 15 },
+        { 255, 150, 93, 208, 3 }, },
+      { { 246, 163, 92, 109, 11 },
+        { 173, 59, 63, 159, 0 },
+        { 219, 99, 172, 86, 15 },
+        { 15, 159, 205, 203, 5 }, },
+      { { 244, 241, 189, 15, 0 },
+        { 217, 175, 52, 150, 5 },
+        { 15, 11, 216, 242, 15 },
+        { 166, 146, 207, 89, 11 }, },
+      { { 241, 106, 155, 67, 5 },
+        { 21, 204, 108, 222, 9 },
+        { 172, 45, 149, 104, 15 },
+        { 151, 179, 99, 58, 8 }, },
+      { { 241, 178, 145, 41, 14 },
+        { 81, 184, 123, 214, 0 },
+        { 121, 72, 148, 216, 15 },
+        { 6, 189, 225, 216, 10 }, },
+      { { 250, 84, 91, 243, 5 },
+        { 118, 76, 230, 191, 3 },
+        { 172, 253, 162, 165, 15 },
+        { 207, 214, 115, 38, 14 }, },
+      { { 254, 110, 134, 124, 6 },
+        { 139, 253, 234, 171, 8 },
+        { 99, 230, 23, 103, 15 },
+        { 29, 85, 123, 253, 1 }, },
+      { { 249, 13, 185, 67, 2 },
+        { 18, 154, 36, 254, 13 },
+        { 76, 41, 219, 9, 15 },
+        { 183, 242, 69, 148, 8 }, },
+      { { 249, 105, 102, 43, 13 },
+        { 39, 111, 99, 198, 13 },
+        { 189, 70, 105, 105, 15 },
+        { 182, 60, 111, 110, 4 }, },
+      { { 251, 65, 203, 72, 4 },
+        { 50, 238, 100, 203, 0 },
+        { 33, 45, 56, 45, 15 },
+        { 13, 50, 103, 116, 12 }, },
+      { { 253, 87, 191, 152, 5 },
+        { 214, 239, 236, 242, 6 },
+        { 161, 159, 222, 171, 15 },
+        { 100, 243, 127, 118, 11 }, },
+      { { 251, 152, 144, 126, 6 },
+        { 74, 184, 242, 219, 9 },
+        { 103, 224, 145, 157, 15 },
+        { 157, 180, 241, 213, 2 }, },
+      { { 255, 234, 33, 198, 3 },
+        { 159, 28, 56, 203, 15 },
+        { 198, 56, 69, 127, 15 },
+        { 253, 49, 195, 143, 9 }, },
+      { { 163, 165, 111, 69, 0 },
+        { 57, 67, 52, 111, 4 },
+        { 10, 47, 106, 92, 5 },
+        { 47, 98, 204, 41, 12 }, },
+      { { 161, 152, 104, 48, 2 },
+        { 96, 16, 182, 66, 12 },
+        { 64, 193, 97, 152, 5 },
+        { 52, 38, 208, 128, 6 }, },
+      { { 15, 55, 131, 43, 0 },
+        { 211, 226, 10, 101, 1 },
+        { 13, 76, 30, 207, 0 },
+        { 138, 101, 4, 124, 11 }, },
+      { { 38, 236, 72, 39, 2 },
+        { 169, 20, 54, 37, 9 },
+        { 78, 65, 35, 118, 4 },
+        { 154, 70, 194, 137, 5 }, },
+      { { 65, 152, 184, 168, 15 },
+        { 68, 176, 87, 208, 14 },
+        { 241, 81, 209, 152, 2 },
+        { 112, 190, 160, 210, 2 }, },
+      { { 78, 181, 67, 138, 4 },
+        { 243, 98, 80, 161, 3 },
+        { 37, 28, 42, 215, 2 },
+        { 200, 80, 164, 108, 15 }, },
+      { { 99, 197, 227, 123, 10 },
+        { 48, 246, 179, 237, 5 },
+        { 93, 236, 122, 60, 6 },
+        { 171, 124, 214, 240, 12 }, },
+      { { 110, 89, 221, 230, 12 },
+        { 250, 135, 103, 153, 11 },
+        { 54, 123, 185, 167, 6 },
+        { 217, 158, 110, 21, 15 }, },
+      { { 128, 212, 89, 240, 8 },
+        { 112, 4, 151, 58, 2 },
+        { 16, 249, 162, 176, 1 },
+        { 69, 206, 146, 0, 14 }, },
+      { { 152, 8, 136, 159, 13 },
+        { 14, 168, 197, 6, 11 },
+        { 191, 145, 17, 1, 9 },
+        { 214, 10, 49, 87, 0 }, },
+      { { 163, 6, 103, 166, 15 },
+        { 60, 81, 107, 99, 7 },
+        { 246, 94, 102, 12, 5 },
+        { 236, 109, 104, 163, 12 }, },
+      { { 2, 25, 166, 20, 7 },
+        { 76, 211, 192, 1, 12 },
+        { 226, 134, 89, 132, 0 },
+        { 56, 0, 60, 179, 2 }, },
+      { { 2, 21, 202, 78, 2 },
+        { 104, 242, 4, 41, 1 },
+        { 71, 37, 58, 132, 0 },
+        { 137, 66, 4, 241, 6 }, },
+      { { 0, 104, 204, 57, 9 },
+        { 37, 165, 135, 4, 8 },
+        { 153, 195, 49, 96, 0 },
+        { 18, 14, 26, 90, 4 }, },
+      { { 0, 161, 19, 254, 8 },
+        { 25, 98, 147, 24, 3 },
+        { 23, 252, 136, 80, 0 },
+        { 193, 140, 148, 105, 8 }, },
+      { { 2, 185, 86, 117, 5 },
+        { 109, 67, 210, 29, 8 },
+        { 170, 230, 169, 212, 0 },
+        { 27, 132, 188, 43, 6 }, },
+      { { 2, 198, 187, 83, 2 },
+        { 16, 212, 156, 61, 5 },
+        { 76, 173, 214, 52, 0 },
+        { 171, 195, 146, 176, 8 }, },
+      { { 2, 243, 31, 29, 9 },
+        { 93, 103, 157, 21, 0 },
+        { 155, 143, 140, 244, 0 },
+        { 10, 139, 158, 107, 10 }, },
+      { { 7, 42, 193, 126, 3 },
+        { 189, 176, 138, 73, 9 },
+        { 199, 232, 53, 78, 0 },
+        { 153, 37, 16, 219, 13 }, },
+      { { 7, 55, 141, 151, 2 },
+        { 217, 147, 140, 101, 3 },
+        { 78, 155, 30, 206, 0 },
+        { 202, 99, 28, 153, 11 }, },
+      { { 1, 111, 31, 231, 5 },
+        { 29, 71, 78, 124, 11 },
+        { 174, 127, 143, 104, 0 },
+        { 211, 231, 46, 43, 8 }, },
+      { { 1, 119, 48, 21, 5 },
+        { 77, 6, 200, 116, 4 },
+        { 170, 128, 206, 232, 0 },
+        { 34, 225, 54, 11, 2 }, },
+      { { 7, 149, 114, 65, 10 },
+        { 224, 82, 17, 125, 4 },
+        { 88, 36, 234, 158, 0 },
+        { 43, 232, 132, 160, 7 }, },
+      { { 7, 200, 163, 134, 14 },
+        { 152, 212, 81, 65, 15 },
+        { 118, 28, 81, 62, 0 },
+        { 248, 40, 162, 177, 9 }, },
+      { { 5, 254, 251, 247, 9 },
+        { 253, 196, 159, 124, 15 },
+        { 158, 253, 247, 250, 0 },
+        { 243, 239, 146, 59, 15 }, },
+      { { 12, 21, 243, 16, 1 },
+        { 246, 194, 128, 48, 4 },
+        { 128, 140, 250, 131, 0 },
+        { 32, 192, 20, 54, 15 }, },
+      { { 10, 68, 98, 226, 14 },
+        { 34, 84, 67, 41, 7 },
+        { 116, 116, 98, 37, 0 },
+        { 233, 76, 34, 164, 4 }, },
+      { { 8, 94, 55, 238, 9 },
+        { 94, 101, 11, 56, 15 },
+        { 151, 126, 199, 161, 0 },
+        { 241, 205, 10, 103, 10 }, },
+      { { 8, 82, 222, 18, 13 },
+        { 102, 197, 205, 16, 1 },
+        { 180, 135, 180, 161, 0 },
+        { 128, 139, 58, 54, 6 }, },
+      { { 12, 102, 136, 3, 9 },
+        { 135, 132, 13, 36, 1 },
+        { 156, 1, 22, 99, 0 },
+        { 130, 75, 2, 30, 1 }, },
+      { { 8, 140, 186, 71, 15 },
+        { 14, 208, 85, 60, 13 },
+        { 254, 37, 211, 17, 0 },
+        { 179, 202, 160, 183, 0 }, },
+      { { 12, 172, 39, 30, 5 },
+        { 159, 97, 208, 32, 13 },
+        { 167, 142, 67, 83, 0 },
+        { 176, 64, 184, 111, 9 }, },
+      { { 8, 179, 56, 11, 15 },
+        { 71, 50, 93, 20, 5 },
+        { 253, 1, 204, 209, 0 },
+        { 162, 139, 164, 206, 2 }, },
+      { { 12, 162, 165, 217, 4 },
+        { 147, 161, 216, 12, 6 },
+        { 41, 186, 84, 83, 0 },
+        { 99, 1, 184, 92, 9 }, },
+      { { 8, 227, 82, 192, 1 },
+        { 39, 70, 24, 24, 2 },
+        { 128, 52, 172, 113, 0 },
+        { 65, 129, 134, 46, 4 }, },
+      { { 14, 255, 68, 245, 14 },
+        { 235, 23, 219, 45, 10 },
+        { 122, 242, 47, 247, 0 },
+        { 91, 77, 190, 141, 7 }, },
+      { { 14, 255, 93, 234, 11 },
+        { 247, 55, 31, 57, 11 },
+        { 213, 123, 175, 247, 0 },
+        { 217, 207, 142, 206, 15 }, },
+      { { 11, 52, 109, 201, 14 },
+        { 115, 49, 69, 109, 6 },
+        { 121, 59, 98, 205, 0 },
+        { 107, 106, 40, 204, 14 }, },
+      { { 13, 9, 254, 187, 3 },
+        { 166, 243, 134, 84, 15 },
+        { 205, 215, 249, 11, 0 },
+        { 242, 166, 28, 246, 5 }, },
+      { { 15, 16, 170, 146, 6 },
+        { 194, 208, 196, 65, 7 },
+        { 100, 149, 80, 143, 0 },
+        { 232, 34, 48, 180, 3 }, },
+      { { 13, 31, 101, 167, 14 },
+        { 250, 19, 75, 100, 15 },
+        { 126, 90, 111, 139, 0 },
+        { 242, 109, 44, 133, 15 }, },
+      { { 15, 177, 95, 160, 0 },
+        { 243, 67, 22, 81, 2 },
+        { 0, 95, 168, 223, 0 },
+        { 72, 166, 140, 44, 15 }, },
+      { { 13, 162, 5, 35, 3 },
+        { 151, 17, 26, 68, 1 },
+        { 204, 74, 4, 91, 0 },
+        { 130, 37, 136, 142, 9 }, },
+      { { 13, 175, 35, 219, 11 },
+        { 151, 114, 153, 108, 15 },
+        { 221, 188, 79, 91, 0 },
+        { 243, 105, 148, 238, 9 }, },
+      { { 11, 240, 165, 238, 4 },
+        { 91, 165, 82, 73, 7 },
+        { 39, 122, 80, 253, 0 },
+        { 233, 36, 170, 93, 10 }, },
+      { { 13, 200, 153, 251, 14 },
+        { 146, 180, 215, 92, 11 },
+        { 125, 249, 145, 59, 0 },
+        { 211, 174, 178, 212, 9 }, },
+      { { 15, 253, 48, 39, 7 },
+        { 207, 22, 82, 117, 13 },
+        { 238, 64, 203, 255, 0 },
+        { 186, 228, 166, 143, 3 }, },
+      { { 11, 199, 93, 86, 2 },
+        { 58, 23, 156, 121, 1 },
+        { 70, 171, 174, 61, 0 },
+        { 137, 227, 158, 133, 12 }, },
+      { { 18, 47, 163, 1, 13 },
+        { 21, 202, 73, 37, 12 },
+        { 184, 12, 95, 68, 8 },
+        { 58, 73, 37, 58, 8 }, },
+      { { 18, 117, 72, 114, 5 },
+        { 101, 14, 198, 41, 1 },
+        { 164, 225, 42, 228, 8 },
+        { 137, 70, 55, 10, 6 }, },
+      { { 16, 79, 174, 98, 7 },
+        { 4, 223, 78, 40, 13 },
+        { 228, 103, 95, 32, 8 },
+        { 177, 71, 47, 178, 0 }, },
+      { { 16, 140, 138, 232, 11 },
+        { 4, 248, 23, 40, 10 },
+        { 209, 117, 19, 16, 8 },
+        { 81, 78, 129, 242, 0 }, },
+      { { 16, 243, 244, 46, 14 },
+        { 105, 191, 91, 16, 5 },
+        { 119, 66, 252, 240, 8 },
+        { 160, 141, 175, 217, 6 }, },
+      { { 19, 55, 238, 112, 2 },
+        { 97, 219, 142, 105, 4 },
+        { 64, 231, 126, 204, 8 },
+        { 41, 103, 29, 184, 6 }, },
+      { { 23, 11, 35, 235, 0 },
+        { 144, 106, 10, 77, 15 },
+        { 13, 124, 77, 14, 8 },
+        { 251, 37, 5, 96, 9 }, },
+      { { 21, 2, 111, 27, 11 },
+        { 180, 121, 141, 68, 5 },
+        { 221, 143, 100, 10, 8 },
+        { 162, 43, 25, 226, 13 }, },
+      { { 17, 161, 171, 203, 2 },
+        { 17, 250, 20, 76, 7 },
+        { 77, 61, 88, 88, 8 },
+        { 227, 34, 133, 248, 8 }, },
+      { { 19, 166, 74, 200, 13 },
+        { 37, 104, 93, 105, 2 },
+        { 177, 53, 38, 92, 8 },
+        { 73, 107, 161, 106, 4 }, },
+      { { 23, 142, 53, 205, 3 },
+        { 156, 57, 24, 125, 14 },
+        { 203, 58, 199, 30, 8 },
+        { 123, 225, 137, 195, 9 }, },
+      { { 21, 139, 229, 157, 12 },
+        { 184, 171, 217, 68, 14 },
+        { 59, 154, 125, 26, 8 },
+        { 114, 41, 189, 81, 13 }, },
+      { { 23, 166, 249, 125, 4 },
+        { 185, 168, 222, 125, 4 },
+        { 43, 233, 246, 94, 8 },
+        { 43, 231, 177, 89, 13 }, },
+      { { 21, 220, 164, 180, 4 },
+        { 200, 141, 210, 96, 14 },
+        { 34, 210, 83, 186, 8 },
+        { 112, 100, 187, 17, 3 }, },
+      { { 17, 223, 5, 67, 12 },
+        { 80, 15, 89, 108, 9 },
+        { 60, 42, 15, 184, 8 },
+        { 147, 105, 175, 0, 10 }, },
+      { { 21, 210, 1, 147, 5 },
+        { 212, 12, 216, 68, 3 },
+        { 172, 152, 4, 186, 8 },
+        { 194, 33, 179, 2, 11 }, },
+      { { 24, 31, 173, 250, 10 },
+        { 82, 187, 143, 40, 15 },
+        { 85, 251, 95, 129, 8 },
+        { 241, 79, 29, 212, 10 }, },
+      { { 28, 64, 14, 171, 13 },
+        { 134, 109, 71, 4, 3 },
+        { 189, 87, 0, 35, 8 },
+        { 194, 14, 43, 102, 1 }, },
+      { { 30, 76, 93, 61, 2 },
+        { 186, 61, 134, 53, 8 },
+        { 75, 203, 163, 39, 8 },
+        { 26, 198, 27, 197, 13 }, },
+      { { 24, 111, 246, 127, 9 },
+        { 47, 239, 139, 60, 13 },
+        { 159, 230, 255, 97, 8 },
+        { 179, 205, 31, 127, 4 }, },
+      { { 24, 87, 52, 184, 15 },
+        { 70, 63, 203, 48, 6 },
+        { 241, 210, 206, 161, 8 },
+        { 96, 205, 63, 198, 2 }, },
+      { { 30, 86, 137, 227, 4 },
+        { 210, 140, 78, 45, 3 },
+        { 44, 121, 22, 167, 8 },
+        { 203, 71, 35, 20, 11 }, },
+      { { 26, 149, 209, 132, 5 },
+        { 126, 138, 80, 49, 2 },
+        { 162, 24, 186, 149, 8 },
+        { 72, 192, 165, 23, 14 }, },
+      { { 24, 167, 255, 2, 10 },
+        { 51, 219, 29, 48, 5 },
+        { 84, 15, 254, 81, 8 },
+        { 160, 203, 141, 188, 12 }, },
+      { { 24, 158, 177, 201, 14 },
+        { 82, 184, 89, 60, 14 },
+        { 121, 56, 215, 145, 8 },
+        { 115, 201, 161, 212, 10 }, },
+      { { 28, 178, 10, 96, 10 },
+        { 195, 88, 31, 8, 0 },
+        { 80, 101, 4, 211, 8 },
+        { 1, 15, 129, 172, 3 }, },
+      { { 28, 146, 53, 136, 1 },
+        { 214, 41, 24, 16, 6 },
+        { 129, 26, 196, 147, 8 },
+        { 96, 129, 137, 70, 11 }, },
+      { { 28, 147, 183, 214, 13 },
+        { 222, 203, 217, 24, 7 },
+        { 182, 190, 220, 147, 8 },
+        { 225, 137, 189, 55, 11 }, },
+      { { 26, 202, 188, 88, 1 },
+        { 6, 173, 156, 25, 12 },
+        { 129, 163, 213, 53, 8 },
+        { 57, 131, 155, 86, 0 }, },
+      { { 28, 226, 172, 181, 8 },
+        { 139, 141, 159, 4, 6 },
+        { 26, 211, 84, 115, 8 },
+        { 98, 15, 155, 29, 1 }, },
+      { { 27, 121, 237, 6, 4 },
+        { 123, 143, 68, 65, 13 },
+        { 38, 11, 121, 237, 8 },
+        { 184, 34, 47, 29, 14 }, },
+      { { 31, 106, 57, 19, 2 },
+        { 147, 28, 140, 85, 13 },
+        { 76, 137, 197, 111, 8 },
+        { 186, 163, 19, 140, 9 }, },
+      { { 29, 152, 56, 117, 0 },
+        { 202, 8, 150, 92, 12 },
+        { 10, 225, 193, 155, 8 },
+        { 51, 166, 145, 5, 3 }, },
+      { { 32, 13, 193, 3, 15 },
+        { 52, 146, 97, 36, 9 },
+        { 252, 8, 59, 0, 4 },
+        { 146, 72, 100, 146, 12 }, },
+      { { 38, 53, 212, 232, 0 },
+        { 225, 163, 34, 57, 2 },
+        { 1, 114, 186, 198, 4 },
+        { 73, 196, 76, 88, 7 }, },
+      { { 38, 117, 44, 47, 8 },
+        { 201, 39, 39, 37, 5 },
+        { 31, 67, 74, 230, 4 },
+        { 170, 78, 78, 73, 3 }, },
+      { { 32, 83, 133, 143, 6 },
+        { 88, 183, 104, 4, 3 },
+        { 111, 26, 28, 160, 4 },
+        { 194, 1, 110, 209, 10 }, },
+      { { 34, 136, 31, 122, 3 },
+        { 20, 113, 182, 25, 9 },
+        { 197, 239, 129, 20, 4 },
+        { 153, 134, 216, 226, 8 }, },
+      { { 39, 44, 250, 229, 5 },
+        { 173, 192, 102, 125, 14 },
+        { 170, 117, 243, 78, 4 },
+        { 123, 230, 96, 59, 5 }, },
+      { { 33, 107, 76, 67, 11 },
+        { 37, 23, 45, 76, 9 },
+        { 220, 35, 45, 104, 4 },
+        { 147, 43, 78, 138, 4 }, },
+      { { 37, 188, 103, 11, 10 },
+        { 241, 113, 49, 100, 13 },
+        { 93, 14, 99, 218, 4 },
+        { 178, 104, 200, 232, 15 }, },
+      { { 33, 163, 233, 176, 14 },
+        { 49, 146, 255, 64, 6 },
+        { 112, 217, 124, 88, 4 },
+        { 96, 47, 244, 152, 12 }, },
+      { { 33, 150, 242, 145, 15 },
+        { 100, 208, 249, 116, 6 },
+        { 248, 148, 246, 152, 4 },
+        { 98, 233, 240, 178, 6 }, },
+      { { 39, 162, 43, 140, 10 },
+        { 153, 112, 61, 65, 6 },
+        { 83, 29, 68, 94, 4 },
+        { 104, 43, 192, 233, 9 }, },
+      { { 39, 159, 72, 50, 8 },
+        { 224, 2, 191, 97, 9 },
+        { 20, 193, 47, 158, 4 },
+        { 152, 111, 212, 0, 7 }, },
+      { { 35, 226, 188, 201, 7 },
+        { 5, 181, 124, 93, 6 },
+        { 233, 51, 212, 124, 4 },
+        { 107, 163, 234, 218, 0 }, },
+      { { 33, 194, 87, 244, 1 },
+        { 60, 69, 186, 88, 2 },
+        { 130, 254, 164, 56, 4 },
+        { 65, 165, 218, 35, 12 }, },
+      { { 39, 207, 186, 248, 11 },
+        { 132, 246, 191, 121, 14 },
+        { 209, 245, 223, 62, 4 },
+        { 121, 239, 214, 242, 1 }, },
+      { { 42, 47, 189, 228, 11 },
+        { 31, 147, 47, 57, 14 },
+        { 210, 123, 223, 69, 4 },
+        { 121, 207, 76, 159, 8 }, },
+      { { 42, 84, 58, 140, 12 },
+        { 74, 100, 101, 49, 6 },
+        { 51, 21, 194, 165, 4 },
+        { 104, 202, 98, 101, 2 }, },
+      { { 42, 209, 187, 151, 15 },
+        { 94, 214, 245, 21, 7 },
+        { 254, 157, 216, 181, 4 },
+        { 234, 138, 246, 183, 10 }, },
+      { { 40, 255, 58, 99, 1 },
+        { 71, 70, 62, 60, 13 },
+        { 140, 101, 207, 241, 4 },
+        { 179, 199, 198, 46, 2 }, },
+      { { 43, 84, 197, 185, 8 },
+        { 114, 165, 163, 101, 2 },
+        { 25, 218, 50, 173, 4 },
+        { 74, 108, 90, 84, 14 }, },
+      { { 45, 97, 175, 26, 10 },
+        { 147, 247, 165, 64, 5 },
+        { 85, 143, 88, 107, 4 },
+        { 160, 42, 94, 252, 9 }, },
+      { { 43, 188, 219, 62, 6 },
+        { 123, 240, 246, 113, 9 },
+        { 103, 205, 179, 221, 4 },
+        { 152, 230, 240, 253, 14 }, },
+      { { 45, 159, 154, 13, 2 },
+        { 202, 242, 60, 116, 8 },
+        { 75, 5, 159, 155, 4 },
+        { 18, 227, 196, 245, 3 }, },
+      { { 47, 187, 114, 106, 3 },
+        { 231, 114, 58, 89, 13 },
+        { 197, 100, 237, 223, 4 },
+        { 185, 165, 196, 238, 7 }, },
+      { { 43, 217, 204, 255, 7 },
+        { 110, 183, 246, 77, 11 },
+        { 239, 243, 57, 189, 4 },
+        { 219, 38, 254, 215, 6 }, },
+      { { 41, 198, 223, 142, 12 },
+        { 58, 229, 125, 112, 3 },
+        { 55, 31, 182, 57, 4 },
+        { 192, 235, 234, 117, 12 }, },
+      { { 52, 12, 63, 195, 5 },
+        { 148, 73, 100, 60, 15 },
+        { 172, 63, 195, 2, 12 },
+        { 243, 194, 105, 34, 9 }, },
+      { { 48, 3, 27, 40, 14 },
+        { 16, 122, 111, 16, 0 },
+        { 113, 77, 140, 0, 12 },
+        { 0, 143, 101, 224, 8 }, },
+      { { 48, 113, 29, 236, 3 },
+        { 93, 63, 38, 24, 2 },
+        { 195, 123, 136, 224, 12 },
+        { 65, 134, 79, 203, 10 }, },
+      { { 52, 76, 222, 162, 10 },
+        { 160, 221, 39, 48, 11 },
+        { 84, 87, 179, 34, 12 },
+        { 208, 206, 75, 176, 5 }, },
+      { { 50, 122, 138, 139, 12 },
+        { 65, 236, 109, 5, 11 },
+        { 61, 21, 21, 228, 12 },
+        { 218, 11, 99, 120, 2 }, },
+      { { 54, 87, 99, 215, 2 },
+        { 248, 94, 168, 45, 7 },
+        { 78, 188, 110, 166, 12 },
+        { 235, 65, 87, 161, 15 }, },
+      { { 52, 141, 50, 170, 6 },
+        { 128, 122, 114, 48, 15 },
+        { 101, 84, 203, 18, 12 },
+        { 240, 196, 229, 224, 1 }, },
+      { { 54, 129, 250, 177, 1 },
+        { 164, 202, 182, 21, 6 },
+        { 136, 213, 248, 22, 12 },
+        { 106, 134, 213, 50, 5 }, },
+      { { 54, 153, 111, 21, 13 },
+        { 252, 75, 245, 5, 12 },
+        { 186, 143, 105, 150, 12 },
+        { 58, 10, 253, 35, 15 }, },
+      { { 50, 204, 108, 49, 14 },
+        { 32, 29, 247, 37, 12 },
+        { 120, 195, 99, 52, 12 },
+        { 58, 78, 251, 128, 4 }, },
+      { { 54, 224, 7, 77, 4 },
+        { 153, 109, 112, 13, 0 },
+        { 43, 46, 0, 118, 12 },
+        { 11, 0, 235, 105, 9 }, },
+      { { 51, 64, 141, 156, 5 },
+        { 28, 173, 228, 65, 2 },
+        { 163, 155, 16, 44, 12 },
+        { 72, 34, 123, 83, 8 }, },
+      { { 51, 125, 174, 182, 10 },
+        { 73, 223, 167, 97, 15 },
+        { 86, 215, 91, 236, 12 },
+        { 248, 110, 95, 185, 2 }, },
+      { { 49, 94, 255, 61, 1 },
+        { 124, 237, 174, 116, 12 },
+        { 139, 207, 247, 168, 12 },
+        { 50, 231, 91, 115, 14 }, },
+      { { 53, 164, 249, 40, 11 },
+        { 181, 184, 55, 112, 4 },
+        { 209, 73, 242, 90, 12 },
+        { 32, 238, 193, 218, 13 }, },
+      { { 51, 134, 161, 198, 4 },
+        { 24, 136, 120, 105, 7 },
+        { 38, 56, 86, 28, 12 },
+        { 233, 97, 225, 17, 8 }, },
+      { { 53, 232, 26, 158, 12 },
+        { 137, 108, 245, 80, 11 },
+        { 55, 149, 129, 122, 12 },
+        { 208, 170, 243, 105, 1 }, },
+      { { 55, 216, 88, 186, 3 },
+        { 228, 60, 182, 81, 11 },
+        { 197, 209, 161, 190, 12 },
+        { 216, 166, 211, 194, 7 }, },
+      { { 56, 21, 51, 89, 12 },
+        { 82, 106, 225, 60, 4 },
+        { 57, 172, 202, 129, 12 },
+        { 35, 200, 117, 100, 10 }, },
+      { { 56, 27, 98, 106, 12 },
+        { 98, 106, 107, 8, 13 },
+        { 53, 100, 109, 129, 12 },
+        { 177, 13, 101, 100, 6 }, },
+      { { 58, 54, 80, 219, 10 },
+        { 99, 56, 169, 61, 3 },
+        { 93, 176, 166, 197, 12 },
+        { 203, 201, 81, 204, 6 }, },
+      { { 56, 136, 209, 242, 9 },
+        { 54, 136, 179, 24, 11 },
+        { 148, 248, 177, 17, 12 },
+        { 209, 140, 209, 22, 12 }, },
+      { { 58, 204, 141, 200, 2 },
+        { 18, 189, 52, 41, 10 },
+        { 65, 59, 19, 53, 12 },
+        { 89, 66, 203, 212, 8 }, },
+      { { 60, 252, 249, 7, 11 },
+        { 255, 156, 53, 52, 13 },
+        { 222, 9, 243, 243, 12 },
+        { 178, 202, 195, 159, 15 }, },
+      { { 60, 246, 137, 57, 12 },
+        { 211, 172, 255, 36, 0 },
+        { 57, 201, 22, 243, 12 },
+        { 2, 79, 243, 92, 11 }, },
+      { { 59, 15, 174, 199, 9 },
+        { 14, 203, 45, 109, 15 },
+        { 158, 55, 95, 13, 12 },
+        { 251, 107, 77, 55, 0 }, },
+      { { 61, 11, 95, 245, 6 },
+        { 186, 91, 238, 92, 10 },
+        { 106, 255, 173, 11, 12 },
+        { 83, 167, 125, 165, 13 }, },
+      { { 57, 73, 131, 170, 6 },
+        { 18, 254, 98, 64, 11 },
+        { 101, 92, 25, 41, 12 },
+        { 208, 36, 103, 244, 8 }, },
+      { { 61, 92, 175, 229, 6 },
+        { 218, 221, 102, 108, 14 },
+        { 106, 127, 83, 171, 12 },
+        { 115, 102, 107, 181, 11 }, },
+      { { 59, 111, 209, 254, 2 },
+        { 59, 190, 170, 121, 11 },
+        { 71, 248, 191, 109, 12 },
+        { 217, 229, 87, 221, 12 }, },
+      { { 61, 114, 229, 206, 7 },
+        { 255, 189, 104, 72, 7 },
+        { 231, 58, 116, 235, 12 },
+        { 225, 33, 107, 223, 15 }, },
+      { { 59, 165, 24, 48, 4 },
+        { 3, 10, 246, 113, 0 },
+        { 32, 193, 138, 93, 12 },
+        { 8, 230, 245, 12, 0 }, },
+      { { 59, 215, 215, 116, 14 },
+        { 122, 223, 251, 121, 0 },
+        { 114, 238, 190, 189, 12 },
+        { 9, 237, 255, 181, 14 }, },
+      { { 66, 21, 7, 134, 1 },
+        { 92, 67, 0, 161, 3 },
+        { 134, 30, 10, 132, 2 },
+        { 200, 80, 12, 35, 10 }, },
+      { { 68, 42, 51, 204, 5 },
+        { 157, 96, 72, 152, 14 },
+        { 163, 60, 197, 66, 2 },
+        { 113, 145, 32, 107, 9 }, },
+      { { 64, 105, 62, 32, 12 },
+        { 1, 71, 71, 144, 12 },
+        { 48, 71, 201, 96, 2 },
+        { 48, 158, 46, 40, 0 }, },
+      { { 68, 76, 84, 241, 12 },
+        { 160, 5, 195, 188, 10 },
+        { 56, 242, 163, 34, 2 },
+        { 83, 220, 58, 0, 5 }, },
+      { { 64, 78, 207, 5, 5 },
+        { 60, 197, 76, 164, 8 },
+        { 170, 15, 55, 32, 2 },
+        { 18, 83, 42, 51, 12 }, },
+      { { 64, 223, 74, 196, 6 },
+        { 104, 86, 92, 168, 10 },
+        { 98, 53, 47, 176, 2 },
+        { 81, 83, 166, 161, 6 }, },
+      { { 70, 218, 103, 26, 14 },
+        { 240, 117, 217, 129, 13 },
+        { 117, 142, 101, 182, 2 },
+        { 184, 25, 186, 224, 15 }, },
+      { { 67, 32, 239, 178, 13 },
+        { 53, 193, 199, 193, 7 },
+        { 180, 223, 112, 76, 2 },
+        { 232, 62, 56, 58, 12 }, },
+      { { 65, 99, 121, 242, 7 },
+        { 53, 22, 206, 216, 7 },
+        { 228, 249, 236, 104, 2 },
+        { 225, 183, 54, 138, 12 }, },
+      { { 71, 127, 169, 44, 10 },
+        { 217, 182, 15, 225, 12 },
+        { 83, 73, 95, 238, 2 },
+        { 56, 127, 6, 217, 11 }, },
+      { { 67, 168, 36, 115, 10 },
+        { 1, 17, 147, 205, 13 },
+        { 92, 226, 65, 92, 2 },
+        { 187, 60, 152, 136, 0 }, },
+      { { 69, 174, 2, 166, 1 },
+        { 141, 64, 26, 224, 11 },
+        { 134, 84, 7, 90, 2 },
+        { 208, 117, 128, 43, 1 }, },
+      { { 72, 29, 125, 107, 6 },
+        { 114, 51, 70, 188, 13 },
+        { 109, 107, 235, 129, 2 },
+        { 179, 214, 44, 196, 14 }, },
+      { { 72, 68, 41, 14, 4 },
+        { 26, 36, 68, 160, 5 },
+        { 39, 9, 66, 33, 2 },
+        { 160, 82, 34, 69, 8 }, },
+      { { 76, 93, 176, 242, 6 },
+        { 194, 150, 194, 184, 15 },
+        { 100, 240, 219, 163, 2 },
+        { 241, 212, 54, 148, 3 }, },
+      { { 72, 79, 166, 76, 0 },
+        { 10, 231, 8, 168, 12 },
+        { 3, 38, 95, 33, 2 },
+        { 49, 81, 14, 117, 0 }, },
+      { { 72, 129, 242, 45, 11 },
+        { 46, 242, 19, 148, 4 },
+        { 219, 68, 248, 17, 2 },
+        { 34, 156, 132, 247, 4 }, },
+      { { 72, 140, 105, 154, 11 },
+        { 54, 48, 149, 160, 15 },
+        { 213, 153, 99, 17, 2 },
+        { 240, 90, 144, 198, 12 }, },
+      { { 76, 230, 39, 197, 2 },
+        { 155, 85, 24, 172, 6 },
+        { 74, 62, 70, 115, 2 },
+        { 99, 81, 138, 173, 9 }, },
+      { { 79, 61, 163, 205, 7 },
+        { 223, 242, 64, 237, 14 },
+        { 235, 60, 91, 207, 2 },
+        { 123, 112, 36, 255, 11 }, },
+      { { 73, 73, 253, 184, 8 },
+        { 50, 167, 135, 208, 14 },
+        { 17, 219, 249, 41, 2 },
+        { 112, 190, 30, 84, 12 }, },
+      { { 77, 89, 111, 25, 7 },
+        { 246, 119, 196, 196, 12 },
+        { 233, 143, 105, 171, 2 },
+        { 50, 50, 62, 230, 15 }, },
+      { { 79, 79, 213, 39, 11 },
+        { 190, 151, 11, 245, 9 },
+        { 222, 74, 191, 47, 2 },
+        { 154, 253, 14, 151, 13 }, },
+      { { 75, 148, 100, 228, 11 },
+        { 110, 17, 19, 233, 6 },
+        { 210, 114, 98, 157, 2 },
+        { 105, 124, 136, 135, 6 }, },
+      { { 77, 160, 106, 169, 14 },
+        { 163, 112, 87, 196, 6 },
+        { 121, 85, 96, 91, 2 },
+        { 98, 62, 160, 236, 5 }, },
+      { { 75, 146, 209, 251, 2 },
+        { 114, 176, 154, 221, 3 },
+        { 77, 248, 180, 157, 2 },
+        { 203, 181, 144, 212, 14 }, },
+      { { 79, 237, 128, 190, 11 },
+        { 143, 182, 147, 225, 11 },
+        { 215, 208, 27, 127, 2 },
+        { 216, 124, 150, 223, 1 }, },
+      { { 73, 250, 110, 175, 3 },
+        { 111, 117, 30, 196, 15 },
+        { 207, 87, 101, 249, 2 },
+        { 242, 55, 138, 239, 6 }, },
+      { { 84, 32, 172, 167, 7 },
+        { 141, 153, 70, 132, 7 },
+        { 238, 83, 80, 66, 10 },
+        { 226, 22, 41, 155, 1 }, },
+      { { 84, 25, 164, 142, 8 },
+        { 200, 171, 1, 128, 15 },
+        { 23, 18, 89, 130, 10 },
+        { 240, 24, 13, 81, 3 }, },
+      { { 86, 116, 218, 31, 8 },
+        { 233, 236, 133, 181, 1 },
+        { 31, 133, 178, 230, 10 },
+        { 138, 218, 19, 121, 7 }, },
+      { { 82, 70, 69, 212, 11 },
+        { 60, 29, 137, 169, 2 },
+        { 210, 186, 38, 36, 10 },
+        { 73, 89, 27, 131, 12 }, },
+      { { 80, 153, 112, 192, 3 },
+        { 100, 26, 16, 152, 14 },
+        { 192, 48, 233, 144, 10 },
+        { 113, 144, 133, 130, 6 }, },
+      { { 82, 162, 196, 106, 5 },
+        { 37, 169, 90, 137, 1 },
+        { 165, 98, 52, 84, 10 },
+        { 137, 21, 169, 90, 4 }, },
+      { { 80, 232, 170, 66, 4 },
+        { 1, 204, 84, 136, 13 },
+        { 36, 37, 81, 112, 10 },
+        { 177, 18, 163, 56, 0 }, },
+      { { 82, 242, 173, 89, 8 },
+        { 81, 173, 157, 141, 4 },
+        { 25, 171, 84, 244, 10 },
+        { 43, 27, 155, 88, 10 }, },
+      { { 82, 218, 235, 246, 10 },
+        { 120, 220, 159, 137, 15 },
+        { 86, 253, 117, 180, 10 },
+        { 249, 31, 147, 177, 14 }, },
+      { { 85, 46, 248, 226, 2 },
+        { 161, 152, 14, 248, 15 },
+        { 68, 113, 247, 74, 10 },
+        { 241, 247, 1, 152, 5 }, },
+      { { 81, 65, 96, 182, 2 },
+        { 40, 30, 130, 192, 7 },
+        { 70, 208, 104, 40, 10 },
+        { 224, 52, 23, 129, 4 }, },
+      { { 85, 104, 6, 21, 8 },
+        { 137, 77, 129, 196, 8 },
+        { 26, 134, 1, 106, 10 },
+        { 18, 56, 27, 41, 1 }, },
+      { { 83, 74, 126, 75, 13 },
+        { 36, 109, 77, 221, 13 },
+        { 189, 39, 229, 44, 10 },
+        { 187, 187, 43, 98, 4 }, },
+      { { 83, 107, 211, 224, 11 },
+        { 53, 222, 11, 217, 10 },
+        { 208, 124, 189, 108, 10 },
+        { 89, 189, 7, 186, 12 }, },
+      { { 87, 114, 130, 210, 7 },
+        { 197, 220, 200, 201, 3 },
+        { 228, 180, 20, 238, 10 },
+        { 201, 49, 51, 186, 3 }, },
+      { { 87, 129, 213, 88, 2 },
+        { 176, 187, 144, 217, 0 },
+        { 65, 170, 184, 30, 10 },
+        { 9, 176, 157, 208, 13 }, },
+      { { 87, 164, 195, 74, 8 },
+        { 177, 232, 17, 233, 1 },
+        { 21, 44, 50, 94, 10 },
+        { 137, 120, 129, 120, 13 }, },
+      { { 81, 151, 175, 148, 8 },
+        { 88, 203, 157, 224, 6 },
+        { 18, 159, 94, 152, 10 },
+        { 96, 123, 157, 49, 10 }, },
+      { { 87, 143, 23, 115, 11 },
+        { 148, 91, 155, 253, 9 },
+        { 220, 238, 143, 30, 10 },
+        { 155, 253, 157, 162, 9 }, },
+      { { 85, 194, 224, 207, 0 },
+        { 168, 172, 24, 204, 7 },
+        { 15, 48, 116, 58, 10 },
+        { 227, 49, 131, 81, 5 }, },
+      { { 87, 246, 164, 229, 1 },
+        { 205, 141, 26, 237, 6 },
+        { 138, 114, 86, 254, 10 },
+        { 107, 117, 139, 27, 3 }, },
+      { { 92, 5, 94, 2, 5 },
+        { 166, 75, 68, 176, 1 },
+        { 164, 7, 170, 3, 10 },
+        { 128, 210, 45, 38, 5 }, },
+      { { 94, 56, 204, 77, 0 },
+        { 235, 169, 4, 141, 8 },
+        { 11, 35, 49, 199, 10 },
+        { 27, 18, 9, 93, 7 }, },
+      { { 94, 101, 102, 31, 5 },
+        { 175, 111, 192, 165, 5 },
+        { 175, 134, 106, 103, 10 },
+        { 170, 80, 63, 111, 5 }, },
+      { { 90, 165, 235, 123, 5 },
+        { 55, 234, 214, 173, 5 },
+        { 173, 237, 122, 85, 10 },
+        { 171, 86, 181, 126, 12 }, },
+      { { 94, 173, 81, 224, 13 },
+        { 183, 10, 83, 185, 10 },
+        { 176, 120, 171, 87, 10 },
+        { 89, 220, 165, 14, 13 }, },
+      { { 88, 179, 133, 252, 1 },
+        { 95, 171, 154, 136, 2 },
+        { 131, 250, 28, 209, 10 },
+        { 65, 21, 157, 95, 10 }, },
+      { { 90, 197, 248, 110, 0 },
+        { 42, 174, 22, 185, 5 },
+        { 7, 97, 250, 53, 10 },
+        { 169, 214, 135, 85, 4 }, },
+      { { 88, 241, 107, 96, 0 },
+        { 115, 78, 22, 136, 4 },
+        { 0, 109, 104, 241, 10 },
+        { 33, 22, 135, 44, 14 }, },
+      { { 91, 48, 177, 32, 8 },
+        { 83, 136, 3, 209, 4 },
+        { 16, 72, 208, 205, 10 },
+        { 40, 188, 1, 28, 10 }, },
+      { { 95, 52, 239, 231, 11 },
+        { 255, 217, 7, 237, 7 },
+        { 222, 127, 114, 207, 10 },
+        { 235, 126, 9, 191, 15 }, },
+      { { 89, 64, 115, 102, 9 },
+        { 62, 76, 3, 216, 5 },
+        { 150, 108, 224, 41, 10 },
+        { 161, 188, 3, 39, 12 }, },
+      { { 93, 105, 19, 173, 1 },
+        { 159, 110, 2, 212, 10 },
+        { 139, 92, 137, 107, 10 },
+        { 82, 180, 7, 111, 9 }, },
+      { { 89, 82, 185, 227, 11 },
+        { 86, 156, 15, 220, 7 },
+        { 220, 121, 212, 169, 10 },
+        { 227, 191, 3, 150, 10 }, },
+      { { 93, 70, 244, 172, 2 },
+        { 170, 189, 10, 240, 6 },
+        { 67, 82, 246, 43, 10 },
+        { 96, 245, 11, 213, 5 }, },
+      { { 95, 128, 157, 46, 8 },
+        { 154, 169, 23, 209, 1 },
+        { 23, 75, 144, 31, 10 },
+        { 136, 190, 137, 85, 9 }, },
+      { { 95, 224, 251, 80, 14 },
+        { 179, 220, 213, 217, 4 },
+        { 112, 173, 240, 127, 10 },
+        { 41, 186, 179, 188, 13 }, },
+      { { 95, 235, 211, 215, 0 },
+        { 187, 206, 152, 221, 11 },
+        { 14, 188, 189, 127, 10 },
+        { 219, 177, 151, 61, 13 }, },
+      { { 100, 105, 134, 115, 5 },
+        { 133, 199, 226, 140, 9 },
+        { 172, 230, 25, 98, 6 },
+        { 147, 20, 126, 58, 1 }, },
+      { { 96, 188, 232, 205, 8 },
+        { 105, 160, 53, 172, 14 },
+        { 27, 49, 115, 208, 6 },
+        { 115, 90, 192, 89, 6 }, },
+      { { 100, 158, 227, 5, 6 },
+        { 248, 208, 120, 164, 12 },
+        { 106, 12, 119, 146, 6 },
+        { 50, 81, 224, 177, 15 }, },
+      { { 98, 212, 165, 37, 13 },
+        { 92, 133, 115, 165, 4 },
+        { 186, 74, 82, 180, 6 },
+        { 42, 92, 234, 19, 10 }, },
+      { { 98, 246, 143, 142, 3 },
+        { 93, 245, 60, 161, 3 },
+        { 199, 31, 22, 244, 6 },
+        { 200, 83, 202, 251, 10 }, },
+      { { 101, 96, 72, 36, 7 },
+        { 173, 20, 102, 192, 0 },
+        { 226, 65, 32, 106, 6 },
+        { 0, 54, 98, 139, 5 }, },
+      { { 99, 180, 12, 145, 8 },
+        { 65, 1, 181, 229, 2 },
+        { 24, 147, 2, 220, 6 },
+        { 74, 122, 216, 8, 2 }, },
+      { { 99, 159, 233, 153, 13 },
+        { 116, 162, 253, 229, 14 },
+        { 185, 153, 127, 156, 6 },
+        { 122, 123, 244, 82, 14 }, },
+      { { 101, 237, 229, 156, 7 },
+        { 189, 183, 240, 224, 14 },
+        { 227, 154, 123, 122, 6 },
+        { 112, 112, 254, 219, 13 }, },
+      { { 103, 235, 231, 112, 4 },
+        { 177, 199, 250, 201, 12 },
+        { 32, 238, 125, 126, 6 },
+        { 57, 53, 254, 56, 13 }, },
+      { { 106, 1, 200, 157, 4 },
+        { 42, 162, 228, 133, 2 },
+        { 43, 145, 56, 5, 6 },
+        { 74, 18, 116, 85, 4 }, },
+      { { 104, 61, 242, 11, 0 },
+        { 99, 226, 32, 180, 13 },
+        { 13, 4, 251, 193, 6 },
+        { 178, 208, 68, 124, 6 }, },
+      { { 104, 24, 102, 125, 13 },
+        { 110, 97, 227, 140, 12 },
+        { 187, 230, 97, 129, 6 },
+        { 51, 28, 120, 103, 6 }, },
+      { { 108, 84, 97, 80, 15 },
+        { 246, 20, 225, 168, 4 },
+        { 240, 168, 98, 163, 6 },
+        { 33, 88, 114, 134, 15 }, },
+      { { 104, 75, 24, 245, 13 },
+        { 14, 6, 239, 156, 10 },
+        { 186, 241, 141, 33, 6 },
+        { 83, 159, 118, 7, 0 }, },
+      { { 104, 79, 21, 129, 0 },
+        { 18, 7, 40, 180, 10 },
+        { 8, 26, 143, 33, 6 },
+        { 82, 209, 78, 4, 8 }, },
+      { { 110, 110, 244, 89, 0 },
+        { 163, 165, 168, 189, 12 },
+        { 9, 162, 247, 103, 6 },
+        { 59, 209, 90, 92, 5 }, },
+      { { 110, 152, 128, 38, 5 },
+        { 206, 128, 114, 129, 9 },
+        { 166, 64, 17, 151, 6 },
+        { 152, 20, 224, 23, 3 }, },
+      { { 110, 144, 99, 51, 3 },
+        { 246, 80, 178, 133, 5 },
+        { 204, 204, 96, 151, 6 },
+        { 170, 20, 208, 166, 15 }, },
+      { { 110, 241, 228, 10, 7 },
+        { 231, 183, 112, 129, 5 },
+        { 229, 2, 120, 247, 6 },
+        { 168, 16, 238, 222, 7 }, },
+      { { 108, 195, 36, 252, 0 },
+        { 138, 39, 186, 136, 6 },
+        { 3, 242, 76, 51, 6 },
+        { 97, 21, 222, 69, 1 }, },
+      { { 105, 0, 81, 91, 15 },
+        { 54, 48, 225, 220, 1 },
+        { 253, 168, 160, 9, 6 },
+        { 131, 184, 112, 198, 12 }, },
+      { { 107, 64, 14, 250, 12 },
+        { 2, 101, 231, 201, 3 },
+        { 53, 247, 0, 45, 6 },
+        { 201, 62, 122, 100, 0 }, },
+      { { 107, 124, 181, 68, 7 },
+        { 95, 149, 96, 249, 12 },
+        { 226, 42, 211, 237, 6 },
+        { 57, 240, 106, 159, 10 }, },
+      { { 105, 172, 245, 202, 2 },
+        { 51, 177, 48, 248, 15 },
+        { 69, 58, 243, 89, 6 },
+        { 241, 240, 200, 220, 12 }, },
+      { { 105, 167, 102, 247, 12 },
+        { 43, 67, 251, 236, 7 },
+        { 62, 246, 110, 89, 6 },
+        { 227, 125, 252, 45, 4 }, },
+      { { 109, 235, 50, 140, 11 },
+        { 143, 118, 57, 208, 14 },
+        { 211, 20, 205, 123, 6 },
+        { 112, 185, 198, 239, 1 }, },
+      { { 116, 23, 252, 110, 12 },
+        { 232, 171, 111, 184, 5 },
+        { 55, 99, 254, 130, 14 },
+        { 161, 223, 109, 81, 7 }, },
+      { { 112, 97, 170, 185, 4 },
+        { 1, 238, 230, 132, 6 },
+        { 41, 213, 88, 96, 14 },
+        { 98, 22, 119, 120, 0 }, },
+      { { 116, 67, 17, 82, 1 },
+        { 148, 14, 168, 152, 1 },
+        { 132, 168, 140, 34, 14 },
+        { 129, 145, 87, 2, 9 }, },
+      { { 112, 185, 187, 138, 9 },
+        { 85, 234, 53, 144, 15 },
+        { 149, 29, 217, 208, 14 },
+        { 240, 154, 197, 122, 10 }, },
+      { { 118, 148, 62, 229, 4 },
+        { 200, 73, 118, 189, 6 },
+        { 42, 119, 194, 150, 14 },
+        { 107, 214, 233, 33, 3 }, },
+      { { 118, 188, 96, 18, 9 },
+        { 229, 8, 177, 161, 13 },
+        { 148, 128, 99, 214, 14 },
+        { 184, 88, 209, 10, 7 }, },
+      { { 112, 155, 7, 165, 4 },
+        { 88, 75, 122, 132, 10 },
+        { 42, 94, 13, 144, 14 },
+        { 82, 21, 237, 33, 10 }, },
+      { { 116, 139, 191, 1, 3 },
+        { 148, 219, 60, 148, 12 },
+        { 200, 15, 221, 18, 14 },
+        { 50, 147, 205, 178, 9 }, },
+      { { 114, 248, 93, 79, 11 },
+        { 125, 61, 53, 157, 9 },
+        { 223, 43, 161, 244, 14 },
+        { 155, 154, 203, 203, 14 }, },
+      { { 118, 211, 218, 167, 15 },
+        { 236, 222, 127, 149, 3 },
+        { 254, 85, 188, 182, 14 },
+        { 202, 159, 231, 179, 7 }, },
+      { { 117, 36, 208, 249, 9 },
+        { 165, 168, 163, 252, 2 },
+        { 153, 240, 178, 74, 14 },
+        { 67, 252, 81, 90, 5 }, },
+      { { 117, 60, 188, 48, 6 },
+        { 193, 153, 230, 240, 12 },
+        { 96, 195, 211, 202, 14 },
+        { 48, 246, 121, 152, 3 }, },
+      { { 119, 3, 201, 213, 15 },
+        { 188, 154, 237, 205, 2 },
+        { 250, 185, 60, 14, 14 },
+        { 75, 59, 117, 147, 13 }, },
+      { { 113, 69, 59, 42, 5 },
+        { 20, 110, 102, 240, 5 },
+        { 165, 77, 202, 40, 14 },
+        { 160, 246, 103, 98, 8 }, },
+      { { 115, 108, 25, 223, 1 },
+        { 29, 44, 164, 253, 11 },
+        { 143, 185, 131, 108, 14 },
+        { 219, 242, 83, 75, 8 }, },
+      { { 113, 72, 238, 44, 10 },
+        { 40, 253, 39, 192, 12 },
+        { 83, 71, 113, 40, 14 },
+        { 48, 62, 75, 241, 4 }, },
+      { { 115, 111, 34, 124, 0 },
+        { 9, 110, 170, 233, 12 },
+        { 3, 228, 79, 108, 14 },
+        { 57, 117, 87, 105, 0 }, },
+      { { 115, 145, 99, 174, 14 },
+        { 120, 122, 115, 193, 7 },
+        { 119, 92, 104, 156, 14 },
+        { 232, 60, 229, 225, 14 }, },
+      { { 117, 131, 158, 142, 9 },
+        { 140, 235, 61, 208, 3 },
+        { 151, 23, 156, 26, 14 },
+        { 192, 187, 205, 115, 1 }, },
+      { { 119, 191, 100, 123, 6 },
+        { 225, 59, 250, 237, 13 },
+        { 109, 226, 111, 222, 14 },
+        { 187, 117, 253, 200, 7 }, },
+      { { 115, 229, 189, 18, 10 },
+        { 17, 159, 181, 241, 5 },
+        { 84, 139, 218, 124, 14 },
+        { 168, 250, 223, 152, 8 }, },
+      { { 115, 207, 104, 128, 3 },
+        { 36, 30, 60, 225, 14 },
+        { 192, 17, 111, 60, 14 },
+        { 120, 115, 199, 130, 4 }, },
+      { { 113, 247, 74, 10, 0 },
+        { 97, 110, 60, 224, 1 },
+        { 5, 5, 46, 248, 14 },
+        { 128, 115, 199, 104, 6 }, },
+      { { 120, 45, 207, 39, 6 },
+        { 59, 219, 102, 164, 9 },
+        { 110, 79, 59, 65, 14 },
+        { 146, 86, 109, 189, 12 }, },
+      { { 124, 2, 58, 157, 7 },
+        { 142, 120, 236, 148, 6 },
+        { 235, 149, 196, 3, 14 },
+        { 98, 147, 113, 231, 1 }, },
+      { { 122, 92, 206, 58, 4 },
+        { 98, 237, 230, 161, 9 },
+        { 37, 199, 51, 165, 14 },
+        { 152, 86, 123, 116, 6 }, },
+      { { 122, 114, 16, 7, 7 },
+        { 79, 28, 104, 149, 1 },
+        { 238, 0, 132, 229, 14 },
+        { 138, 145, 99, 143, 2 }, },
+      { { 126, 178, 36, 208, 11 },
+        { 199, 25, 185, 137, 6 },
+        { 208, 178, 68, 215, 14 },
+        { 105, 25, 217, 142, 3 }, },
+      { { 120, 253, 197, 213, 2 },
+        { 123, 159, 176, 172, 10 },
+        { 74, 186, 59, 241, 14 },
+        { 83, 80, 223, 157, 14 }, },
+      { { 126, 232, 117, 158, 9 },
+        { 191, 45, 177, 145, 15 },
+        { 151, 154, 225, 119, 14 },
+        { 248, 152, 219, 79, 13 }, },
+      { { 123, 28, 43, 68, 14 },
+        { 90, 88, 101, 233, 12 },
+        { 114, 45, 67, 141, 14 },
+        { 57, 122, 97, 165, 10 }, },
+      { { 127, 4, 160, 250, 2 },
+        { 130, 184, 162, 233, 7 },
+        { 69, 240, 82, 15, 14 },
+        { 233, 116, 81, 212, 1 }, },
+      { { 123, 39, 78, 235, 3 },
+        { 39, 123, 46, 237, 3 },
+        { 205, 119, 46, 77, 14 },
+        { 203, 119, 77, 238, 4 }, },
+      { { 125, 38, 127, 122, 1 },
+        { 183, 105, 174, 248, 5 },
+        { 133, 239, 230, 75, 14 },
+        { 161, 247, 89, 110, 13 }, },
+      { { 127, 50, 169, 94, 10 },
+        { 219, 184, 173, 201, 5 },
+        { 87, 169, 84, 207, 14 },
+        { 169, 59, 81, 221, 11 }, },
+      { { 121, 180, 170, 170, 7 },
+        { 71, 248, 118, 224, 7 },
+        { 229, 85, 82, 217, 14 },
+        { 224, 118, 225, 254, 2 }, },
+      { { 125, 176, 215, 37, 3 },
+        { 255, 217, 50, 212, 0 },
+        { 202, 78, 176, 219, 14 },
+        { 2, 180, 201, 191, 15 }, },
+      { { 127, 147, 79, 12, 2 },
+        { 250, 123, 60, 193, 0 },
+        { 67, 15, 44, 159, 14 },
+        { 8, 51, 205, 229, 15 }, },
+      { { 125, 252, 16, 66, 2 },
+        { 195, 28, 48, 248, 9 },
+        { 68, 32, 131, 251, 14 },
+        { 145, 240, 195, 140, 3 }, },
+      { { 125, 213, 216, 211, 15 },
+        { 230, 158, 245, 252, 3 },
+        { 252, 177, 186, 187, 14 },
+        { 195, 250, 247, 150, 7 }, },
+      { { 128, 56, 32, 103, 11 },
+        { 77, 16, 3, 14, 13 },
+        { 222, 96, 65, 192, 1 },
+        { 183, 12, 0, 139, 2 }, },
+      { { 132, 17, 185, 214, 3 },
+        { 220, 146, 132, 26, 7 },
+        { 198, 185, 216, 130, 1 },
+        { 229, 130, 20, 147, 11 }, },
+      { { 128, 3, 252, 100, 10 },
+        { 40, 147, 15, 26, 4 },
+        { 82, 99, 252, 0, 1 },
+        { 37, 143, 12, 145, 4 }, },
+      { { 130, 59, 15, 187, 10 },
+        { 81, 115, 143, 7, 11 },
+        { 93, 223, 13, 196, 1 },
+        { 222, 15, 28, 232, 10 }, },
+      { { 134, 42, 167, 117, 10 },
+        { 153, 209, 139, 15, 12 },
+        { 90, 238, 85, 70, 1 },
+        { 63, 13, 24, 185, 9 }, },
+      { { 132, 27, 89, 75, 7 },
+        { 244, 50, 76, 30, 9 },
+        { 237, 41, 173, 130, 1 },
+        { 151, 131, 36, 194, 15 }, },
+      { { 130, 68, 49, 200, 10 },
+        { 16, 52, 1, 59, 6 },
+        { 81, 56, 194, 36, 1 },
+        { 109, 200, 2, 192, 8 }, },
+      { { 130, 89, 216, 117, 3 },
+        { 108, 150, 134, 31, 8 },
+        { 202, 225, 185, 164, 1 },
+        { 31, 134, 22, 147, 6 }, },
+      { { 132, 72, 31, 220, 14 },
+        { 152, 117, 197, 26, 10 },
+        { 115, 191, 129, 34, 1 },
+        { 85, 138, 58, 225, 9 }, },
+      { { 130, 181, 229, 107, 4 },
+        { 113, 163, 82, 47, 5 },
+        { 45, 106, 122, 212, 1 },
+        { 175, 68, 172, 88, 14 }, },
+      { { 128, 183, 10, 183, 0 },
+        { 73, 66, 158, 38, 3 },
+        { 14, 213, 14, 208, 1 },
+        { 198, 71, 148, 41, 2 }, },
+      { { 134, 178, 80, 25, 10 },
+        { 225, 48, 153, 23, 0 },
+        { 89, 128, 164, 214, 1 },
+        { 14, 137, 144, 200, 7 }, },
+      { { 128, 204, 47, 123, 8 },
+        { 16, 101, 151, 46, 13 },
+        { 29, 239, 67, 48, 1 },
+        { 183, 78, 154, 96, 8 }, },
+      { { 134, 253, 182, 100, 8 },
+        { 201, 199, 19, 59, 12 },
+        { 18, 102, 219, 246, 1 },
+        { 61, 204, 142, 57, 3 }, },
+      { { 129, 121, 60, 62, 9 },
+        { 77, 39, 135, 82, 13 },
+        { 151, 195, 201, 232, 1 },
+        { 180, 174, 30, 75, 2 }, },
+      { { 133, 96, 132, 133, 11 },
+        { 141, 149, 1, 70, 2 },
+        { 218, 18, 16, 106, 1 },
+        { 70, 40, 10, 155, 1 }, },
+      { { 131, 98, 22, 146, 5 },
+        { 5, 69, 200, 83, 3 },
+        { 164, 150, 132, 108, 1 },
+        { 204, 161, 58, 42, 0 }, },
+      { { 131, 128, 229, 221, 15 },
+        { 60, 177, 209, 79, 6 },
+        { 251, 186, 112, 28, 1 },
+        { 111, 40, 184, 211, 12 }, },
+      { { 135, 160, 76, 203, 2 },
+        { 161, 49, 20, 79, 3 },
+        { 77, 51, 32, 94, 1 },
+        { 207, 34, 136, 200, 5 }, },
+      { { 135, 184, 138, 180, 13 },
+        { 205, 192, 215, 67, 10 },
+        { 178, 213, 17, 222, 1 },
+        { 92, 46, 176, 59, 3 }, },
+      { { 142, 2, 6, 56, 4 },
+        { 130, 97, 202, 3, 0 },
+        { 33, 198, 4, 7, 1 },
+        { 12, 5, 56, 100, 1 }, },
+      { { 140, 54, 125, 172, 7 },
+        { 255, 49, 78, 50, 6 },
+        { 227, 91, 230, 195, 1 },
+        { 100, 199, 40, 207, 15 }, },
+      { { 140, 65, 233, 44, 2 },
+        { 186, 182, 6, 2, 4 },
+        { 67, 73, 120, 35, 1 },
+        { 36, 6, 6, 213, 13 }, },
+      { { 140, 152, 59, 175, 12 },
+        { 218, 96, 87, 22, 15 },
+        { 63, 93, 193, 147, 1 },
+        { 246, 142, 160, 101, 11 }, },
+      { { 136, 244, 107, 79, 11 },
+        { 127, 116, 21, 46, 5 },
+        { 223, 45, 98, 241, 1 },
+        { 167, 74, 130, 239, 14 }, },
+      { { 143, 44, 197, 204, 4 },
+        { 187, 161, 64, 107, 10 },
+        { 35, 58, 51, 79, 1 },
+        { 93, 96, 40, 93, 13 }, },
+      { { 141, 55, 126, 115, 3 },
+        { 231, 83, 142, 126, 5 },
+        { 204, 231, 238, 203, 1 },
+        { 167, 231, 28, 174, 7 }, },
+      { { 139, 69, 79, 63, 7 },
+        { 62, 119, 198, 103, 1 },
+        { 239, 207, 42, 45, 1 },
+        { 142, 102, 62, 231, 12 }, },
+      { { 141, 86, 37, 150, 0 },
+        { 218, 5, 136, 98, 7 },
+        { 6, 154, 70, 171, 1 },
+        { 228, 97, 26, 5, 11 }, },
+      { { 139, 191, 24, 57, 2 },
+        { 67, 50, 158, 119, 8 },
+        { 73, 193, 143, 221, 1 },
+        { 30, 231, 148, 204, 2 }, },
+      { { 141, 166, 67, 9, 4 },
+        { 179, 96, 88, 102, 0 },
+        { 41, 12, 38, 91, 1 },
+        { 6, 97, 160, 108, 13 }, },
+      { { 141, 208, 202, 166, 8 },
+        { 234, 196, 23, 66, 3 },
+        { 22, 85, 48, 187, 1 },
+        { 196, 46, 130, 53, 7 }, },
+      { { 139, 246, 152, 79, 4 },
+        { 75, 164, 92, 127, 1 },
+        { 47, 33, 150, 253, 1 },
+        { 143, 227, 162, 93, 2 }, },
+      { { 144, 18, 153, 165, 4 },
+        { 88, 136, 78, 22, 2 },
+        { 42, 89, 148, 128, 9 },
+        { 70, 135, 33, 17, 10 }, },
+      { { 150, 46, 4, 135, 5 },
+        { 141, 9, 72, 39, 11 },
+        { 174, 18, 7, 70, 9 },
+        { 222, 65, 41, 11, 1 }, },
+      { { 146, 92, 163, 212, 0 },
+        { 88, 204, 128, 43, 14 },
+        { 2, 188, 83, 164, 9 },
+        { 125, 64, 19, 49, 10 }, },
+      { { 146, 133, 143, 119, 10 },
+        { 24, 219, 151, 47, 1 },
+        { 94, 239, 26, 20, 9 },
+        { 143, 78, 157, 177, 8 }, },
+      { { 148, 169, 61, 69, 10 },
+        { 153, 27, 21, 30, 12 },
+        { 90, 43, 201, 82, 9 },
+        { 55, 138, 141, 137, 9 }, },
+      { { 145, 32, 243, 51, 2 },
+        { 49, 216, 130, 86, 5 },
+        { 76, 204, 240, 72, 9 },
+        { 166, 164, 17, 184, 12 }, },
+      { { 145, 39, 109, 79, 3 },
+        { 61, 59, 12, 110, 5 },
+        { 207, 43, 110, 72, 9 },
+        { 167, 99, 13, 203, 12 }, },
+      { { 151, 51, 253, 233, 10 },
+        { 241, 187, 15, 95, 6 },
+        { 89, 123, 252, 206, 9 },
+        { 111, 175, 13, 216, 15 }, },
+      { { 151, 72, 243, 129, 3 },
+        { 180, 220, 0, 87, 14 },
+        { 200, 28, 241, 46, 9 },
+        { 126, 160, 3, 178, 13 }, },
+      { { 151, 159, 160, 6, 9 },
+        { 204, 138, 25, 99, 13 },
+        { 150, 0, 95, 158, 9 },
+        { 188, 105, 133, 19, 3 }, },
+      { { 147, 208, 63, 215, 12 },
+        { 88, 77, 213, 95, 7 },
+        { 62, 191, 192, 188, 9 },
+        { 239, 170, 187, 33, 10 }, },
+      { { 149, 252, 208, 110, 0 },
+        { 233, 172, 18, 122, 9 },
+        { 7, 96, 179, 250, 9 },
+        { 149, 228, 131, 89, 7 }, },
+      { { 147, 195, 178, 11, 1 },
+        { 4, 238, 24, 87, 5 },
+        { 141, 4, 220, 60, 9 },
+        { 174, 161, 135, 114, 0 }, },
+      { { 145, 195, 66, 1, 14 },
+        { 32, 94, 89, 70, 0 },
+        { 120, 4, 44, 56, 9 },
+        { 6, 41, 167, 160, 4 }, },
+      { { 158, 10, 212, 208, 9 },
+        { 166, 137, 137, 27, 10 },
+        { 144, 178, 181, 7, 9 },
+        { 93, 137, 25, 22, 5 }, },
+      { { 158, 62, 24, 70, 8 },
+        { 203, 8, 13, 59, 9 },
+        { 22, 33, 135, 199, 9 },
+        { 157, 203, 1, 13, 3 }, },
+      { { 154, 97, 122, 220, 9 },
+        { 47, 110, 133, 27, 6 },
+        { 147, 181, 232, 101, 9 },
+        { 109, 138, 23, 111, 4 }, },
+      { { 152, 200, 135, 101, 13 },
+        { 30, 205, 83, 14, 8 },
+        { 186, 110, 17, 49, 9 },
+        { 23, 12, 171, 55, 8 }, },
+      { { 152, 193, 223, 48, 9 },
+        { 54, 207, 151, 18, 0 },
+        { 144, 207, 184, 49, 9 },
+        { 4, 142, 159, 54, 12 }, },
+      { { 158, 249, 40, 250, 12 },
+        { 195, 46, 215, 11, 15 },
+        { 53, 241, 73, 247, 9 },
+        { 253, 14, 183, 76, 3 }, },
+      { { 158, 240, 171, 22, 1 },
+        { 223, 204, 148, 3, 5 },
+        { 134, 141, 80, 247, 9 },
+        { 172, 2, 147, 63, 11 }, },
+      { { 152, 251, 117, 9, 13 },
+        { 119, 47, 89, 22, 12 },
+        { 185, 10, 237, 241, 9 },
+        { 54, 137, 175, 78, 14 }, },
+      { { 159, 32, 1, 53, 4 },
+        { 155, 8, 194, 71, 0 },
+        { 42, 200, 0, 79, 9 },
+        { 14, 36, 49, 13, 9 }, },
+      { { 153, 18, 120, 7, 12 },
+        { 106, 8, 77, 86, 5 },
+        { 62, 1, 228, 137, 9 },
+        { 166, 171, 33, 5, 6 }, },
+      { { 155, 131, 245, 126, 11 },
+        { 62, 187, 155, 91, 5 },
+        { 215, 234, 252, 29, 9 },
+        { 173, 173, 157, 215, 12 }, },
+      { { 153, 249, 200, 173, 5 },
+        { 111, 174, 86, 70, 10 },
+        { 171, 81, 57, 249, 9 },
+        { 86, 38, 167, 95, 6 }, },
+      { { 157, 228, 46, 236, 2 },
+        { 139, 125, 22, 106, 6 },
+        { 67, 119, 66, 123, 9 },
+        { 101, 102, 139, 237, 1 }, },
+      { { 155, 219, 144, 210, 3 },
+        { 70, 158, 152, 91, 11 },
+        { 196, 176, 157, 189, 9 },
+        { 221, 161, 151, 150, 2 }, },
+      { { 159, 254, 132, 153, 15 },
+        { 199, 189, 217, 103, 10 },
+        { 249, 146, 23, 255, 9 },
+        { 94, 105, 187, 222, 3 }, },
+      { { 162, 66, 140, 215, 9 },
+        { 12, 133, 173, 15, 3 },
+        { 158, 179, 20, 36, 5 },
+        { 207, 11, 90, 19, 0 }, },
+      { { 164, 205, 25, 53, 7 },
+        { 156, 22, 246, 54, 8 },
+        { 234, 201, 139, 50, 5 },
+        { 22, 198, 246, 131, 9 }, },
+      { { 166, 213, 162, 25, 0 },
+        { 192, 230, 176, 39, 4 },
+        { 9, 132, 90, 182, 5 },
+        { 46, 64, 214, 112, 3 }, },
+      { { 160, 223, 192, 176, 6 },
+        { 96, 150, 250, 34, 10 },
+        { 96, 208, 63, 176, 5 },
+        { 84, 69, 246, 144, 6 }, },
+      { { 163, 49, 180, 144, 4 },
+        { 65, 131, 224, 83, 6 },
+        { 32, 146, 216, 204, 5 },
+        { 108, 160, 124, 24, 2 }, },
+      { { 167, 32, 134, 58, 15 },
+        { 133, 241, 227, 67, 1 },
+        { 245, 198, 16, 78, 5 },
+        { 140, 44, 120, 250, 1 }, },
+      { { 167, 56, 45, 40, 13 },
+        { 213, 33, 103, 67, 12 },
+        { 177, 75, 65, 206, 5 },
+        { 60, 46, 104, 74, 11 }, },
+      { { 163, 63, 204, 220, 14 },
+        { 105, 179, 237, 107, 10 },
+        { 115, 179, 63, 204, 5 },
+        { 93, 107, 124, 217, 6 }, },
+      { { 165, 62, 179, 132, 11 },
+        { 221, 208, 41, 114, 14 },
+        { 210, 28, 215, 202, 5 },
+        { 116, 233, 64, 187, 11 }, },
+      { { 161, 112, 26, 189, 7 },
+        { 77, 116, 230, 86, 2 },
+        { 235, 213, 128, 232, 5 },
+        { 70, 166, 114, 235, 2 }, },
+      { { 167, 103, 101, 55, 9 },
+        { 189, 7, 171, 103, 5 },
+        { 158, 202, 110, 110, 5 },
+        { 174, 109, 94, 11, 13 }, },
+      { { 165, 123, 102, 174, 4 },
+        { 233, 103, 106, 66, 15 },
+        { 39, 86, 109, 234, 5 },
+        { 244, 37, 110, 105, 7 }, },
+      { { 161, 213, 29, 147, 2 },
+        { 80, 23, 180, 118, 3 },
+        { 76, 155, 138, 184, 5 },
+        { 198, 226, 222, 128, 10 }, },
+      { { 163, 248, 233, 155, 14 },
+        { 113, 180, 245, 71, 15 },
+        { 125, 153, 113, 252, 5 },
+        { 254, 42, 242, 216, 14 }, },
+      { { 165, 211, 131, 218, 3 },
+        { 212, 246, 184, 74, 3 },
+        { 197, 188, 28, 186, 5 },
+        { 197, 33, 214, 242, 11 }, },
+      { { 165, 214, 235, 188, 6 },
+        { 248, 244, 254, 98, 6 },
+        { 99, 221, 118, 186, 5 },
+        { 100, 103, 242, 241, 15 }, },
+      { { 170, 38, 227, 151, 9 },
+        { 63, 192, 169, 39, 7 },
+        { 158, 156, 118, 69, 5 },
+        { 238, 73, 80, 63, 12 }, },
+      { { 174, 30, 201, 63, 12 },
+        { 250, 160, 239, 39, 9 },
+        { 63, 201, 55, 135, 5 },
+        { 158, 79, 112, 85, 15 }, },
+      { { 172, 119, 184, 237, 2 },
+        { 203, 182, 46, 62, 6 },
+        { 75, 113, 222, 227, 5 },
+        { 103, 199, 70, 221, 3 }, },
+      { { 170, 169, 238, 77, 15 },
+        { 47, 243, 117, 15, 12 },
+        { 251, 39, 121, 85, 5 },
+        { 63, 10, 236, 255, 4 }, },
+      { { 170, 128, 121, 170, 6 },
+        { 50, 48, 118, 19, 7 },
+        { 101, 89, 224, 21, 5 },
+        { 236, 134, 224, 196, 12 }, },
+      { { 174, 194, 96, 202, 1 },
+        { 166, 36, 56, 11, 7 },
+        { 133, 48, 100, 55, 5 },
+        { 237, 1, 194, 70, 5 }, },
+      { { 169, 58, 152, 98, 11 },
+        { 71, 144, 47, 90, 9 },
+        { 212, 97, 149, 201, 5 },
+        { 149, 175, 64, 158, 2 }, },
+      { { 171, 18, 81, 200, 12 },
+        { 114, 32, 105, 91, 2 },
+        { 49, 56, 164, 141, 5 },
+        { 77, 169, 96, 68, 14 }, },
+      { { 173, 102, 219, 216, 13 },
+        { 183, 228, 237, 122, 2 },
+        { 177, 189, 182, 107, 5 },
+        { 69, 235, 114, 126, 13 }, },
+      { { 173, 82, 221, 74, 1 },
+        { 246, 165, 44, 90, 1 },
+        { 133, 43, 180, 171, 5 },
+        { 133, 163, 74, 86, 15 }, },
+      { { 169, 182, 113, 16, 8 },
+        { 115, 0, 185, 114, 4 },
+        { 16, 136, 230, 217, 5 },
+        { 36, 233, 208, 12, 14 }, },
+      { { 173, 186, 226, 53, 0 },
+        { 235, 192, 186, 70, 12 },
+        { 10, 196, 117, 219, 5 },
+        { 54, 37, 208, 61, 7 }, },
+      { { 173, 151, 65, 223, 12 },
+        { 250, 34, 249, 110, 3 },
+        { 63, 184, 46, 155, 5 },
+        { 199, 105, 244, 69, 15 }, },
+      { { 171, 243, 182, 44, 7 },
+        { 79, 247, 122, 83, 4 },
+        { 227, 70, 220, 253, 5 },
+        { 44, 165, 238, 255, 2 }, },
+      { { 182, 34, 108, 113, 12 },
+        { 161, 9, 239, 15, 4 },
+        { 56, 227, 100, 70, 13 },
+        { 47, 15, 121, 8, 5 }, },
+      { { 180, 30, 37, 122, 7 },
+        { 212, 57, 234, 42, 13 },
+        { 229, 234, 71, 130, 13 },
+        { 181, 69, 121, 194, 11 }, },
+      { { 182, 55, 195, 138, 3 },
+        { 245, 250, 40, 35, 3 },
+        { 197, 28, 62, 198, 13 },
+        { 204, 65, 69, 250, 15 }, },
+      { { 176, 76, 212, 55, 0 },
+        { 40, 141, 162, 54, 9 },
+        { 14, 194, 179, 32, 13 },
+        { 150, 196, 91, 17, 4 }, },
+      { { 178, 127, 139, 5, 3 },
+        { 93, 222, 44, 39, 8 },
+        { 202, 13, 31, 228, 13 },
+        { 30, 67, 71, 187, 10 }, },
+      { { 176, 173, 216, 34, 5 },
+        { 37, 138, 118, 50, 9 },
+        { 164, 65, 187, 80, 13 },
+        { 148, 198, 229, 26, 4 }, },
+      { { 180, 155, 130, 43, 11 },
+        { 196, 250, 59, 6, 9 },
+        { 221, 68, 29, 146, 13 },
+        { 150, 13, 197, 242, 3 }, },
+      { { 176, 211, 78, 194, 3 },
+        { 100, 95, 60, 10, 3 },
+        { 196, 55, 44, 176, 13 },
+        { 197, 3, 207, 162, 6 }, },
+      { { 177, 61, 126, 195, 14 },
+        { 97, 91, 101, 126, 15 },
+        { 124, 55, 235, 200, 13 },
+        { 247, 234, 109, 168, 6 }, },
+      { { 177, 6, 164, 99, 14 },
+        { 0, 153, 107, 110, 5 },
+        { 124, 98, 86, 8, 13 },
+        { 167, 109, 105, 144, 0 }, },
+      { { 179, 43, 116, 63, 14 },
+        { 41, 59, 235, 87, 13 },
+        { 127, 194, 237, 76, 13 },
+        { 190, 173, 125, 201, 4 }, },
+      { { 183, 31, 214, 70, 15 },
+        { 236, 219, 105, 123, 9 },
+        { 246, 38, 191, 142, 13 },
+        { 157, 233, 109, 179, 7 }, },
+      { { 177, 110, 241, 244, 5 },
+        { 61, 140, 234, 122, 14 },
+        { 162, 248, 247, 104, 13 },
+        { 117, 229, 115, 27, 12 }, },
+      { { 177, 126, 83, 138, 14 },
+        { 113, 124, 105, 114, 11 },
+        { 117, 28, 167, 232, 13 },
+        { 212, 233, 99, 232, 14 }, },
+      { { 183, 98, 223, 55, 7 },
+        { 189, 221, 238, 87, 1 },
+        { 238, 207, 180, 110, 13 },
+        { 142, 167, 123, 187, 13 }, },
+      { { 177, 169, 248, 148, 9 },
+        { 45, 138, 181, 82, 14 },
+        { 146, 145, 249, 88, 13 },
+        { 116, 170, 213, 27, 4 }, },
+      { { 179, 183, 217, 210, 4 },
+        { 113, 138, 252, 123, 3 },
+        { 36, 185, 190, 220, 13 },
+        { 205, 227, 245, 24, 14 }, },
+      { { 179, 238, 187, 76, 6 },
+        { 25, 252, 124, 123, 12 },
+        { 99, 45, 215, 124, 13 },
+        { 61, 227, 227, 249, 8 }, },
+      { { 184, 44, 165, 82, 4 },
+        { 19, 137, 224, 42, 13 },
+        { 36, 170, 83, 65, 13 },
+        { 181, 64, 121, 28, 8 }, },
+      { { 184, 20, 13, 235, 15 },
+        { 86, 57, 103, 46, 3 },
+        { 253, 123, 2, 129, 13 },
+        { 199, 78, 105, 198, 10 }, },
+      { { 188, 25, 220, 199, 7 },
+        { 238, 155, 100, 30, 11 },
+        { 238, 51, 185, 131, 13 },
+        { 215, 130, 109, 151, 7 }, },
+      { { 188, 84, 38, 185, 6 },
+        { 194, 125, 226, 38, 6 },
+        { 105, 214, 66, 163, 13 },
+        { 102, 68, 123, 228, 3 }, },
+      { { 190, 103, 55, 196, 5 },
+        { 159, 79, 104, 59, 6 },
+        { 162, 62, 206, 103, 13 },
+        { 109, 193, 111, 47, 9 }, },
+      { { 184, 250, 232, 211, 5 },
+        { 103, 140, 252, 14, 15 },
+        { 172, 177, 117, 241, 13 },
+        { 247, 3, 243, 30, 6 }, },
+      { { 190, 194, 26, 55, 8 },
+        { 138, 76, 191, 23, 1 },
+        { 30, 197, 132, 55, 13 },
+        { 142, 143, 211, 37, 1 }, },
+      { { 187, 24, 207, 164, 11 },
+        { 126, 217, 39, 67, 10 },
+        { 210, 95, 49, 141, 13 },
+        { 92, 46, 73, 183, 14 }, },
+      { { 189, 1, 126, 246, 13 },
+        { 174, 75, 231, 90, 7 },
+        { 182, 247, 232, 11, 13 },
+        { 229, 174, 125, 39, 5 }, },
+      { { 189, 34, 47, 210, 7 },
+        { 151, 89, 236, 74, 7 },
+        { 228, 191, 68, 75, 13 },
+        { 229, 35, 121, 174, 9 }, },
+      { { 189, 2, 85, 133, 5 },
+        { 190, 9, 104, 86, 2 },
+        { 170, 26, 164, 11, 13 },
+        { 70, 161, 105, 7, 13 }, },
+      { { 185, 114, 78, 96, 5 },
+        { 103, 77, 110, 74, 0 },
+        { 160, 103, 36, 233, 13 },
+        { 5, 39, 107, 46, 6 }, },
+      { { 189, 119, 92, 22, 15 },
+        { 239, 31, 237, 114, 1 },
+        { 246, 131, 174, 235, 13 },
+        { 132, 235, 127, 143, 7 }, },
+      { { 185, 136, 172, 46, 1 },
+        { 14, 169, 54, 66, 13 },
+        { 135, 67, 81, 25, 13 },
+        { 180, 38, 201, 87, 0 }, },
+      { { 191, 160, 38, 103, 5 },
+        { 143, 73, 114, 79, 5 },
+        { 174, 102, 64, 95, 13 },
+        { 175, 36, 233, 47, 1 }, },
+      { { 185, 130, 150, 168, 6 },
+        { 2, 249, 122, 82, 2 },
+        { 97, 86, 148, 25, 13 },
+        { 68, 165, 233, 244, 0 }, },
+      { { 189, 135, 23, 24, 10 },
+        { 146, 123, 185, 114, 0 },
+        { 81, 142, 142, 27, 13 },
+        { 4, 233, 221, 228, 9 }, },
+      { { 191, 190, 239, 45, 7 },
+        { 255, 249, 126, 103, 12 },
+        { 235, 79, 119, 223, 13 },
+        { 62, 103, 233, 255, 15 }, },
+      { { 189, 250, 159, 0, 7 },
+        { 215, 221, 124, 82, 8 },
+        { 224, 15, 149, 251, 13 },
+        { 20, 163, 235, 190, 11 }, },
+      { { 194, 112, 53, 187, 8 },
+        { 81, 37, 131, 151, 7 },
+        { 29, 218, 192, 228, 3 },
+        { 238, 156, 26, 72, 10 }, },
+      { { 196, 108, 5, 172, 13 },
+        { 157, 37, 67, 162, 10 },
+        { 179, 90, 3, 98, 3 },
+        { 84, 92, 42, 75, 9 }, },
+      { { 196, 121, 84, 220, 3 },
+        { 237, 55, 128, 154, 10 },
+        { 195, 178, 169, 226, 3 },
+        { 85, 144, 30, 203, 7 }, },
+      { { 194, 106, 81, 13, 8 },
+        { 57, 36, 9, 151, 8 },
+        { 27, 8, 165, 100, 3 },
+        { 30, 153, 2, 73, 12 }, },
+      { { 198, 164, 159, 104, 4 },
+        { 145, 225, 86, 187, 0 },
+        { 33, 111, 146, 86, 3 },
+        { 13, 214, 168, 120, 9 }, },
+      { { 192, 158, 44, 235, 4 },
+        { 64, 33, 94, 174, 15 },
+        { 45, 115, 71, 144, 3 },
+        { 247, 87, 168, 64, 2 }, },
+      { { 198, 146, 33, 73, 13 },
+        { 212, 32, 89, 143, 4 },
+        { 185, 40, 68, 150, 3 },
+        { 47, 25, 160, 66, 11 }, },
+      { { 196, 186, 131, 207, 8 },
+        { 217, 224, 25, 142, 11 },
+        { 31, 60, 21, 210, 3 },
+        { 215, 25, 128, 121, 11 }, },
+      { { 198, 231, 133, 67, 11 },
+        { 149, 151, 25, 175, 1 },
+        { 220, 42, 30, 118, 3 },
+        { 143, 89, 142, 154, 9 }, },
+      { { 198, 215, 175, 70, 4 },
+        { 216, 199, 92, 171, 5 },
+        { 38, 47, 94, 182, 3 },
+        { 173, 83, 174, 49, 11 }, },
+      { { 197, 54, 85, 77, 11 },
+        { 253, 49, 9, 254, 0 },
+        { 219, 42, 166, 202, 3 },
+        { 7, 249, 8, 203, 15 }, },
+      { { 195, 147, 255, 13, 7 },
+        { 124, 243, 92, 215, 4 },
+        { 235, 15, 252, 156, 3 },
+        { 46, 179, 172, 243, 14 }, },
+      { { 193, 245, 112, 165, 10 },
+        { 105, 22, 19, 246, 6 },
+        { 90, 80, 234, 248, 3 },
+        { 102, 252, 134, 137, 6 }, },
+      { { 204, 57, 113, 197, 0 },
+        { 251, 2, 0, 158, 14 },
+        { 10, 56, 233, 195, 3 },
+        { 119, 144, 4, 13, 15 }, },
+      { { 200, 2, 137, 73, 2 },
+        { 18, 176, 12, 142, 0 },
+        { 73, 41, 20, 1, 3 },
+        { 7, 19, 0, 212, 8 }, },
+      { { 200, 124, 100, 74, 5 },
+        { 103, 37, 64, 170, 13 },
+        { 165, 34, 99, 225, 3 },
+        { 181, 80, 42, 78, 6 }, },
+      { { 202, 103, 225, 13, 7 },
+        { 63, 182, 72, 167, 4 },
+        { 235, 8, 126, 101, 3 },
+        { 46, 81, 38, 223, 12 }, },
+      { { 200, 153, 231, 66, 2 },
+        { 114, 211, 16, 138, 13 },
+        { 68, 46, 121, 145, 3 },
+        { 181, 16, 140, 180, 14 }, },
+      { { 200, 170, 178, 16, 5 },
+        { 7, 192, 216, 146, 12 },
+        { 160, 132, 213, 81, 3 },
+        { 52, 145, 176, 62, 0 }, },
+      { { 204, 166, 213, 159, 3 },
+        { 191, 177, 152, 182, 3 },
+        { 207, 154, 182, 83, 3 },
+        { 198, 209, 152, 223, 13 }, },
+      { { 202, 229, 134, 251, 14 },
+        { 3, 247, 211, 175, 3 },
+        { 125, 246, 26, 117, 3 },
+        { 207, 92, 190, 252, 0 }, },
+      { { 202, 217, 124, 49, 15 },
+        { 102, 23, 215, 151, 12 },
+        { 248, 195, 233, 181, 3 },
+        { 62, 158, 190, 134, 6 }, },
+      { { 206, 228, 202, 14, 6 },
+        { 171, 244, 84, 163, 1 },
+        { 103, 5, 50, 119, 3 },
+        { 140, 82, 162, 253, 5 }, },
+      { { 203, 45, 164, 50, 12 },
+        { 3, 131, 195, 227, 13 },
+        { 52, 194, 91, 77, 3 },
+        { 188, 124, 60, 28, 0 }, },
+      { { 203, 87, 214, 130, 2 },
+        { 98, 215, 8, 243, 3 },
+        { 68, 22, 190, 173, 3 },
+        { 204, 241, 14, 180, 6 }, },
+      { { 201, 144, 33, 177, 0 },
+        { 82, 0, 146, 198, 6 },
+        { 8, 216, 64, 153, 3 },
+        { 102, 52, 144, 4, 10 }, },
+      { { 201, 130, 95, 176, 10 },
+        { 50, 81, 159, 210, 2 },
+        { 80, 223, 164, 25, 3 },
+        { 68, 191, 152, 164, 12 }, },
+      { { 203, 158, 212, 36, 7 },
+        { 110, 145, 90, 243, 8 },
+        { 226, 66, 183, 157, 3 },
+        { 28, 245, 168, 151, 6 }, },
+      { { 205, 134, 171, 157, 13 },
+        { 158, 224, 221, 230, 6 },
+        { 187, 157, 86, 27, 3 },
+        { 102, 123, 176, 119, 9 }, },
+      { { 201, 201, 176, 119, 5 },
+        { 14, 134, 210, 222, 13 },
+        { 174, 224, 217, 57, 3 },
+        { 183, 180, 182, 23, 0 }, },
+      { { 201, 250, 31, 99, 2 },
+        { 83, 85, 30, 222, 9 },
+        { 76, 111, 133, 249, 3 },
+        { 151, 183, 138, 172, 10 }, },
+      { { 203, 247, 64, 6, 9 },
+        { 111, 6, 25, 227, 1 },
+        { 150, 0, 46, 253, 3 },
+        { 140, 121, 134, 15, 6 }, },
+      { { 205, 218, 13, 28, 15 },
+        { 222, 53, 221, 194, 8 },
+        { 243, 139, 5, 187, 3 },
+        { 20, 59, 186, 199, 11 }, },
+      { { 208, 11, 130, 83, 15 },
+        { 4, 218, 201, 142, 9 },
+        { 252, 164, 29, 0, 11 },
+        { 151, 25, 53, 178, 0 }, },
+      { { 212, 59, 207, 214, 15 },
+        { 253, 219, 205, 138, 11 },
+        { 246, 191, 61, 194, 11 },
+        { 213, 27, 61, 187, 15 }, },
+      { { 214, 98, 171, 209, 11 },
+        { 149, 220, 141, 143, 6 },
+        { 216, 189, 84, 102, 11 },
+        { 111, 27, 19, 186, 9 }, },
+      { { 212, 102, 200, 58, 15 },
+        { 165, 188, 207, 162, 1 },
+        { 245, 193, 54, 98, 11 },
+        { 132, 95, 51, 218, 5 }, },
+      { { 209, 32, 28, 120, 10 },
+        { 1, 57, 135, 218, 0 },
+        { 81, 227, 128, 72, 11 },
+        { 5, 190, 25, 200, 0 }, },
+      { { 211, 57, 65, 195, 9 },
+        { 117, 10, 1, 207, 11 },
+        { 156, 56, 41, 204, 11 },
+        { 223, 56, 5, 10, 14 }, },
+      { { 209, 7, 160, 253, 4 },
+        { 8, 170, 202, 238, 6 },
+        { 43, 240, 94, 8, 11 },
+        { 103, 117, 53, 81, 0 }, },
+      { { 209, 149, 58, 14, 2 },
+        { 72, 122, 20, 242, 5 },
+        { 71, 5, 202, 152, 11 },
+        { 164, 242, 133, 225, 2 }, },
+      { { 215, 189, 66, 29, 13 },
+        { 237, 106, 209, 231, 8 },
+        { 187, 132, 43, 222, 11 },
+        { 30, 120, 181, 107, 7 }, },
+      { { 215, 192, 166, 80, 13 },
+        { 132, 205, 209, 203, 4 },
+        { 176, 166, 80, 62, 11 },
+        { 45, 56, 187, 50, 1 }, },
+      { { 215, 229, 141, 245, 12 },
+        { 153, 143, 215, 239, 2 },
+        { 58, 251, 26, 126, 11 },
+        { 79, 126, 191, 25, 9 }, },
+      { { 215, 197, 83, 246, 7 },
+        { 188, 94, 210, 251, 3 },
+        { 230, 252, 170, 62, 11 },
+        { 205, 244, 183, 163, 13 }, },
+      { { 213, 254, 112, 184, 8 },
+        { 225, 44, 155, 242, 14 },
+        { 17, 208, 231, 250, 11 },
+        { 116, 253, 147, 72, 7 }, },
+      { { 216, 12, 185, 190, 6 },
+        { 26, 184, 198, 178, 15 },
+        { 103, 217, 211, 1, 11 },
+        { 244, 214, 49, 213, 8 }, },
+      { { 222, 52, 186, 37, 6 },
+        { 203, 216, 70, 183, 4 },
+        { 106, 69, 210, 199, 11 },
+        { 46, 214, 33, 189, 3 }, },
+      { { 220, 14, 198, 139, 14 },
+        { 162, 249, 73, 166, 11 },
+        { 125, 22, 55, 3, 11 },
+        { 214, 89, 41, 244, 5 }, },
+      { { 222, 3, 247, 164, 11 },
+        { 190, 219, 11, 147, 6 },
+        { 210, 94, 252, 7, 11 },
+        { 108, 157, 13, 183, 13 }, },
+      { { 218, 93, 11, 138, 2 },
+        { 82, 126, 4, 163, 11 },
+        { 69, 29, 11, 165, 11 },
+        { 220, 82, 7, 228, 10 }, },
+      { { 216, 113, 249, 127, 15 },
+        { 127, 190, 199, 158, 5 },
+        { 255, 233, 248, 225, 11 },
+        { 167, 158, 55, 223, 14 }, },
+      { { 220, 189, 130, 231, 2 },
+        { 203, 218, 18, 174, 11 },
+        { 78, 116, 27, 211, 11 },
+        { 215, 84, 133, 189, 3 }, },
+      { { 220, 176, 90, 229, 5 },
+        { 239, 72, 86, 158, 2 },
+        { 170, 117, 160, 211, 11 },
+        { 71, 150, 161, 47, 7 }, },
+      { { 218, 147, 222, 80, 0 },
+        { 98, 203, 156, 155, 0 },
+        { 0, 167, 188, 149, 11 },
+        { 13, 147, 157, 52, 6 }, },
+      { { 218, 183, 241, 191, 8 },
+        { 123, 170, 155, 183, 7 },
+        { 31, 216, 254, 213, 11 },
+        { 238, 221, 149, 93, 14 }, },
+      { { 222, 159, 2, 50, 14 },
+        { 194, 90, 219, 163, 9 },
+        { 116, 196, 15, 151, 11 },
+        { 156, 93, 181, 164, 3 }, },
+      { { 218, 196, 13, 85, 0 },
+        { 26, 13, 148, 175, 0 },
+        { 10, 171, 2, 53, 11 },
+        { 15, 82, 155, 5, 8 }, },
+      { { 220, 197, 171, 128, 14 },
+        { 146, 222, 85, 162, 6 },
+        { 112, 29, 90, 51, 11 },
+        { 100, 90, 167, 180, 9 }, },
+      { { 218, 194, 178, 58, 10 },
+        { 2, 252, 155, 147, 5 },
+        { 85, 196, 212, 53, 11 },
+        { 172, 157, 147, 244, 0 }, },
+      { { 218, 218, 88, 253, 0 },
+        { 106, 44, 158, 159, 10 },
+        { 11, 241, 165, 181, 11 },
+        { 95, 151, 147, 69, 6 }, },
+      { { 217, 37, 142, 168, 1 },
+        { 7, 235, 6, 226, 2 },
+        { 129, 87, 26, 73, 11 },
+        { 68, 118, 13, 126, 0 }, },
+      { { 221, 5, 118, 59, 14 },
+        { 162, 123, 195, 246, 5 },
+        { 125, 198, 234, 11, 11 },
+        { 166, 252, 61, 228, 5 }, },
+      { { 221, 46, 153, 8, 12 },
+        { 147, 168, 77, 242, 8 },
+        { 49, 9, 151, 75, 11 },
+        { 20, 251, 33, 92, 9 }, },
+      { { 217, 85, 104, 199, 5 },
+        { 110, 14, 68, 238, 7 },
+        { 174, 49, 106, 169, 11 },
+        { 231, 114, 39, 7, 6 }, },
+      { { 219, 80, 109, 76, 3 },
+        { 126, 61, 4, 203, 4 },
+        { 195, 43, 96, 173, 11 },
+        { 45, 50, 11, 199, 14 }, },
+      { { 223, 104, 170, 56, 8 },
+        { 131, 236, 135, 195, 12 },
+        { 17, 197, 81, 111, 11 },
+        { 60, 62, 19, 124, 1 }, },
+      { { 219, 66, 135, 167, 5 },
+        { 30, 205, 74, 199, 3 },
+        { 174, 94, 20, 45, 11 },
+        { 206, 53, 43, 55, 8 }, },
+      { { 219, 129, 40, 179, 13 },
+        { 6, 10, 215, 199, 7 },
+        { 188, 209, 72, 29, 11 },
+        { 238, 62, 181, 6, 0 }, },
+      { { 217, 163, 194, 250, 13 },
+        { 39, 234, 219, 202, 3 },
+        { 181, 244, 60, 89, 11 },
+        { 197, 61, 181, 126, 4 }, },
+      { { 221, 179, 56, 211, 8 },
+        { 195, 10, 157, 222, 7 },
+        { 28, 177, 204, 219, 11 },
+        { 231, 187, 149, 12, 3 }, },
+      { { 217, 202, 123, 155, 1 },
+        { 54, 108, 156, 214, 15 },
+        { 141, 157, 229, 57, 11 },
+        { 246, 179, 147, 102, 12 }, },
+      { { 219, 246, 158, 176, 7 },
+        { 71, 221, 222, 243, 2 },
+        { 224, 215, 150, 253, 11 },
+        { 76, 247, 187, 190, 2 }, },
+      { { 226, 8, 108, 175, 8 },
+        { 40, 33, 39, 135, 15 },
+        { 31, 83, 97, 4, 7 },
+        { 254, 30, 72, 65, 4 }, },
+      { { 224, 27, 171, 150, 4 },
+        { 88, 194, 236, 130, 15 },
+        { 38, 157, 93, 128, 7 },
+        { 244, 19, 116, 49, 10 }, },
+      { { 224, 72, 115, 243, 0 },
+        { 48, 68, 162, 158, 15 },
+        { 12, 252, 225, 32, 7 },
+        { 247, 148, 82, 32, 12 }, },
+      { { 228, 117, 169, 91, 14 },
+        { 209, 182, 229, 174, 5 },
+        { 125, 169, 90, 226, 7 },
+        { 167, 90, 118, 216, 11 }, },
+      { { 230, 128, 236, 116, 9 },
+        { 172, 129, 183, 139, 4 },
+        { 146, 227, 112, 22, 7 },
+        { 45, 30, 216, 19, 5 }, },
+      { { 226, 175, 118, 72, 7 },
+        { 37, 115, 120, 187, 12 },
+        { 225, 38, 239, 84, 7 },
+        { 61, 209, 236, 234, 4 }, },
+      { { 224, 162, 200, 17, 13 },
+        { 37, 128, 253, 134, 0 },
+        { 184, 129, 52, 80, 7 },
+        { 6, 27, 240, 26, 4 }, },
+      { { 226, 203, 113, 80, 12 },
+        { 48, 6, 249, 155, 12 },
+        { 48, 168, 237, 52, 7 },
+        { 61, 153, 246, 0, 12 }, },
+      { { 224, 210, 73, 197, 15 },
+        { 124, 20, 125, 142, 2 },
+        { 250, 57, 36, 176, 7 },
+        { 71, 27, 226, 131, 14 }, },
+      { { 225, 12, 194, 130, 9 },
+        { 36, 192, 33, 226, 11 },
+        { 148, 20, 51, 8, 7 },
+        { 212, 120, 64, 50, 4 }, },
+      { { 225, 127, 68, 52, 3 },
+        { 109, 23, 170, 226, 8 },
+        { 194, 194, 47, 232, 7 },
+        { 20, 117, 94, 139, 6 }, },
+      { { 231, 173, 69, 177, 14 },
+        { 177, 19, 243, 231, 10 },
+        { 120, 218, 43, 94, 7 },
+        { 94, 124, 252, 136, 13 }, },
+      { { 225, 182, 90, 159, 9 },
+        { 109, 96, 189, 246, 3 },
+        { 159, 149, 166, 216, 7 },
+        { 198, 251, 208, 107, 6 }, },
+      { { 231, 252, 32, 65, 12 },
+        { 193, 4, 113, 239, 12 },
+        { 56, 32, 67, 254, 7 },
+        { 63, 120, 226, 8, 3 }, },
+      { { 238, 51, 65, 56, 1 },
+        { 247, 34, 170, 131, 0 },
+        { 129, 200, 44, 199, 7 },
+        { 12, 21, 84, 78, 15 }, },
+      { { 238, 124, 54, 51, 4 },
+        { 195, 69, 226, 183, 13 },
+        { 44, 198, 195, 231, 7 },
+        { 190, 212, 122, 44, 3 }, },
+      { { 236, 112, 123, 248, 10 },
+        { 243, 116, 167, 154, 6 },
+        { 81, 253, 224, 227, 7 },
+        { 101, 158, 82, 236, 15 }, },
+      { { 232, 123, 59, 230, 14 },
+        { 91, 86, 111, 154, 15 },
+        { 118, 125, 205, 225, 7 },
+        { 245, 159, 102, 173, 10 }, },
+      { { 232, 149, 232, 57, 1 },
+        { 102, 162, 182, 166, 4 },
+        { 137, 193, 122, 145, 7 },
+        { 38, 86, 212, 86, 6 }, },
+      { { 238, 172, 9, 125, 5 },
+        { 159, 32, 246, 175, 8 },
+        { 171, 233, 3, 87, 7 },
+        { 31, 86, 240, 79, 9 }, },
+      { { 236, 161, 201, 55, 4 },
+        { 187, 130, 246, 134, 1 },
+        { 46, 201, 56, 83, 7 },
+        { 134, 22, 244, 29, 13 }, },
+      { { 232, 151, 189, 197, 5 },
+        { 94, 131, 124, 190, 6 },
+        { 170, 59, 222, 145, 7 },
+        { 103, 211, 236, 23, 10 }, },
+      { { 232, 204, 18, 29, 0 },
+        { 10, 100, 176, 182, 8 },
+        { 11, 132, 131, 49, 7 },
+        { 22, 208, 210, 101, 0 }, },
+      { { 238, 193, 29, 105, 8 },
+        { 146, 39, 55, 159, 0 },
+        { 25, 107, 136, 55, 7 },
+        { 15, 158, 206, 68, 9 }, },
+      { { 237, 7, 255, 219, 10 },
+        { 178, 243, 173, 254, 7 },
+        { 93, 191, 254, 11, 7 },
+        { 231, 251, 92, 244, 13 }, },
+      { { 237, 105, 243, 54, 11 },
+        { 191, 214, 163, 210, 13 },
+        { 214, 204, 249, 107, 7 },
+        { 180, 188, 86, 191, 13 }, },
+      { { 237, 118, 20, 181, 12 },
+        { 203, 5, 235, 246, 2 },
+        { 58, 210, 134, 235, 7 },
+        { 70, 253, 122, 13, 3 }, },
+      { { 239, 132, 33, 209, 7 },
+        { 150, 16, 240, 239, 6 },
+        { 232, 184, 66, 31, 7 },
+        { 111, 112, 240, 134, 9 }, },
+      { { 235, 245, 218, 120, 2 },
+        { 99, 246, 182, 251, 0 },
+        { 65, 229, 186, 253, 7 },
+        { 13, 246, 214, 252, 6 }, },
+      { { 233, 249, 229, 214, 13 },
+        { 127, 135, 241, 202, 15 },
+        { 182, 186, 121, 249, 7 },
+        { 245, 56, 254, 31, 14 }, },
+      { { 235, 211, 15, 145, 9 },
+        { 86, 71, 189, 199, 2 },
+        { 152, 159, 12, 189, 7 },
+        { 78, 59, 222, 38, 10 }, },
+      { { 233, 219, 241, 32, 9 },
+        { 118, 134, 59, 210, 12 },
+        { 144, 72, 253, 185, 7 },
+        { 52, 189, 198, 22, 14 }, },
+      { { 244, 41, 139, 109, 8 },
+        { 153, 234, 39, 142, 8 },
+        { 27, 109, 25, 66, 15 },
+        { 23, 30, 69, 121, 9 }, },
+      { { 246, 10, 52, 34, 5 },
+        { 132, 9, 106, 147, 13 },
+        { 164, 66, 197, 6, 15 },
+        { 188, 149, 105, 2, 1 }, },
+      { { 244, 88, 85, 155, 1 },
+        { 244, 45, 160, 150, 11 },
+        { 141, 154, 161, 162, 15 },
+        { 214, 144, 91, 66, 15 }, },
+      { { 242, 118, 55, 97, 3 },
+        { 85, 93, 42, 191, 4 },
+        { 200, 110, 198, 228, 15 },
+        { 47, 213, 75, 170, 10 }, },
+      { { 244, 75, 10, 224, 6 },
+        { 128, 94, 110, 138, 10 },
+        { 96, 117, 13, 34, 15 },
+        { 85, 23, 103, 160, 1 }, },
+      { { 246, 110, 129, 75, 12 },
+        { 145, 172, 105, 175, 9 },
+        { 61, 40, 23, 102, 15 },
+        { 159, 89, 99, 88, 9 }, },
+      { { 246, 67, 29, 76, 6 },
+        { 152, 63, 108, 155, 0 },
+        { 99, 43, 140, 38, 15 },
+        { 13, 147, 111, 193, 9 }, },
+      { { 244, 87, 34, 238, 1 },
+        { 204, 110, 42, 170, 7 },
+        { 135, 116, 78, 162, 15 },
+        { 229, 85, 71, 99, 3 }, },
+      { { 244, 153, 83, 229, 11 },
+        { 252, 90, 51, 158, 10 },
+        { 218, 124, 169, 146, 15 },
+        { 87, 156, 197, 163, 15 }, },
+      { { 240, 252, 47, 27, 5 },
+        { 85, 109, 244, 166, 13 },
+        { 173, 143, 67, 240, 15 },
+        { 182, 82, 251, 106, 10 }, },
+      { { 247, 9, 30, 9, 12 },
+        { 128, 107, 101, 215, 8 },
+        { 57, 7, 137, 14, 15 },
+        { 30, 186, 109, 96, 1 }, },
+      { { 247, 38, 87, 194, 0 },
+        { 177, 73, 40, 251, 3 },
+        { 4, 62, 166, 78, 15 },
+        { 205, 241, 73, 40, 13 }, },
+      { { 241, 133, 27, 198, 13 },
+        { 28, 74, 117, 250, 3 },
+        { 182, 61, 138, 24, 15 },
+        { 197, 250, 229, 35, 8 }, },
+      { { 243, 136, 98, 232, 1 },
+        { 36, 104, 50, 203, 14 },
+        { 129, 116, 97, 28, 15 },
+        { 125, 52, 193, 98, 4 }, },
+      { { 247, 169, 183, 234, 6 },
+        { 145, 251, 114, 219, 15 },
+        { 101, 126, 217, 94, 15 },
+        { 253, 180, 237, 248, 9 }, },
+      { { 247, 138, 138, 92, 2 },
+        { 136, 248, 188, 203, 8 },
+        { 67, 165, 21, 30, 15 },
+        { 29, 51, 209, 241, 1 }, },
+      { { 243, 237, 194, 21, 2 },
+        { 41, 222, 176, 231, 8 },
+        { 74, 132, 59, 124, 15 },
+        { 30, 112, 215, 185, 4 }, },
+      { { 245, 245, 148, 242, 4 },
+        { 193, 143, 242, 250, 3 },
+        { 36, 242, 154, 250, 15 },
+        { 197, 244, 255, 24, 3 }, },
+      { { 248, 15, 62, 15, 4 },
+        { 10, 107, 108, 182, 13 },
+        { 47, 7, 207, 1, 15 },
+        { 182, 211, 109, 101, 0 }, },
+      { { 252, 190, 99, 125, 14 },
+        { 251, 120, 251, 174, 12 },
+        { 123, 236, 103, 211, 15 },
+        { 55, 93, 241, 237, 15 }, },
+      { { 248, 237, 33, 73, 11 },
+        { 23, 62, 49, 174, 12 },
+        { 217, 40, 75, 113, 15 },
+        { 55, 88, 199, 206, 8 }, },
+      { { 250, 216, 194, 128, 14 },
+        { 98, 220, 113, 131, 10 },
+        { 112, 20, 49, 181, 15 },
+        { 92, 24, 227, 180, 6 }, },
+      { { 254, 229, 5, 156, 6 },
+        { 155, 63, 240, 163, 2 },
+        { 99, 154, 10, 119, 15 },
+        { 76, 80, 255, 205, 9 }, },
+      { { 254, 196, 253, 27, 8 },
+        { 178, 173, 181, 183, 5 },
+        { 29, 139, 242, 55, 15 },
+        { 174, 218, 219, 84, 13 }, },
+      { { 250, 210, 225, 31, 4 },
+        { 122, 172, 248, 135, 5 },
+        { 47, 136, 116, 181, 15 },
+        { 174, 17, 243, 85, 14 }, },
+      { { 252, 195, 230, 115, 2 },
+        { 162, 223, 186, 142, 5 },
+        { 76, 230, 124, 51, 15 },
+        { 167, 21, 223, 180, 5 }, },
+      { { 249, 63, 162, 110, 11 },
+        { 79, 250, 43, 234, 13 },
+        { 215, 100, 95, 201, 15 },
+        { 181, 125, 69, 255, 2 }, },
+      { { 251, 86, 194, 94, 3 },
+        { 110, 252, 168, 235, 1 },
+        { 199, 164, 54, 173, 15 },
+        { 141, 113, 83, 247, 6 }, },
+      { { 255, 78, 140, 162, 15 },
+        { 134, 157, 111, 227, 11 },
+        { 244, 83, 23, 47, 15 },
+        { 220, 127, 107, 150, 1 }, },
+      { { 255, 79, 112, 226, 4 },
+        { 162, 14, 106, 251, 15 },
+        { 36, 112, 239, 47, 15 },
+        { 253, 245, 103, 4, 5 }, },
+      { { 249, 177, 42, 52, 9 },
+        { 79, 74, 183, 194, 4 },
+        { 146, 197, 72, 217, 15 },
+        { 36, 62, 213, 47, 2 }, },
+      { { 255, 135, 146, 120, 1 },
+        { 134, 234, 186, 251, 0 },
+        { 129, 228, 158, 31, 15 },
+        { 13, 245, 213, 118, 1 }, },
+      { { 249, 195, 188, 9, 10 },
+        { 2, 191, 61, 214, 4 },
+        { 89, 3, 220, 57, 15 },
+        { 38, 187, 207, 212, 0 }, },
+      { { 255, 202, 25, 209, 12 },
+        { 146, 12, 253, 223, 10 },
+        { 56, 185, 133, 63, 15 },
+        { 95, 187, 243, 4, 9 }, },
+      { { 255, 239, 23, 165, 10 },
+        { 155, 95, 59, 247, 10 },
+        { 90, 94, 143, 127, 15 },
+        { 94, 253, 207, 173, 9 }, },
+      { { 253, 254, 218, 140, 1 },
+        { 239, 236, 60, 242, 10 },
+        { 131, 21, 183, 251, 15 },
+        { 84, 243, 195, 127, 7 }, },
+      { { 6, 66, 233, 9, 7 },
+        { 180, 180, 76, 5, 4 },
+        { 233, 9, 116, 38, 0 },
+        { 42, 3, 34, 210, 13 }, },
+      { { 3, 36, 36, 70, 13 },
+        { 13, 1, 65, 105, 5 },
+        { 182, 34, 66, 76, 0 },
+        { 169, 104, 40, 11, 0 }, },
+      { { 7, 94, 92, 135, 12 },
+        { 232, 5, 77, 117, 11 },
+        { 62, 19, 167, 174, 0 },
+        { 218, 235, 42, 1, 7 }, },
+      { { 7, 136, 66, 250, 6 },
+        { 160, 112, 210, 73, 11 },
+        { 101, 244, 33, 30, 0 },
+        { 217, 36, 176, 224, 5 }, },
+      { { 10, 7, 178, 27, 11 },
+        { 6, 242, 137, 53, 5 },
+        { 221, 132, 222, 5, 0 },
+        { 170, 201, 20, 246, 0 }, },
+      { { 16, 148, 220, 241, 14 },
+        { 96, 153, 215, 60, 2 },
+        { 120, 243, 178, 144, 8 },
+        { 67, 206, 185, 144, 6 }, },
+      { { 22, 162, 90, 176, 15 },
+        { 165, 88, 223, 17, 2 },
+        { 240, 213, 164, 86, 8 },
+        { 72, 143, 177, 170, 5 }, },
+      { { 16, 253, 203, 109, 14 },
+        { 121, 254, 87, 44, 8 },
+        { 123, 109, 59, 240, 8 },
+        { 19, 78, 167, 249, 14 }, },
+      { { 17, 52, 172, 162, 12 },
+        { 65, 137, 71, 96, 7 },
+        { 52, 83, 82, 200, 8 },
+        { 224, 110, 41, 24, 2 }, },
+      { { 17, 166, 62, 16, 1 },
+        { 5, 73, 156, 112, 4 },
+        { 128, 135, 198, 88, 8 },
+        { 32, 227, 153, 42, 0 }, },
+      { { 30, 88, 44, 226, 2 },
+        { 194, 29, 6, 9, 15 },
+        { 68, 115, 65, 167, 8 },
+        { 249, 6, 11, 132, 3 }, },
+      { { 24, 99, 58, 139, 0 },
+        { 3, 110, 12, 20, 7 },
+        { 13, 21, 204, 97, 8 },
+        { 226, 131, 7, 108, 0 }, },
+      { { 26, 99, 1, 47, 13 },
+        { 31, 46, 75, 5, 1 },
+        { 191, 72, 12, 101, 8 },
+        { 138, 13, 39, 79, 8 }, },
+      { { 26, 241, 71, 206, 15 },
+        { 127, 127, 81, 9, 3 },
+        { 247, 62, 40, 245, 8 },
+        { 201, 8, 175, 239, 14 }, },
+      { { 25, 108, 177, 139, 1 },
+        { 23, 172, 0, 116, 15 },
+        { 141, 24, 211, 105, 8 },
+        { 242, 224, 3, 94, 8 }, },
+      { { 29, 149, 207, 92, 12 },
+        { 250, 235, 213, 104, 0 },
+        { 51, 175, 58, 155, 8 },
+        { 1, 106, 189, 117, 15 }, },
+      { { 25, 158, 56, 146, 2 },
+        { 66, 24, 156, 112, 15 },
+        { 68, 145, 199, 153, 8 },
+        { 240, 227, 145, 132, 2 }, },
+      { { 31, 252, 86, 35, 10 },
+        { 227, 93, 19, 117, 9 },
+        { 92, 70, 163, 255, 8 },
+        { 154, 236, 139, 172, 7 }, },
+      { { 36, 27, 41, 179, 3 },
+        { 212, 18, 174, 4, 15 },
+        { 204, 217, 77, 130, 4 },
+        { 242, 7, 84, 130, 11 }, },
+      { { 38, 231, 136, 133, 0 },
+        { 137, 134, 60, 37, 2 },
+        { 10, 17, 30, 118, 4 },
+        { 74, 67, 198, 25, 1 }, },
+      { { 33, 7, 54, 188, 1 },
+        { 12, 99, 170, 112, 6 },
+        { 131, 214, 206, 8, 4 },
+        { 96, 229, 92, 99, 0 }, },
+      { { 40, 77, 70, 86, 10 },
+        { 42, 87, 161, 40, 9 },
+        { 86, 166, 43, 33, 4 },
+        { 145, 72, 94, 165, 4 }, },
+      { { 46, 236, 227, 69, 8 },
+        { 187, 196, 49, 45, 12 },
+        { 26, 44, 115, 119, 4 },
+        { 59, 72, 194, 61, 13 }, },
+      { { 45, 79, 225, 77, 4 },
+        { 186, 166, 104, 108, 12 },
+        { 43, 40, 127, 43, 4 },
+        { 51, 97, 102, 85, 13 }, },
+      { { 45, 138, 40, 60, 7 },
+        { 142, 48, 254, 64, 12 },
+        { 227, 193, 69, 27, 4 },
+        { 48, 39, 240, 199, 1 }, },
+      { { 52, 248, 62, 55, 1 },
+        { 205, 77, 182, 20, 13 },
+        { 142, 199, 193, 242, 12 },
+        { 178, 134, 219, 43, 3 }, },
+      { { 56, 99, 93, 125, 8 },
+        { 59, 47, 175, 28, 0 },
+        { 27, 235, 172, 97, 12 },
+        { 3, 143, 95, 77, 12 }, },
+      { { 63, 162, 28, 196, 12 },
+        { 139, 9, 125, 89, 2 },
+        { 50, 51, 132, 95, 12 },
+        { 73, 171, 233, 13, 1 }, },
+      { { 66, 221, 151, 174, 14 },
+        { 88, 247, 83, 177, 11 },
+        { 119, 94, 155, 180, 2 },
+        { 216, 220, 174, 241, 10 }, },
+      { { 68, 223, 18, 214, 11 },
+        { 204, 86, 153, 184, 11 },
+        { 214, 180, 143, 178, 2 },
+        { 209, 217, 150, 163, 3 }, },
+      { { 65, 58, 205, 236, 8 },
+        { 121, 161, 15, 200, 10 },
+        { 19, 123, 53, 200, 2 },
+        { 81, 63, 8, 89, 14 }, },
+      { { 65, 192, 219, 73, 4 },
+        { 48, 228, 84, 220, 0 },
+        { 41, 45, 176, 56, 2 },
+        { 3, 178, 162, 112, 12 }, },
+      { { 76, 180, 0, 200, 13 },
+        { 199, 32, 81, 168, 2 },
+        { 177, 48, 2, 211, 2 },
+        { 65, 88, 160, 78, 3 }, },
+      { { 73, 35, 72, 149, 2 },
+        { 43, 18, 140, 196, 2 },
+        { 74, 145, 44, 73, 2 },
+        { 66, 51, 20, 141, 4 }, },
+      { { 82, 55, 185, 92, 6 },
+        { 89, 186, 204, 185, 4 },
+        { 99, 169, 222, 196, 10 },
+        { 41, 211, 53, 217, 10 }, },
+      { { 82, 81, 56, 221, 10 },
+        { 72, 62, 133, 157, 6 },
+        { 91, 177, 200, 164, 10 },
+        { 107, 154, 23, 193, 2 }, },
+      { { 94, 113, 146, 65, 3 },
+        { 199, 222, 0, 157, 0 },
+        { 200, 36, 152, 231, 10 },
+        { 11, 144, 7, 190, 3 }, },
+      { { 92, 178, 113, 235, 13 },
+        { 247, 40, 91, 156, 7 },
+        { 189, 120, 228, 211, 10 },
+        { 227, 157, 161, 78, 15 }, },
+      { { 91, 238, 55, 54, 6 },
+        { 27, 93, 218, 241, 13 },
+        { 102, 206, 199, 125, 10 },
+        { 184, 245, 187, 173, 8 }, },
+      { { 96, 5, 132, 21, 2 },
+        { 8, 147, 160, 164, 0 },
+        { 74, 130, 26, 0, 6 },
+        { 2, 80, 92, 145, 0 }, },
+      { { 100, 8, 128, 51, 8 },
+        { 128, 128, 163, 132, 9 },
+        { 28, 192, 17, 2, 6 },
+        { 146, 28, 80, 16, 1 }, },
+      { { 110, 40, 135, 140, 3 },
+        { 159, 241, 32, 129, 10 },
+        { 195, 30, 17, 71, 6 },
+        { 88, 16, 72, 255, 9 }, },
+      { { 108, 85, 84, 181, 7 },
+        { 238, 23, 226, 180, 2 },
+        { 234, 210, 170, 163, 6 },
+        { 66, 212, 126, 135, 7 }, },
+      { { 104, 186, 254, 70, 1 },
+        { 111, 193, 60, 152, 13 },
+        { 134, 39, 245, 209, 6 },
+        { 177, 147, 200, 63, 6 }, },
+      { { 104, 179, 85, 202, 7 },
+        { 119, 51, 120, 152, 3 },
+        { 229, 58, 172, 209, 6 },
+        { 193, 145, 236, 206, 14 }, },
+      { { 117, 156, 155, 102, 9 },
+        { 220, 200, 55, 248, 9 },
+        { 150, 109, 147, 154, 14 },
+        { 145, 254, 193, 51, 11 }, },
+      { { 124, 11, 200, 10, 0 },
+        { 162, 170, 44, 128, 9 },
+        { 5, 1, 61, 3, 14 },
+        { 144, 19, 69, 84, 5 }, },
+      { { 126, 89, 104, 196, 9 },
+        { 238, 14, 37, 137, 14 },
+        { 146, 49, 105, 167, 14 },
+        { 121, 26, 71, 7, 7 }, },
+      { { 120, 111, 61, 52, 5 },
+        { 31, 15, 238, 176, 12 },
+        { 162, 203, 207, 97, 14 },
+        { 48, 215, 127, 15, 8 }, },
+      { { 120, 193, 191, 255, 10 },
+        { 26, 255, 183, 156, 7 },
+        { 95, 255, 216, 49, 14 },
+        { 227, 158, 223, 245, 8 }, },
+      { { 122, 218, 185, 69, 10 },
+        { 90, 156, 61, 157, 12 },
+        { 90, 41, 213, 181, 14 },
+        { 59, 155, 195, 149, 10 }, },
+      { { 128, 60, 123, 156, 0 },
+        { 121, 96, 132, 50, 14 },
+        { 3, 157, 227, 192, 1 },
+        { 116, 194, 16, 105, 14 }, },
+      { { 135, 20, 88, 249, 7 },
+        { 228, 48, 198, 127, 2 },
+        { 233, 241, 162, 142, 1 },
+        { 79, 230, 48, 194, 7 }, },
+      { { 131, 27, 5, 165, 13 },
+        { 92, 3, 75, 71, 10 },
+        { 186, 90, 13, 140, 1 },
+        { 94, 45, 44, 3, 10 }, },
+      { { 136, 59, 180, 103, 4 },
+        { 75, 131, 74, 30, 13 },
+        { 46, 98, 221, 193, 1 },
+        { 183, 133, 44, 29, 2 }, },
+      { { 140, 169, 136, 156, 0 },
+        { 139, 162, 148, 2, 10 },
+        { 3, 145, 25, 83, 1 },
+        { 84, 2, 148, 93, 1 }, },
+      { { 142, 177, 3, 26, 11 },
+        { 215, 114, 145, 3, 1 },
+        { 213, 140, 8, 215, 1 },
+        { 140, 8, 148, 238, 11 }, },
+      { { 143, 39, 191, 54, 4 },
+        { 155, 195, 206, 115, 5 },
+        { 38, 207, 222, 79, 1 },
+        { 172, 231, 60, 61, 9 }, },
+      { { 143, 22, 179, 202, 0 },
+        { 210, 224, 8, 123, 7 },
+        { 5, 60, 214, 143, 1 },
+        { 237, 225, 0, 116, 11 }, },
+      { { 148, 24, 222, 74, 0 },
+        { 224, 233, 4, 26, 9 },
+        { 5, 39, 177, 130, 9 },
+        { 149, 130, 9, 112, 7 }, },
+      { { 147, 69, 36, 197, 0 },
+        { 8, 15, 0, 111, 6 },
+        { 10, 50, 74, 44, 9 },
+        { 111, 96, 15, 1, 0 }, },
+      { { 156, 253, 156, 216, 5 },
+        { 199, 175, 212, 58, 10 },
+        { 161, 179, 155, 243, 9 },
+        { 85, 194, 191, 94, 3 }, },
+      { { 155, 34, 55, 120, 13 },
+        { 23, 105, 203, 91, 4 },
+        { 177, 238, 196, 77, 9 },
+        { 45, 173, 57, 110, 8 }, },
+      { { 153, 250, 163, 209, 6 },
+        { 83, 220, 216, 78, 14 },
+        { 104, 188, 85, 249, 9 },
+        { 119, 33, 179, 188, 10 }, },
+      { { 162, 159, 28, 84, 3 },
+        { 76, 19, 188, 59, 8 },
+        { 194, 163, 143, 148, 5 },
+        { 29, 195, 220, 131, 2 }, },
+      { { 172, 79, 91, 26, 11 },
+        { 182, 118, 173, 50, 9 },
+        { 213, 141, 175, 35, 5 },
+        { 148, 203, 86, 230, 13 }, },
+      { { 172, 191, 109, 54, 6 },
+        { 251, 19, 254, 34, 13 },
+        { 102, 203, 111, 211, 5 },
+        { 180, 71, 252, 141, 15 }, },
+      { { 169, 185, 76, 64, 8 },
+        { 99, 3, 53, 74, 8 },
+        { 16, 35, 41, 217, 5 },
+        { 21, 42, 204, 12, 6 }, },
+      { { 182, 40, 233, 2, 12 },
+        { 177, 136, 101, 3, 13 },
+        { 52, 9, 113, 70, 13 },
+        { 188, 10, 97, 24, 13 }, },
+      { { 180, 109, 218, 222, 0 },
+        { 169, 238, 164, 58, 11 },
+        { 7, 181, 187, 98, 13 },
+        { 213, 194, 87, 121, 5 }, },
+      { { 178, 110, 246, 10, 1 },
+        { 37, 237, 40, 51, 13 },
+        { 133, 6, 247, 100, 13 },
+        { 188, 193, 75, 122, 4 }, },
+      { { 179, 37, 153, 105, 14 },
+        { 17, 186, 103, 127, 0 },
+        { 121, 105, 154, 76, 13 },
+        { 15, 238, 101, 216, 8 }, },
+      { { 179, 80, 40, 17, 5 },
+        { 68, 12, 228, 71, 4 },
+        { 168, 129, 64, 172, 13 },
+        { 46, 34, 115, 2, 2 }, },
+      { { 190, 28, 27, 59, 6 },
+        { 210, 120, 230, 55, 9 },
+        { 109, 205, 131, 135, 13 },
+        { 158, 198, 113, 228, 11 }, },
+      { { 188, 127, 85, 99, 14 },
+        { 243, 31, 107, 62, 9 },
+        { 124, 106, 175, 227, 13 },
+        { 151, 205, 111, 140, 15 }, },
+      { { 188, 175, 230, 141, 5 },
+        { 175, 235, 120, 38, 14 },
+        { 171, 22, 127, 83, 13 },
+        { 118, 65, 237, 127, 5 }, },
+      { { 189, 37, 146, 140, 4 },
+        { 139, 234, 96, 114, 2 },
+        { 35, 20, 154, 75, 13 },
+        { 68, 224, 101, 125, 1 }, },
+      { { 196, 27, 214, 183, 1 },
+        { 236, 195, 138, 150, 11 },
+        { 142, 214, 189, 130, 3 },
+        { 214, 149, 28, 51, 7 }, },
+      { { 198, 99, 190, 252, 14 },
+        { 137, 247, 207, 155, 6 },
+        { 115, 247, 220, 102, 3 },
+        { 109, 159, 62, 249, 1 }, },
+      { { 198, 86, 130, 19, 13 },
+        { 196, 196, 201, 167, 1 },
+        { 188, 132, 22, 166, 3 },
+        { 142, 89, 50, 50, 3 }, },
+      { { 198, 139, 73, 36, 10 },
+        { 184, 18, 31, 131, 8 },
+        { 82, 73, 45, 22, 3 },
+        { 28, 31, 132, 129, 13 }, },
+      { { 193, 61, 206, 190, 2 },
+        { 105, 243, 134, 226, 11 },
+        { 71, 215, 59, 200, 3 },
+        { 212, 118, 28, 249, 6 }, },
+      { { 197, 25, 109, 109, 1 },
+        { 252, 35, 6, 206, 12 },
+        { 139, 107, 105, 138, 3 },
+        { 55, 54, 12, 67, 15 }, },
+      { { 199, 77, 61, 239, 11 },
+        { 156, 55, 7, 255, 15 },
+        { 223, 123, 203, 46, 3 },
+        { 255, 254, 14, 195, 9 }, },
+      { { 193, 90, 43, 220, 9 },
+        { 92, 100, 141, 202, 14 },
+        { 147, 189, 69, 168, 3 },
+        { 117, 59, 18, 99, 10 }, },
+      { { 202, 35, 114, 33, 12 },
+        { 35, 66, 75, 151, 4 },
+        { 56, 68, 236, 69, 3 },
+        { 46, 157, 36, 44, 4 }, },
+      { { 207, 199, 244, 213, 9 },
+        { 174, 135, 153, 255, 6 },
+        { 154, 178, 254, 63, 3 },
+        { 111, 249, 158, 23, 5 }, },
+      { { 208, 49, 39, 226, 6 },
+        { 81, 91, 66, 138, 7 },
+        { 100, 126, 72, 192, 11 },
+        { 229, 20, 45, 168, 10 }, },
+      { { 212, 119, 84, 14, 0 },
+        { 233, 47, 8, 178, 1 },
+        { 7, 2, 174, 226, 11 },
+        { 132, 209, 15, 73, 7 }, },
+      { { 209, 134, 49, 90, 2 },
+        { 16, 56, 152, 250, 5 },
+        { 69, 168, 198, 24, 11 },
+        { 165, 241, 145, 192, 8 }, },
+      { { 219, 76, 100, 122, 11 },
+        { 38, 61, 131, 235, 13 },
+        { 213, 226, 99, 45, 11 },
+        { 189, 124, 27, 198, 4 }, },
+      { { 219, 132, 135, 144, 8 },
+        { 18, 201, 145, 227, 2 },
+        { 16, 158, 18, 29, 11 },
+        { 76, 120, 153, 52, 8 }, },
+      { { 223, 222, 6, 112, 0 },
+        { 194, 77, 154, 235, 8 },
+        { 0, 230, 7, 191, 11 },
+        { 29, 117, 155, 36, 3 }, },
+      { { 226, 41, 186, 96, 0 },
+        { 1, 194, 38, 155, 12 },
+        { 0, 101, 217, 68, 7 },
+        { 61, 150, 68, 56, 0 }, },
+      { { 225, 64, 224, 141, 6 },
+        { 40, 180, 96, 198, 6 },
+        { 107, 16, 112, 40, 7 },
+        { 102, 48, 98, 209, 4 }, },
+      { { 225, 154, 144, 165, 2 },
+        { 72, 144, 58, 214, 10 },
+        { 74, 80, 149, 152, 7 },
+        { 86, 181, 192, 145, 2 }, },
+      { { 231, 242, 192, 250, 9 },
+        { 229, 164, 187, 203, 3 },
+        { 149, 240, 52, 254, 7 },
+        { 205, 61, 210, 90, 7 }, },
+      { { 238, 173, 190, 131, 8 },
+        { 131, 195, 53, 183, 15 },
+        { 28, 23, 219, 87, 7 },
+        { 254, 218, 204, 60, 1 }, },
+      { { 240, 28, 242, 124, 1 },
+        { 108, 232, 162, 186, 12 },
+        { 131, 228, 243, 128, 15 },
+        { 53, 212, 81, 115, 6 }, },
+      { { 247, 101, 168, 38, 4 },
+        { 137, 142, 102, 227, 5 },
+        { 38, 65, 90, 110, 15 },
+        { 172, 118, 103, 25, 1 }, },
+      { { 247, 236, 195, 164, 13 },
+        { 189, 204, 115, 227, 10 },
+        { 178, 92, 51, 126, 15 },
+        { 92, 124, 227, 59, 13 }, },
+      { { 248, 45, 84, 113, 4 },
+        { 35, 11, 226, 190, 8 },
+        { 40, 226, 171, 65, 15 },
+        { 23, 212, 125, 12, 4 }, },
+      { { 254, 133, 143, 205, 11 },
+        { 158, 251, 53, 175, 2 },
+        { 219, 63, 26, 23, 15 },
+        { 79, 90, 205, 247, 9 }, },
+      { { 248, 227, 91, 11, 6 },
+        { 51, 126, 124, 150, 1 },
+        { 109, 13, 172, 113, 15 },
+        { 134, 147, 231, 236, 12 }, },
+      { { 254, 214, 62, 31, 15 },
+        { 206, 125, 253, 183, 5 },
+        { 255, 135, 198, 183, 15 },
+        { 174, 219, 251, 231, 3 }, }, };
+
+static unsigned char DICT_7X7_1000_BYTES[][4][7] =
+    { { { 221, 92, 108, 165, 202, 10, 1 },
+        { 99, 179, 173, 228, 49, 180, 0 },
+        { 168, 41, 210, 155, 29, 93, 1 },
+        { 22, 198, 19, 218, 230, 227, 0 }, },
+      { { 228, 27, 241, 62, 64, 171, 0 },
+        { 17, 253, 137, 11, 181, 42, 1 },
+        { 106, 129, 62, 71, 236, 19, 1 },
+        { 170, 86, 232, 72, 223, 196, 0 }, },
+      { { 158, 170, 43, 172, 93, 39, 1 },
+        { 163, 182, 158, 145, 75, 171, 1 },
+        { 242, 93, 26, 234, 42, 188, 1 },
+        { 234, 233, 68, 188, 182, 226, 1 }, },
+      { { 166, 103, 5, 183, 233, 76, 0 },
+        { 221, 48, 50, 221, 165, 172, 0 },
+        { 25, 75, 246, 208, 115, 50, 1 },
+        { 26, 210, 221, 166, 6, 93, 1 }, },
+      { { 198, 188, 123, 19, 50, 86, 0 },
+        { 253, 193, 139, 113, 154, 97, 0 },
+        { 53, 38, 100, 111, 30, 177, 1 },
+        { 67, 44, 199, 104, 193, 223, 1 }, },
+      { { 88, 128, 20, 35, 89, 238, 0 },
+        { 4, 122, 28, 80, 184, 133, 1 },
+        { 59, 205, 98, 20, 0, 141, 0 },
+        { 208, 142, 133, 28, 47, 16, 0 }, },
+      { { 211, 107, 190, 111, 84, 72, 0 },
+        { 164, 240, 198, 70, 247, 63, 0 },
+        { 9, 21, 123, 62, 235, 101, 1 },
+        { 126, 119, 177, 49, 135, 146, 1 }, },
+      { { 60, 161, 109, 136, 139, 219, 0 },
+        { 37, 14, 191, 169, 44, 198, 0 },
+        { 109, 232, 136, 219, 66, 158, 0 },
+        { 49, 154, 74, 254, 184, 82, 0 }, },
+      { { 137, 7, 31, 86, 150, 158, 0 },
+        { 112, 74, 104, 49, 231, 125, 0 },
+        { 60, 180, 181, 124, 112, 72, 1 },
+        { 95, 115, 198, 11, 41, 7, 0 }, },
+      { { 187, 101, 177, 141, 110, 63, 0 },
+        { 200, 86, 142, 255, 101, 242, 1 },
+        { 126, 59, 88, 198, 211, 110, 1 },
+        { 167, 211, 127, 184, 181, 9, 1 }, },
+      { { 245, 0, 209, 130, 244, 144, 1 },
+        { 11, 88, 37, 139, 208, 113, 0 },
+        { 132, 151, 160, 197, 128, 87, 1 },
+        { 71, 5, 232, 210, 13, 104, 0 }, },
+      { { 2, 38, 112, 184, 84, 26, 0 },
+        { 208, 112, 139, 128, 96, 75, 0 },
+        { 44, 21, 14, 135, 50, 32, 0 },
+        { 105, 3, 0, 232, 135, 5, 1 }, },
+      { { 84, 243, 107, 151, 72, 240, 1 },
+        { 55, 25, 135, 197, 159, 200, 1 },
+        { 135, 137, 116, 235, 103, 149, 0 },
+        { 137, 252, 209, 240, 204, 118, 0 }, },
+      { { 158, 36, 136, 70, 35, 153, 1 },
+        { 235, 14, 86, 34, 161, 96, 0 },
+        { 204, 226, 49, 8, 146, 60, 1 },
+        { 3, 66, 162, 53, 56, 107, 1 }, },
+      { { 189, 255, 50, 107, 201, 203, 1 },
+        { 71, 255, 254, 76, 174, 186, 0 },
+        { 233, 201, 235, 38, 127, 222, 1 },
+        { 46, 186, 153, 63, 255, 241, 0 }, },
+      { { 206, 17, 5, 176, 90, 151, 1 },
+        { 147, 63, 8, 177, 20, 229, 0 },
+        { 244, 173, 6, 208, 68, 57, 1 },
+        { 83, 148, 70, 136, 126, 100, 1 }, },
+      { { 211, 240, 97, 114, 31, 139, 0 },
+        { 144, 45, 223, 37, 248, 177, 0 },
+        { 104, 252, 39, 67, 7, 229, 1 },
+        { 70, 143, 210, 125, 218, 4, 1 }, },
+      { { 1, 225, 158, 206, 200, 237, 1 },
+        { 38, 92, 98, 150, 175, 150, 1 },
+        { 219, 137, 185, 188, 195, 192, 0 },
+        { 180, 250, 180, 163, 29, 50, 0 }, },
+      { { 38, 203, 204, 42, 112, 120, 1 },
+        { 175, 176, 1, 14, 172, 79, 1 },
+        { 143, 7, 42, 25, 233, 178, 0 },
+        { 249, 26, 184, 64, 6, 250, 1 }, },
+      { { 56, 125, 77, 118, 65, 19, 0 },
+        { 112, 183, 95, 13, 133, 68, 0 },
+        { 100, 65, 55, 89, 95, 14, 0 },
+        { 17, 80, 216, 125, 118, 135, 0 }, },
+      { { 58, 144, 74, 233, 225, 233, 1 },
+        { 174, 63, 117, 200, 42, 2, 1 },
+        { 203, 195, 203, 169, 4, 174, 0 },
+        { 160, 42, 9, 215, 126, 58, 1 }, },
+      { { 70, 212, 132, 123, 60, 221, 0 },
+        { 221, 45, 64, 86, 248, 199, 0 },
+        { 93, 158, 111, 16, 149, 177, 0 },
+        { 113, 143, 181, 1, 90, 93, 1 }, },
+      { { 72, 146, 167, 222, 158, 43, 1 },
+        { 18, 7, 232, 163, 251, 143, 1 },
+        { 234, 60, 189, 242, 164, 137, 0 },
+        { 248, 239, 226, 139, 240, 36, 0 }, },
+      { { 94, 118, 195, 228, 152, 168, 0 },
+        { 193, 43, 103, 135, 51, 137, 1 },
+        { 10, 140, 147, 225, 183, 61, 0 },
+        { 200, 230, 112, 243, 106, 65, 1 }, },
+      { { 116, 162, 222, 250, 47, 136, 1 },
+        { 59, 104, 87, 170, 250, 142, 0 },
+        { 136, 250, 47, 189, 162, 151, 0 },
+        { 56, 175, 170, 245, 11, 110, 0 }, },
+      { { 148, 93, 226, 40, 19, 89, 0 },
+        { 69, 165, 149, 38, 38, 99, 0 },
+        { 77, 100, 10, 35, 221, 20, 1 },
+        { 99, 50, 50, 84, 210, 209, 0 }, },
+      { { 155, 18, 149, 100, 237, 163, 1 },
+        { 138, 127, 124, 3, 65, 188, 1 },
+        { 226, 219, 147, 84, 164, 108, 1 },
+        { 158, 193, 96, 31, 127, 40, 1 }, },
+      { { 161, 212, 148, 45, 130, 248, 0 },
+        { 68, 105, 32, 110, 41, 118, 1 },
+        { 15, 160, 218, 20, 149, 194, 1 },
+        { 183, 74, 59, 2, 75, 17, 0 }, },
+      { { 187, 120, 230, 49, 108, 208, 1 },
+        { 158, 187, 135, 78, 66, 244, 0 },
+        { 133, 155, 70, 51, 143, 110, 1 },
+        { 23, 161, 57, 112, 238, 188, 1 }, },
+      { { 203, 181, 221, 203, 219, 24, 0 },
+        { 224, 83, 115, 227, 188, 247, 0 },
+        { 12, 109, 233, 221, 214, 233, 1 },
+        { 119, 158, 227, 231, 101, 3, 1 }, },
+      { { 211, 229, 238, 183, 131, 51, 0 },
+        { 240, 36, 191, 230, 159, 116, 1 },
+        { 102, 96, 246, 187, 211, 229, 1 },
+        { 151, 124, 179, 254, 146, 7, 1 }, },
+      { { 242, 148, 35, 63, 209, 156, 1 },
+        { 210, 57, 180, 89, 187, 99, 0 },
+        { 156, 197, 254, 98, 20, 167, 1 },
+        { 99, 110, 205, 22, 206, 37, 1 }, },
+      { { 253, 214, 209, 159, 59, 230, 1 },
+        { 95, 75, 29, 255, 153, 187, 1 },
+        { 179, 238, 124, 197, 181, 223, 1 },
+        { 238, 204, 255, 220, 105, 125, 0 }, },
+      { { 58, 70, 36, 238, 132, 238, 1 },
+        { 198, 42, 236, 156, 225, 14, 1 },
+        { 187, 144, 187, 146, 49, 46, 0 },
+        { 184, 67, 156, 155, 170, 49, 1 }, },
+      { { 98, 24, 126, 36, 59, 15, 0 },
+        { 168, 229, 153, 56, 51, 133, 0 },
+        { 120, 110, 18, 63, 12, 35, 0 },
+        { 80, 230, 14, 76, 211, 138, 1 }, },
+      { { 10, 205, 67, 111, 157, 195, 0 },
+        { 196, 174, 121, 69, 207, 131, 0 },
+        { 97, 220, 251, 97, 89, 168, 0 },
+        { 96, 249, 209, 79, 58, 145, 1 }, },
+      { { 14, 64, 212, 195, 142, 2, 0 },
+        { 129, 66, 105, 230, 192, 132, 0 },
+        { 32, 56, 225, 149, 129, 56, 0 },
+        { 16, 129, 179, 203, 33, 64, 1 }, },
+      { { 20, 159, 217, 160, 98, 36, 0 },
+        { 105, 241, 5, 179, 12, 8, 1 },
+        { 18, 35, 2, 205, 252, 148, 0 },
+        { 136, 24, 102, 208, 71, 203, 0 }, },
+      { { 25, 162, 225, 26, 101, 237, 0 },
+        { 28, 30, 151, 19, 232, 26, 1 },
+        { 91, 211, 44, 67, 162, 204, 0 },
+        { 172, 11, 228, 116, 188, 28, 0 }, },
+      { { 43, 80, 130, 126, 27, 52, 0 },
+        { 144, 35, 80, 62, 131, 211, 1 },
+        { 22, 108, 63, 32, 133, 106, 0 },
+        { 229, 224, 190, 5, 98, 4, 1 }, },
+      { { 41, 105, 56, 146, 159, 163, 0 },
+        { 48, 206, 186, 172, 196, 145, 1 },
+        { 98, 252, 164, 142, 75, 74, 0 },
+        { 196, 145, 154, 174, 185, 134, 0 }, },
+      { { 44, 247, 84, 219, 244, 86, 1 },
+        { 95, 83, 107, 220, 204, 79, 0 },
+        { 181, 23, 237, 149, 119, 154, 0 },
+        { 121, 25, 157, 235, 101, 125, 0 }, },
+      { { 53, 233, 63, 158, 54, 124, 0 },
+        { 61, 192, 134, 189, 239, 87, 1 },
+        { 31, 54, 60, 254, 75, 214, 0 },
+        { 245, 123, 222, 176, 129, 222, 0 }, },
+      { { 63, 116, 171, 216, 61, 243, 1 },
+        { 255, 15, 222, 143, 66, 211, 1 },
+        { 231, 222, 13, 234, 151, 126, 0 },
+        { 229, 161, 120, 189, 248, 127, 1 }, },
+      { { 68, 208, 41, 244, 255, 64, 0 },
+        { 61, 49, 240, 165, 89, 129, 0 },
+        { 1, 127, 151, 202, 5, 145, 0 },
+        { 64, 205, 82, 135, 198, 94, 0 }, },
+      { { 72, 64, 228, 132, 42, 245, 0 },
+        { 12, 14, 129, 182, 17, 196, 1 },
+        { 87, 170, 16, 147, 129, 9, 0 },
+        { 145, 196, 54, 192, 184, 24, 0 }, },
+      { { 95, 25, 19, 104, 52, 2, 0 },
+        { 137, 227, 76, 1, 86, 19, 0 },
+        { 32, 22, 11, 100, 76, 125, 0 },
+        { 100, 53, 64, 25, 99, 200, 1 }, },
+      { { 94, 178, 114, 64, 61, 93, 1 },
+        { 143, 71, 215, 16, 122, 201, 0 },
+        { 221, 94, 1, 39, 38, 189, 0 },
+        { 73, 175, 4, 117, 241, 120, 1 }, },
+      { { 111, 155, 36, 31, 21, 194, 0 },
+        { 149, 139, 152, 72, 221, 31, 0 },
+        { 33, 212, 124, 18, 108, 251, 0 },
+        { 124, 93, 137, 12, 232, 212, 1 }, },
+      { { 114, 170, 249, 32, 168, 227, 1 },
+        { 174, 236, 175, 11, 24, 136, 1 },
+        { 227, 138, 130, 79, 170, 167, 0 },
+        { 136, 140, 104, 122, 155, 186, 1 }, },
+      { { 121, 136, 117, 59, 134, 54, 1 },
+        { 18, 226, 173, 121, 216, 86, 1 },
+        { 182, 48, 238, 87, 8, 207, 0 },
+        { 181, 13, 207, 90, 163, 164, 0 }, },
+      { { 123, 231, 19, 174, 121, 81, 1 },
+        { 206, 118, 22, 141, 159, 219, 0 },
+        { 197, 79, 58, 228, 115, 239, 0 },
+        { 109, 252, 216, 180, 55, 57, 1 }, },
+      { { 133, 106, 70, 201, 89, 224, 0 },
+        { 5, 152, 83, 196, 2, 191, 1 },
+        { 3, 205, 73, 177, 43, 80, 1 },
+        { 254, 160, 17, 229, 12, 208, 0 }, },
+      { { 142, 63, 238, 242, 217, 81, 1 },
+        { 247, 183, 243, 130, 134, 237, 0 },
+        { 197, 77, 167, 187, 254, 56, 1 },
+        { 91, 176, 160, 231, 246, 247, 1 }, },
+      { { 173, 56, 205, 33, 115, 103, 1 },
+        { 47, 183, 27, 123, 0, 53, 1 },
+        { 243, 103, 66, 89, 142, 90, 1 },
+        { 214, 0, 111, 108, 118, 250, 0 }, },
+      { { 177, 55, 37, 48, 185, 63, 1 },
+        { 90, 37, 190, 25, 36, 253, 1 },
+        { 254, 78, 134, 82, 118, 70, 1 },
+        { 223, 146, 76, 62, 210, 45, 0 }, },
+      { { 186, 195, 128, 210, 81, 219, 0 },
+        { 148, 30, 92, 142, 172, 105, 0 },
+        { 109, 197, 37, 128, 225, 174, 1 },
+        { 75, 26, 184, 157, 60, 20, 1 }, },
+      { { 193, 117, 109, 93, 24, 166, 1 },
+        { 114, 9, 203, 85, 21, 183, 1 },
+        { 178, 140, 93, 91, 87, 65, 1 },
+        { 246, 212, 85, 105, 200, 39, 0 }, },
+      { { 206, 97, 211, 126, 229, 17, 0 },
+        { 153, 118, 115, 7, 215, 98, 0 },
+        { 68, 83, 191, 101, 195, 57, 1 },
+        { 35, 117, 240, 103, 55, 76, 1 }, },
+      { { 210, 92, 152, 54, 221, 91, 1 },
+        { 246, 245, 60, 6, 241, 225, 0 },
+        { 237, 93, 182, 12, 157, 37, 1 },
+        { 67, 199, 176, 30, 87, 183, 1 }, },
+      { { 208, 106, 145, 233, 239, 206, 1 },
+        { 14, 248, 126, 247, 112, 170, 0 },
+        { 185, 251, 203, 196, 171, 5, 1 },
+        { 42, 135, 119, 191, 15, 184, 0 }, },
+      { { 73, 228, 227, 141, 169, 90, 1 },
+        { 78, 2, 187, 199, 59, 210, 0 },
+        { 173, 74, 216, 227, 147, 201, 0 },
+        { 37, 238, 113, 238, 160, 57, 0 }, },
+      { { 82, 209, 159, 40, 31, 179, 0 },
+        { 160, 109, 28, 39, 94, 199, 1 },
+        { 102, 252, 10, 124, 197, 165, 0 },
+        { 241, 189, 114, 28, 91, 2, 1 }, },
+      { { 2, 24, 175, 24, 115, 160, 1 },
+        { 186, 153, 144, 35, 2, 7, 1 },
+        { 130, 231, 12, 122, 140, 32, 0 },
+        { 240, 32, 98, 4, 204, 174, 1 }, },
+      { { 5, 192, 75, 56, 81, 119, 0 },
+        { 53, 52, 25, 21, 10, 83, 1 },
+        { 119, 69, 14, 105, 1, 208, 0 },
+        { 229, 40, 84, 76, 22, 86, 0 }, },
+      { { 15, 88, 169, 33, 137, 159, 0 },
+        { 161, 175, 184, 87, 32, 208, 0 },
+        { 124, 200, 194, 74, 141, 120, 0 },
+        { 5, 130, 117, 14, 250, 194, 1 }, },
+      { { 15, 206, 165, 68, 68, 26, 0 },
+        { 193, 146, 200, 7, 105, 92, 0 },
+        { 44, 17, 17, 82, 185, 248, 0 },
+        { 29, 75, 112, 9, 164, 193, 1 }, },
+      { { 21, 238, 211, 115, 20, 216, 1 },
+        { 87, 232, 71, 71, 234, 89, 0 },
+        { 141, 148, 103, 101, 187, 212, 0 },
+        { 77, 43, 241, 113, 11, 245, 0 }, },
+      { { 22, 241, 226, 252, 69, 158, 1 },
+        { 147, 57, 223, 150, 111, 66, 0 },
+        { 188, 209, 31, 163, 199, 180, 0 },
+        { 33, 123, 52, 253, 206, 100, 1 }, },
+      { { 30, 94, 76, 65, 59, 115, 0 },
+        { 237, 135, 93, 100, 0, 205, 1 },
+        { 103, 110, 65, 25, 61, 60, 0 },
+        { 217, 128, 19, 93, 112, 219, 1 }, },
+      { { 31, 194, 82, 102, 200, 118, 1 },
+        { 135, 114, 109, 20, 139, 216, 1 },
+        { 183, 9, 179, 37, 33, 252, 0 },
+        { 141, 232, 148, 91, 39, 112, 1 }, },
+      { { 39, 33, 22, 246, 49, 159, 1 },
+        { 155, 108, 90, 152, 167, 85, 0 },
+        { 252, 198, 55, 180, 66, 114, 0 },
+        { 85, 114, 140, 173, 27, 108, 1 }, },
+      { { 39, 155, 122, 137, 27, 220, 0 },
+        { 165, 201, 145, 248, 46, 219, 0 },
+        { 29, 236, 72, 175, 108, 242, 0 },
+        { 109, 186, 15, 196, 201, 210, 1 }, },
+      { { 46, 12, 48, 75, 106, 108, 0 },
+        { 205, 210, 192, 120, 160, 130, 1 },
+        { 27, 43, 105, 6, 24, 58, 0 },
+        { 160, 130, 143, 1, 165, 217, 1 }, },
+      { { 47, 169, 226, 121, 230, 43, 0 },
+        { 153, 182, 235, 106, 110, 18, 1 },
+        { 106, 51, 207, 35, 202, 250, 0 },
+        { 164, 59, 43, 107, 182, 204, 1 }, },
+      { { 44, 207, 211, 2, 147, 19, 1 },
+        { 67, 198, 57, 47, 142, 73, 0 },
+        { 228, 100, 160, 101, 249, 154, 0 },
+        { 73, 56, 250, 78, 49, 225, 0 }, },
+      { { 49, 83, 3, 2, 18, 230, 1 },
+        { 6, 9, 12, 61, 134, 25, 1 },
+        { 179, 164, 32, 96, 101, 70, 0 },
+        { 204, 48, 222, 24, 72, 48, 0 }, },
+      { { 48, 120, 115, 90, 253, 41, 1 },
+        { 26, 213, 247, 13, 226, 131, 1 },
+        { 202, 95, 173, 103, 15, 6, 0 },
+        { 224, 163, 216, 119, 213, 172, 0 }, },
+      { { 55, 226, 67, 44, 167, 160, 1 },
+        { 139, 40, 55, 45, 75, 26, 1 },
+        { 130, 242, 154, 97, 35, 246, 0 },
+        { 172, 105, 90, 118, 10, 104, 1 }, },
+      { { 76, 11, 79, 138, 255, 84, 0 },
+        { 45, 146, 49, 177, 214, 207, 0 },
+        { 21, 127, 168, 249, 104, 25, 0 },
+        { 121, 181, 198, 198, 36, 218, 0 }, },
+      { { 78, 218, 184, 202, 73, 33, 1 },
+        { 163, 215, 208, 134, 152, 138, 1 },
+        { 194, 73, 41, 142, 173, 185, 0 },
+        { 168, 140, 176, 133, 245, 226, 1 }, },
+      { { 76, 218, 221, 21, 152, 110, 0 },
+        { 53, 195, 41, 87, 57, 141, 1 },
+        { 59, 12, 212, 93, 173, 153, 0 },
+        { 216, 206, 117, 74, 97, 214, 0 }, },
+      { { 86, 123, 85, 187, 37, 96, 1 },
+        { 159, 225, 23, 197, 212, 14, 1 },
+        { 131, 82, 110, 213, 111, 53, 0 },
+        { 184, 21, 209, 244, 67, 252, 1 }, },
+      { { 84, 151, 117, 241, 41, 203, 0 },
+        { 93, 109, 221, 193, 60, 140, 0 },
+        { 105, 202, 71, 215, 116, 149, 0 },
+        { 24, 158, 65, 221, 219, 93, 0 }, },
+      { { 84, 152, 140, 205, 4, 162, 0 },
+        { 33, 137, 76, 194, 89, 6, 1 },
+        { 34, 144, 89, 152, 140, 149, 0 },
+        { 176, 77, 33, 153, 72, 194, 0 }, },
+      { { 94, 110, 164, 168, 119, 169, 0 },
+        { 201, 190, 150, 166, 112, 15, 1 },
+        { 74, 247, 10, 146, 187, 61, 0 },
+        { 248, 7, 50, 180, 190, 201, 1 }, },
+      { { 99, 4, 81, 119, 99, 178, 0 },
+        { 216, 120, 89, 105, 145, 80, 1 },
+        { 38, 227, 119, 69, 16, 99, 0 },
+        { 133, 68, 203, 77, 15, 13, 1 }, },
+      { { 105, 226, 58, 120, 116, 228, 1 },
+        { 62, 122, 194, 28, 90, 27, 1 },
+        { 147, 151, 15, 46, 35, 203, 0 },
+        { 236, 45, 28, 33, 175, 62, 0 }, },
+      { { 109, 23, 226, 74, 80, 28, 1 },
+        { 67, 19, 193, 26, 182, 91, 0 },
+        { 156, 5, 41, 35, 244, 91, 0 },
+        { 109, 54, 172, 65, 228, 97, 0 }, },
+      { { 112, 62, 128, 226, 203, 177, 0 },
+        { 64, 189, 118, 170, 144, 200, 1 },
+        { 70, 233, 163, 128, 190, 7, 0 },
+        { 137, 132, 170, 183, 94, 129, 0 }, },
+      { { 119, 80, 90, 139, 20, 43, 1 },
+        { 163, 69, 13, 204, 242, 19, 1 },
+        { 234, 20, 104, 173, 5, 119, 0 },
+        { 228, 39, 153, 216, 81, 98, 1 }, },
+      { { 130, 100, 225, 43, 36, 151, 1 },
+        { 202, 44, 139, 87, 192, 98, 0 },
+        { 244, 146, 106, 67, 147, 32, 1 },
+        { 35, 1, 245, 104, 154, 41, 1 }, },
+      { { 131, 253, 167, 209, 241, 197, 0 },
+        { 220, 157, 242, 215, 14, 53, 0 },
+        { 81, 199, 197, 242, 223, 224, 1 },
+        { 86, 56, 117, 167, 220, 157, 1 }, },
+      { { 147, 189, 107, 77, 96, 125, 1 },
+        { 238, 149, 199, 81, 47, 114, 1 },
+        { 223, 3, 89, 107, 94, 228, 1 },
+        { 167, 122, 69, 113, 212, 187, 1 }, },
+      { { 148, 216, 165, 194, 122, 237, 1 },
+        { 15, 157, 196, 183, 168, 165, 1 },
+        { 219, 175, 33, 210, 141, 148, 1 },
+        { 210, 138, 246, 145, 220, 248, 0 }, },
+      { { 148, 247, 189, 26, 15, 79, 1 },
+        { 119, 69, 158, 55, 236, 174, 0 },
+        { 249, 120, 44, 94, 247, 148, 1 },
+        { 58, 155, 246, 60, 209, 119, 0 }, },
+      { { 152, 241, 170, 62, 148, 248, 0 },
+        { 52, 43, 166, 6, 239, 99, 1 },
+        { 15, 148, 190, 42, 199, 140, 1 },
+        { 227, 123, 176, 50, 234, 22, 0 }, },
+      { { 169, 138, 223, 140, 87, 40, 0 },
+        { 32, 210, 17, 171, 107, 63, 1 },
+        { 10, 117, 24, 253, 168, 202, 1 },
+        { 254, 107, 106, 196, 37, 130, 0 }, },
+      { { 177, 14, 54, 223, 65, 63, 0 },
+        { 80, 212, 220, 216, 163, 126, 1 },
+        { 126, 65, 125, 182, 56, 70, 1 },
+        { 191, 98, 141, 157, 149, 133, 0 }, },
+      { { 185, 234, 28, 100, 226, 107, 0 },
+        { 44, 246, 110, 44, 41, 60, 1 },
+        { 107, 35, 147, 28, 43, 206, 1 },
+        { 158, 74, 26, 59, 55, 154, 0 }, },
+      { { 188, 38, 74, 240, 242, 183, 1 },
+        { 123, 62, 111, 184, 2, 105, 1 },
+        { 246, 167, 135, 169, 50, 30, 1 },
+        { 203, 32, 14, 251, 62, 111, 0 }, },
+      { { 189, 63, 146, 218, 126, 170, 0 },
+        { 89, 219, 78, 170, 230, 187, 1 },
+        { 42, 191, 45, 164, 254, 94, 1 },
+        { 238, 179, 170, 185, 109, 205, 0 }, },
+      { { 192, 53, 46, 74, 202, 87, 0 },
+        { 100, 21, 234, 48, 150, 230, 0 },
+        { 117, 41, 169, 58, 86, 1, 1 },
+        { 51, 180, 134, 43, 212, 19, 0 }, },
+      { { 194, 54, 220, 36, 22, 128, 1 },
+        { 226, 105, 3, 34, 81, 45, 0 },
+        { 128, 180, 18, 29, 182, 33, 1 },
+        { 90, 69, 34, 96, 75, 35, 1 }, },
+      { { 211, 79, 245, 172, 136, 118, 1 },
+        { 198, 224, 173, 151, 21, 254, 1 },
+        { 183, 8, 154, 215, 249, 101, 1 },
+        { 191, 212, 116, 218, 131, 177, 1 }, },
+      { { 215, 6, 210, 240, 31, 150, 0 },
+        { 209, 104, 93, 178, 82, 249, 0 },
+        { 52, 252, 7, 165, 176, 117, 1 },
+        { 79, 165, 38, 221, 11, 69, 1 }, },
+      { { 216, 50, 245, 201, 86, 5, 0 },
+        { 0, 87, 199, 243, 80, 47, 0 },
+        { 80, 53, 73, 215, 166, 13, 1 },
+        { 122, 5, 103, 241, 245, 0, 0 }, },
+      { { 216, 217, 65, 4, 131, 170, 0 },
+        { 0, 139, 61, 37, 61, 32, 1 },
+        { 42, 224, 144, 65, 77, 141, 1 },
+        { 130, 94, 82, 94, 104, 128, 0 }, },
+      { { 224, 211, 100, 108, 77, 209, 1 },
+        { 6, 61, 209, 12, 93, 238, 0 },
+        { 197, 217, 27, 19, 101, 131, 1 },
+        { 59, 221, 24, 69, 222, 48, 0 }, },
+      { { 225, 232, 37, 60, 152, 205, 0 },
+        { 20, 172, 162, 29, 57, 183, 0 },
+        { 89, 140, 158, 82, 11, 195, 1 },
+        { 118, 206, 92, 34, 154, 148, 0 }, },
+      { { 229, 118, 79, 139, 232, 157, 1 },
+        { 107, 29, 35, 221, 178, 254, 0 },
+        { 220, 139, 232, 249, 55, 83, 1 },
+        { 63, 166, 221, 226, 92, 107, 0 }, },
+      { { 232, 80, 250, 159, 250, 74, 0 },
+        { 60, 83, 169, 238, 179, 163, 0 },
+        { 41, 47, 252, 175, 133, 11, 1 },
+        { 98, 230, 187, 202, 229, 30, 0 }, },
+      { { 235, 128, 234, 240, 130, 92, 1 },
+        { 182, 34, 225, 186, 58, 112, 0 },
+        { 157, 32, 135, 171, 128, 235, 1 },
+        { 7, 46, 46, 195, 162, 54, 1 }, },
+      { { 239, 108, 113, 174, 69, 200, 1 },
+        { 199, 250, 147, 141, 241, 50, 0 },
+        { 137, 209, 58, 199, 27, 123, 1 },
+        { 38, 71, 216, 228, 175, 241, 1 }, },
+      { { 247, 217, 64, 237, 177, 12, 0 },
+        { 137, 161, 117, 220, 61, 51, 0 },
+        { 24, 70, 219, 129, 77, 247, 1 },
+        { 102, 94, 29, 215, 66, 200, 1 }, },
+      { { 254, 214, 40, 241, 92, 60, 1 },
+        { 243, 51, 196, 220, 120, 233, 1 },
+        { 158, 29, 71, 138, 53, 191, 1 },
+        { 203, 143, 29, 145, 230, 103, 1 }, },
+      { { 20, 199, 225, 220, 124, 3, 1 },
+        { 91, 20, 205, 135, 77, 139, 0 },
+        { 224, 31, 29, 195, 241, 148, 0 },
+        { 104, 217, 112, 217, 148, 109, 0 }, },
+      { { 34, 236, 79, 160, 255, 225, 0 },
+        { 236, 188, 51, 173, 74, 133, 1 },
+        { 67, 255, 130, 249, 27, 162, 0 },
+        { 208, 169, 90, 230, 30, 155, 1 }, },
+      { { 164, 134, 72, 34, 231, 234, 0 },
+        { 109, 56, 57, 40, 232, 40, 1 },
+        { 43, 243, 162, 9, 48, 146, 1 },
+        { 138, 11, 138, 78, 14, 91, 0 }, },
+      { { 179, 172, 156, 128, 134, 12, 1 },
+        { 226, 192, 38, 186, 104, 52, 0 },
+        { 152, 48, 128, 156, 154, 230, 1 },
+        { 22, 11, 46, 178, 1, 163, 1 }, },
+      { { 235, 197, 247, 106, 12, 68, 0 },
+        { 196, 98, 193, 31, 222, 182, 0 },
+        { 17, 24, 43, 119, 209, 235, 1 },
+        { 54, 189, 252, 65, 163, 17, 1 }, },
+      { { 0, 36, 28, 209, 199, 244, 0 },
+        { 116, 88, 114, 240, 64, 68, 1 },
+        { 23, 241, 197, 156, 18, 0, 0 },
+        { 145, 1, 7, 167, 13, 23, 0 }, },
+      { { 0, 65, 85, 60, 228, 236, 0 },
+        { 28, 120, 33, 21, 101, 6, 1 },
+        { 27, 147, 158, 85, 65, 0, 0 },
+        { 176, 83, 84, 66, 15, 28, 0 }, },
+      { { 2, 119, 133, 135, 91, 48, 1 },
+        { 194, 17, 18, 231, 133, 205, 1 },
+        { 134, 109, 112, 208, 247, 32, 0 },
+        { 217, 208, 243, 164, 68, 33, 1 }, },
+      { { 1, 218, 232, 155, 2, 227, 0 },
+        { 52, 141, 137, 230, 136, 26, 1 },
+        { 99, 160, 108, 139, 173, 192, 0 },
+        { 172, 8, 179, 200, 216, 150, 0 }, },
+      { { 4, 40, 5, 26, 111, 159, 0 },
+        { 25, 156, 26, 49, 224, 198, 0 },
+        { 124, 251, 44, 80, 10, 16, 0 },
+        { 49, 131, 198, 44, 28, 204, 0 }, },
+      { { 7, 145, 0, 75, 83, 171, 0 },
+        { 129, 29, 88, 96, 172, 19, 1 },
+        { 106, 229, 105, 0, 68, 240, 0 },
+        { 228, 26, 131, 13, 92, 64, 1 }, },
+      { { 10, 89, 153, 210, 227, 215, 1 },
+        { 190, 223, 120, 183, 132, 64, 0 },
+        { 245, 227, 165, 204, 205, 40, 0 },
+        { 1, 16, 246, 143, 125, 190, 1 }, },
+      { { 9, 178, 243, 249, 248, 177, 1 },
+        { 26, 127, 227, 195, 10, 219, 1 },
+        { 198, 143, 207, 231, 166, 200, 0 },
+        { 237, 168, 97, 227, 255, 44, 0 }, },
+      { { 13, 49, 205, 127, 92, 218, 1 },
+        { 55, 59, 75, 67, 229, 215, 0 },
+        { 173, 157, 127, 89, 198, 88, 0 },
+        { 117, 211, 225, 105, 110, 118, 0 }, },
+      { { 14, 110, 159, 79, 116, 37, 1 },
+        { 235, 214, 66, 87, 195, 15, 1 },
+        { 210, 23, 121, 124, 187, 56, 0 },
+        { 248, 97, 245, 33, 53, 235, 1 }, },
+      { { 23, 114, 128, 242, 245, 110, 0 },
+        { 157, 49, 126, 150, 224, 25, 1 },
+        { 59, 87, 167, 128, 167, 116, 0 },
+        { 204, 3, 180, 191, 70, 92, 1 }, },
+      { { 22, 255, 97, 63, 186, 238, 0 },
+        { 221, 169, 175, 117, 173, 139, 1 },
+        { 59, 174, 254, 67, 127, 180, 0 },
+        { 232, 218, 215, 122, 202, 221, 1 }, },
+      { { 25, 50, 221, 83, 147, 173, 1 },
+        { 50, 79, 119, 115, 160, 29, 1 },
+        { 218, 228, 229, 93, 166, 76, 0 },
+        { 220, 2, 231, 119, 121, 38, 0 }, },
+      { { 30, 55, 90, 161, 138, 28, 1 },
+        { 227, 99, 39, 240, 38, 200, 0 },
+        { 156, 40, 194, 173, 118, 60, 0 },
+        { 9, 178, 7, 242, 99, 99, 1 }, },
+      { { 30, 243, 155, 67, 46, 40, 0 },
+        { 169, 67, 70, 103, 238, 136, 1 },
+        { 10, 58, 97, 108, 231, 188, 0 },
+        { 136, 187, 243, 49, 97, 74, 1 }, },
+      { { 35, 152, 218, 66, 102, 77, 0 },
+        { 172, 213, 65, 58, 234, 16, 0 },
+        { 89, 51, 33, 45, 140, 226, 0 },
+        { 4, 43, 174, 65, 85, 154, 1 }, },
+      { { 35, 183, 98, 39, 73, 166, 1 },
+        { 194, 57, 155, 88, 143, 152, 1 },
+        { 178, 201, 114, 35, 118, 226, 0 },
+        { 140, 248, 141, 108, 206, 33, 1 }, },
+      { { 39, 232, 89, 247, 30, 7, 0 },
+        { 177, 228, 75, 253, 201, 145, 0 },
+        { 112, 60, 119, 205, 11, 242, 0 },
+        { 68, 201, 223, 233, 19, 198, 1 }, },
+      { { 41, 207, 36, 233, 56, 245, 0 },
+        { 76, 174, 192, 220, 12, 223, 1 },
+        { 87, 142, 75, 146, 121, 202, 0 },
+        { 253, 152, 29, 129, 186, 153, 0 }, },
+      { { 43, 202, 225, 232, 241, 71, 1 },
+        { 142, 182, 249, 159, 8, 27, 0 },
+        { 241, 71, 139, 195, 169, 234, 0 },
+        { 108, 8, 124, 207, 182, 184, 1 }, },
+      { { 46, 52, 167, 60, 136, 145, 0 },
+        { 209, 47, 162, 11, 3, 198, 0 },
+        { 68, 136, 158, 114, 150, 58, 0 },
+        { 49, 224, 104, 34, 250, 69, 1 }, },
+      { { 44, 130, 54, 130, 20, 241, 1 },
+        { 7, 78, 128, 136, 202, 77, 1 },
+        { 199, 148, 32, 182, 32, 154, 0 },
+        { 217, 41, 136, 128, 185, 112, 0 }, },
+      { { 52, 119, 39, 34, 124, 128, 0 },
+        { 73, 57, 134, 13, 198, 141, 0 },
+        { 0, 159, 34, 114, 119, 22, 0 },
+        { 88, 177, 216, 48, 206, 73, 0 }, },
+      { { 62, 106, 78, 239, 207, 36, 0 },
+        { 161, 178, 119, 252, 195, 142, 1 },
+        { 18, 121, 251, 185, 43, 62, 0 },
+        { 184, 225, 159, 247, 38, 194, 1 }, },
+      { { 61, 189, 0, 186, 135, 236, 0 },
+        { 85, 171, 54, 184, 236, 18, 1 },
+        { 27, 240, 174, 128, 94, 222, 0 },
+        { 164, 27, 142, 182, 106, 213, 0 }, },
+      { { 65, 89, 70, 17, 248, 154, 0 },
+        { 24, 153, 41, 68, 54, 213, 0 },
+        { 44, 143, 196, 49, 77, 65, 0 },
+        { 85, 182, 17, 74, 76, 140, 0 }, },
+      { { 66, 160, 192, 80, 251, 19, 1 },
+        { 154, 20, 123, 34, 24, 193, 0 },
+        { 228, 111, 133, 1, 130, 161, 0 },
+        { 65, 140, 34, 111, 20, 44, 1 }, },
+      { { 66, 215, 59, 80, 17, 218, 1 },
+        { 246, 73, 216, 5, 62, 73, 0 },
+        { 173, 196, 5, 110, 117, 161, 0 },
+        { 73, 62, 80, 13, 201, 55, 1 }, },
+      { { 71, 21, 159, 236, 40, 89, 1 },
+        { 239, 101, 64, 131, 55, 214, 0 },
+        { 205, 10, 27, 252, 212, 113, 0 },
+        { 53, 246, 96, 129, 83, 123, 1 }, },
+      { { 72, 72, 74, 156, 121, 141, 1 },
+        { 58, 158, 17, 148, 51, 131, 0 },
+        { 216, 207, 28, 169, 9, 9, 0 },
+        { 96, 230, 20, 196, 60, 174, 0 }, },
+      { { 75, 141, 239, 56, 120, 19, 0 },
+        { 248, 182, 137, 3, 30, 215, 0 },
+        { 100, 15, 14, 123, 216, 233, 0 },
+        { 117, 188, 96, 72, 182, 143, 1 }, },
+      { { 72, 197, 79, 119, 42, 255, 1 },
+        { 126, 46, 73, 117, 191, 196, 1 },
+        { 255, 170, 119, 121, 81, 137, 0 },
+        { 145, 254, 215, 73, 58, 63, 0 }, },
+      { { 73, 205, 149, 222, 250, 38, 0 },
+        { 88, 210, 104, 183, 157, 151, 1 },
+        { 50, 47, 189, 212, 217, 201, 0 },
+        { 244, 220, 246, 139, 37, 141, 0 }, },
+      { { 74, 248, 19, 154, 40, 250, 0 },
+        { 156, 203, 10, 133, 186, 194, 1 },
+        { 47, 138, 44, 228, 15, 169, 0 },
+        { 161, 174, 208, 168, 105, 156, 1 }, },
+      { { 76, 39, 45, 47, 65, 165, 0 },
+        { 97, 62, 146, 81, 149, 14, 1 },
+        { 82, 193, 122, 90, 114, 25, 0 },
+        { 184, 84, 197, 36, 190, 67, 0 }, },
+      { { 76, 63, 202, 163, 60, 106, 1 },
+        { 111, 163, 11, 194, 246, 137, 1 },
+        { 171, 30, 98, 169, 254, 25, 0 },
+        { 200, 183, 161, 232, 98, 251, 0 }, },
+      { { 76, 105, 150, 233, 240, 91, 0 },
+        { 13, 246, 106, 198, 54, 71, 0 },
+        { 109, 7, 203, 180, 203, 25, 0 },
+        { 113, 54, 49, 171, 55, 216, 0 }, },
+      { { 83, 59, 100, 210, 198, 162, 0 },
+        { 144, 153, 239, 160, 212, 28, 1 },
+        { 34, 177, 165, 147, 110, 101, 0 },
+        { 156, 21, 130, 251, 204, 132, 1 }, },
+      { { 81, 70, 77, 104, 180, 53, 1 },
+        { 106, 36, 101, 21, 80, 95, 1 },
+        { 214, 22, 139, 89, 49, 69, 0 },
+        { 253, 5, 84, 83, 18, 43, 0 }, },
+      { { 81, 86, 86, 98, 113, 201, 1 },
+        { 78, 125, 85, 4, 178, 29, 0 },
+        { 201, 199, 35, 53, 53, 69, 0 },
+        { 92, 38, 144, 85, 95, 57, 0 }, },
+      { { 80, 115, 53, 140, 113, 223, 1 },
+        { 14, 93, 158, 149, 53, 79, 0 },
+        { 253, 199, 24, 214, 103, 5, 0 },
+        { 121, 86, 84, 188, 221, 56, 0 }, },
+      { { 84, 74, 231, 46, 2, 158, 1 },
+        { 3, 168, 141, 55, 179, 78, 0 },
+        { 188, 160, 58, 115, 169, 21, 0 },
+        { 57, 102, 246, 88, 138, 224, 0 }, },
+      { { 84, 219, 22, 238, 94, 71, 0 },
+        { 5, 245, 76, 180, 223, 143, 0 },
+        { 113, 61, 59, 180, 109, 149, 0 },
+        { 120, 253, 150, 153, 87, 208, 0 }, },
+      { { 86, 240, 240, 30, 140, 100, 1 },
+        { 151, 65, 167, 22, 217, 130, 1 },
+        { 147, 24, 188, 7, 135, 181, 0 },
+        { 160, 205, 180, 114, 193, 116, 1 }, },
+      { { 91, 106, 3, 196, 23, 123, 1 },
+        { 134, 134, 94, 165, 115, 89, 1 },
+        { 239, 116, 17, 224, 43, 109, 0 },
+        { 205, 103, 82, 189, 48, 176, 1 }, },
+      { { 91, 249, 239, 82, 25, 108, 1 },
+        { 182, 131, 215, 23, 190, 149, 1 },
+        { 155, 76, 37, 123, 207, 237, 0 },
+        { 212, 190, 244, 117, 224, 182, 1 }, },
+      { { 92, 116, 249, 2, 251, 190, 0 },
+        { 105, 91, 191, 55, 176, 193, 1 },
+        { 62, 239, 160, 79, 151, 29, 0 },
+        { 193, 134, 246, 126, 237, 75, 0 }, },
+      { { 94, 157, 11, 47, 79, 122, 1 },
+        { 231, 179, 28, 97, 255, 194, 1 },
+        { 175, 121, 122, 104, 92, 189, 0 },
+        { 161, 255, 195, 28, 102, 243, 1 }, },
+      { { 99, 67, 213, 185, 201, 130, 0 },
+        { 144, 120, 57, 207, 20, 158, 0 },
+        { 32, 201, 206, 213, 225, 99, 0 },
+        { 60, 148, 121, 206, 15, 4, 1 }, },
+      { { 96, 93, 164, 245, 22, 155, 1 },
+        { 82, 173, 200, 238, 117, 69, 0 },
+        { 236, 180, 87, 146, 221, 3, 0 },
+        { 81, 87, 59, 137, 218, 165, 0 }, },
+      { { 100, 136, 47, 135, 72, 47, 0 },
+        { 33, 148, 136, 217, 187, 132, 1 },
+        { 122, 9, 112, 250, 8, 147, 0 },
+        { 144, 238, 205, 136, 148, 194, 0 }, },
+      { { 104, 106, 145, 148, 102, 64, 0 },
+        { 28, 210, 2, 175, 81, 8, 0 },
+        { 1, 51, 20, 196, 171, 11, 0 },
+        { 8, 69, 122, 160, 37, 156, 0 }, },
+      { { 108, 55, 209, 238, 204, 101, 1 },
+        { 71, 119, 99, 155, 213, 138, 1 },
+        { 211, 25, 187, 197, 246, 27, 0 },
+        { 168, 213, 236, 227, 119, 113, 0 }, },
+      { { 109, 89, 245, 135, 43, 42, 0 },
+        { 9, 195, 153, 239, 181, 148, 1 },
+        { 42, 106, 112, 215, 205, 91, 0 },
+        { 148, 214, 251, 204, 225, 200, 0 }, },
+      { { 115, 31, 7, 158, 40, 12, 0 },
+        { 216, 129, 4, 153, 183, 158, 0 },
+        { 24, 10, 60, 240, 124, 103, 0 },
+        { 60, 246, 204, 144, 64, 141, 1 }, },
+      { { 114, 38, 22, 146, 200, 199, 1 },
+        { 214, 92, 46, 152, 146, 140, 0 },
+        { 241, 137, 164, 180, 50, 39, 0 },
+        { 24, 164, 140, 186, 29, 53, 1 }, },
+      { { 115, 131, 239, 207, 199, 93, 1 },
+        { 166, 20, 245, 251, 255, 94, 0 },
+        { 221, 113, 249, 251, 224, 231, 0 },
+        { 61, 127, 239, 215, 148, 50, 1 }, },
+      { { 113, 246, 244, 181, 170, 13, 0 },
+        { 88, 101, 167, 254, 57, 156, 0 },
+        { 88, 42, 214, 151, 183, 199, 0 },
+        { 28, 206, 63, 242, 211, 13, 0 }, },
+      { { 118, 16, 2, 241, 170, 59, 0 },
+        { 153, 37, 108, 232, 50, 192, 1 },
+        { 110, 42, 199, 160, 4, 55, 0 },
+        { 129, 166, 11, 155, 82, 76, 1 }, },
+      { { 118, 84, 255, 84, 38, 33, 0 },
+        { 249, 69, 197, 47, 83, 4, 1 },
+        { 66, 50, 21, 127, 149, 55, 0 },
+        { 144, 101, 122, 81, 209, 79, 1 }, },
+      { { 122, 227, 200, 30, 38, 54, 0 },
+        { 184, 2, 15, 62, 221, 74, 1 },
+        { 54, 50, 60, 9, 227, 175, 0 },
+        { 169, 93, 190, 120, 32, 14, 1 }, },
+      { { 126, 32, 91, 27, 109, 102, 0 },
+        { 189, 82, 31, 89, 210, 130, 1 },
+        { 51, 91, 108, 109, 2, 63, 0 },
+        { 160, 165, 205, 124, 37, 94, 1 }, },
+      { { 124, 113, 102, 127, 179, 75, 1 },
+        { 31, 39, 255, 108, 183, 7, 0 },
+        { 233, 102, 255, 51, 71, 31, 0 },
+        { 112, 118, 155, 127, 242, 124, 0 }, },
+      { { 126, 136, 249, 129, 71, 26, 0 },
+        { 161, 210, 157, 235, 120, 64, 0 },
+        { 44, 113, 64, 207, 136, 191, 0 },
+        { 1, 15, 107, 220, 165, 194, 1 }, },
+      { { 127, 189, 182, 243, 152, 70, 0 },
+        { 213, 227, 238, 218, 158, 149, 0 },
+        { 49, 12, 231, 182, 222, 255, 0 },
+        { 84, 188, 173, 187, 227, 213, 1 }, },
+      { { 131, 186, 63, 66, 156, 103, 0 },
+        { 164, 197, 234, 17, 202, 189, 1 },
+        { 115, 28, 161, 126, 46, 224, 1 },
+        { 222, 169, 196, 43, 209, 146, 1 }, },
+      { { 131, 179, 163, 188, 159, 85, 1 },
+        { 150, 37, 178, 179, 79, 251, 0 },
+        { 213, 124, 158, 226, 230, 224, 1 },
+        { 111, 249, 102, 166, 210, 52, 1 }, },
+      { { 134, 184, 56, 238, 195, 91, 1 },
+        { 167, 245, 250, 160, 169, 98, 0 },
+        { 237, 97, 187, 142, 14, 176, 1 },
+        { 35, 74, 130, 175, 215, 242, 1 }, },
+      { { 138, 251, 116, 46, 23, 43, 0 },
+        { 128, 231, 155, 36, 237, 47, 1 },
+        { 106, 116, 58, 23, 111, 168, 1 },
+        { 250, 91, 146, 108, 243, 128, 1 }, },
+      { { 142, 5, 134, 252, 131, 42, 0 },
+        { 209, 34, 120, 162, 39, 38, 1 },
+        { 42, 96, 159, 176, 208, 56, 1 },
+        { 178, 114, 34, 143, 34, 69, 1 }, },
+      { { 143, 72, 60, 30, 32, 231, 0 },
+        { 189, 206, 136, 20, 129, 54, 1 },
+        { 115, 130, 60, 30, 9, 120, 1 },
+        { 182, 64, 148, 8, 185, 222, 1 }, },
+      { { 142, 83, 181, 252, 28, 224, 0 },
+        { 149, 107, 192, 135, 69, 175, 1 },
+        { 3, 156, 31, 214, 229, 56, 1 },
+        { 250, 209, 112, 129, 235, 84, 1 }, },
+      { { 141, 157, 35, 130, 73, 96, 0 },
+        { 69, 147, 144, 129, 142, 176, 1 },
+        { 3, 73, 32, 226, 92, 216, 1 },
+        { 134, 184, 192, 132, 228, 209, 0 }, },
+      { { 141, 185, 144, 117, 146, 156, 1 },
+        { 19, 235, 98, 114, 45, 113, 0 },
+        { 156, 164, 215, 4, 206, 216, 1 },
+        { 71, 90, 39, 35, 107, 228, 0 }, },
+      { { 144, 19, 230, 225, 162, 176, 0 },
+        { 8, 41, 229, 226, 6, 108, 1 },
+        { 6, 162, 195, 179, 228, 4, 1 },
+        { 155, 48, 35, 211, 202, 8, 0 }, },
+      { { 147, 155, 55, 123, 26, 144, 1 },
+        { 146, 233, 196, 97, 142, 255, 0 },
+        { 132, 172, 111, 118, 108, 228, 1 },
+        { 127, 184, 195, 17, 203, 164, 1 }, },
+      { { 151, 14, 49, 237, 242, 168, 1 },
+        { 203, 248, 228, 225, 33, 59, 1 },
+        { 138, 167, 219, 198, 56, 116, 1 },
+        { 238, 66, 67, 147, 143, 233, 1 }, },
+      { { 151, 52, 94, 59, 153, 170, 0 },
+        { 241, 105, 63, 64, 162, 183, 1 },
+        { 42, 204, 238, 61, 22, 116, 1 },
+        { 246, 162, 129, 126, 75, 71, 1 }, },
+      { { 149, 122, 253, 44, 125, 85, 0 },
+        { 45, 245, 151, 23, 65, 255, 0 },
+        { 85, 95, 26, 95, 175, 84, 1 },
+        { 127, 193, 116, 116, 215, 218, 0 }, },
+      { { 151, 221, 14, 6, 20, 80, 1 },
+        { 231, 129, 4, 4, 207, 117, 0 },
+        { 133, 20, 48, 56, 93, 244, 1 },
+        { 87, 121, 144, 16, 64, 243, 1 }, },
+      { { 154, 154, 4, 227, 189, 68, 1 },
+        { 142, 163, 116, 208, 200, 173, 0 },
+        { 145, 94, 227, 144, 44, 172, 1 },
+        { 90, 137, 133, 151, 98, 184, 1 }, },
+      { { 155, 190, 173, 173, 13, 248, 1 },
+        { 230, 171, 150, 195, 105, 254, 1 },
+        { 143, 216, 90, 218, 190, 236, 1 },
+        { 191, 203, 97, 180, 234, 179, 1 }, },
+      { { 157, 103, 144, 38, 24, 93, 0 },
+        { 69, 102, 6, 22, 165, 249, 0 },
+        { 93, 12, 50, 4, 243, 92, 1 },
+        { 79, 210, 180, 48, 51, 81, 0 }, },
+      { { 159, 129, 201, 246, 175, 127, 0 },
+        { 189, 38, 125, 179, 237, 240, 1 },
+        { 127, 122, 183, 201, 192, 252, 1 },
+        { 135, 219, 230, 223, 50, 94, 1 }, },
+      { { 159, 247, 196, 109, 149, 97, 1 },
+        { 199, 39, 119, 70, 77, 63, 1 },
+        { 195, 84, 219, 17, 247, 252, 1 },
+        { 254, 89, 49, 119, 114, 113, 1 }, },
+      { { 167, 3, 62, 38, 186, 122, 0 },
+        { 173, 96, 168, 40, 167, 253, 1 },
+        { 47, 46, 178, 62, 96, 114, 1 },
+        { 223, 242, 138, 10, 131, 90, 1 }, },
+      { { 166, 79, 109, 144, 30, 111, 0 },
+        { 245, 132, 137, 189, 100, 173, 1 },
+        { 123, 60, 4, 219, 121, 50, 1 },
+        { 218, 147, 94, 200, 144, 215, 1 }, },
+      { { 166, 84, 136, 155, 103, 3, 0 },
+        { 249, 21, 24, 238, 192, 34, 0 },
+        { 96, 115, 108, 136, 149, 50, 1 },
+        { 34, 1, 187, 140, 84, 79, 1 }, },
+      { { 164, 250, 171, 52, 23, 138, 0 },
+        { 49, 169, 154, 47, 107, 41, 0 },
+        { 40, 244, 22, 106, 175, 146, 1 },
+        { 74, 107, 122, 44, 202, 198, 0 }, },
+      { { 169, 35, 165, 79, 219, 255, 1 },
+        { 6, 30, 250, 123, 165, 255, 1 },
+        { 255, 237, 249, 82, 226, 74, 1 },
+        { 255, 210, 239, 47, 188, 48, 0 }, },
+      { { 175, 22, 89, 55, 116, 14, 1 },
+        { 251, 115, 9, 89, 225, 57, 0 },
+        { 184, 23, 118, 77, 52, 122, 1 },
+        { 78, 67, 205, 72, 103, 111, 1 }, },
+      { { 174, 60, 2, 96, 17, 226, 1 },
+        { 199, 171, 90, 8, 2, 33, 1 },
+        { 163, 196, 3, 32, 30, 58, 1 },
+        { 194, 32, 8, 45, 106, 241, 1 }, },
+      { { 174, 166, 70, 29, 70, 134, 0 },
+        { 209, 26, 11, 120, 75, 46, 0 },
+        { 48, 177, 92, 49, 50, 186, 1 },
+        { 58, 105, 15, 104, 44, 69, 1 }, },
+      { { 174, 169, 188, 206, 254, 64, 0 },
+        { 173, 210, 226, 170, 205, 167, 0 },
+        { 1, 63, 185, 158, 202, 186, 1 },
+        { 114, 217, 170, 163, 165, 218, 1 }, },
+      { { 177, 170, 233, 41, 210, 190, 0 },
+        { 32, 184, 175, 123, 40, 123, 1 },
+        { 62, 165, 202, 75, 170, 198, 1 },
+        { 239, 10, 111, 122, 142, 130, 0 }, },
+      { { 179, 236, 199, 247, 61, 40, 0 },
+        { 216, 160, 87, 207, 235, 181, 1 },
+        { 10, 94, 119, 241, 155, 230, 1 },
+        { 214, 235, 249, 245, 2, 141, 1 }, },
+      { { 179, 242, 249, 209, 5, 96, 1 },
+        { 182, 65, 215, 207, 72, 56, 1 },
+        { 131, 80, 69, 207, 167, 230, 1 },
+        { 142, 9, 121, 245, 193, 54, 1 }, },
+      { { 183, 83, 178, 95, 132, 147, 0 },
+        { 145, 77, 236, 78, 199, 122, 0 },
+        { 100, 144, 253, 38, 229, 118, 1 },
+        { 47, 113, 185, 27, 217, 68, 1 }, },
+      { { 180, 99, 115, 84, 106, 222, 0 },
+        { 29, 88, 207, 61, 39, 232, 0 },
+        { 61, 171, 21, 103, 99, 22, 1 },
+        { 11, 242, 94, 121, 141, 92, 0 }, },
+      { { 182, 97, 89, 33, 192, 136, 0 },
+        { 161, 120, 39, 77, 36, 32, 0 },
+        { 8, 129, 194, 77, 67, 54, 1 },
+        { 2, 18, 89, 114, 15, 66, 1 }, },
+      { { 186, 184, 208, 95, 68, 186, 1 },
+        { 146, 219, 79, 74, 233, 98, 1 },
+        { 174, 145, 125, 5, 142, 174, 1 },
+        { 163, 75, 169, 121, 109, 164, 1 }, },
+      { { 186, 192, 40, 124, 16, 3, 1 },
+        { 178, 38, 204, 12, 9, 35, 0 },
+        { 224, 4, 31, 10, 1, 174, 1 },
+        { 98, 72, 24, 25, 178, 38, 1 }, },
+      { { 188, 9, 19, 77, 135, 103, 0 },
+        { 5, 198, 124, 121, 71, 34, 1 },
+        { 115, 112, 217, 100, 72, 30, 1 },
+        { 162, 113, 79, 31, 49, 208, 0 }, },
+      { { 190, 60, 15, 68, 249, 12, 0 },
+        { 233, 147, 118, 25, 35, 165, 0 },
+        { 24, 79, 145, 120, 30, 62, 1 },
+        { 82, 226, 76, 55, 100, 203, 1 }, },
+      { { 193, 39, 249, 24, 172, 4, 0 },
+        { 120, 64, 163, 19, 84, 186, 0 },
+        { 16, 26, 140, 79, 242, 65, 1 },
+        { 46, 149, 100, 98, 129, 15, 0 }, },
+      { { 194, 54, 103, 175, 248, 99, 1 },
+        { 206, 53, 171, 193, 147, 175, 1 },
+        { 227, 15, 250, 243, 54, 33, 1 },
+        { 250, 228, 193, 234, 214, 57, 1 }, },
+      { { 194, 202, 232, 228, 90, 50, 0 },
+        { 160, 176, 201, 166, 25, 233, 1 },
+        { 38, 45, 19, 139, 169, 161, 1 },
+        { 203, 204, 50, 201, 134, 130, 1 }, },
+      { { 198, 18, 22, 32, 228, 28, 0 },
+        { 137, 113, 32, 16, 114, 108, 0 },
+        { 28, 19, 130, 52, 36, 49, 1 },
+        { 27, 39, 4, 2, 71, 72, 1 }, },
+      { { 199, 229, 93, 208, 65, 150, 0 },
+        { 241, 88, 91, 149, 28, 116, 0 },
+        { 52, 193, 5, 221, 83, 241, 1 },
+        { 23, 28, 84, 237, 13, 71, 1 }, },
+      { { 202, 89, 204, 102, 248, 236, 0 },
+        { 172, 187, 97, 22, 181, 165, 1 },
+        { 27, 143, 179, 25, 205, 41, 1 },
+        { 210, 214, 180, 67, 110, 154, 1 }, },
+      { { 200, 251, 13, 58, 124, 119, 1 },
+        { 62, 183, 10, 21, 220, 239, 1 },
+        { 247, 31, 46, 88, 111, 137, 1 },
+        { 251, 157, 212, 40, 118, 190, 0 }, },
+      { { 204, 35, 191, 4, 244, 230, 0 },
+        { 45, 90, 170, 19, 87, 45, 1 },
+        { 51, 151, 144, 126, 226, 25, 1 },
+        { 218, 117, 100, 42, 173, 90, 0 }, },
+      { { 204, 185, 29, 222, 17, 77, 0 },
+        { 53, 199, 82, 145, 189, 39, 0 },
+        { 89, 68, 61, 220, 78, 153, 1 },
+        { 114, 94, 196, 165, 113, 214, 0 }, },
+      { { 214, 71, 53, 203, 221, 81, 1 },
+        { 199, 84, 244, 197, 212, 239, 0 },
+        { 197, 93, 233, 214, 113, 53, 1 },
+        { 123, 149, 209, 151, 149, 113, 1 }, },
+      { { 212, 80, 13, 82, 140, 243, 1 },
+        { 55, 13, 108, 5, 208, 228, 1 },
+        { 231, 152, 165, 88, 5, 21, 1 },
+        { 147, 133, 208, 27, 88, 118, 0 }, },
+      { { 214, 126, 50, 1, 136, 117, 0 },
+        { 197, 197, 166, 84, 18, 232, 1 },
+        { 87, 8, 192, 38, 63, 53, 1 },
+        { 139, 164, 21, 50, 209, 209, 1 }, },
+      { { 214, 239, 103, 48, 199, 69, 1 },
+        { 215, 180, 183, 53, 94, 44, 0 },
+        { 209, 113, 134, 115, 123, 181, 1 },
+        { 26, 61, 86, 118, 150, 245, 1 }, },
+      { { 217, 10, 193, 255, 8, 72, 0 },
+        { 20, 162, 69, 195, 177, 186, 0 },
+        { 9, 8, 127, 193, 168, 77, 1 },
+        { 46, 198, 225, 209, 34, 148, 0 }, },
+      { { 218, 68, 144, 181, 192, 149, 0 },
+        { 208, 126, 36, 214, 17, 96, 0 },
+        { 84, 129, 214, 132, 145, 45, 1 },
+        { 3, 68, 53, 146, 63, 5, 1 }, },
+      { { 218, 142, 240, 138, 31, 78, 1 },
+        { 198, 194, 157, 178, 248, 171, 0 },
+        { 185, 124, 40, 135, 184, 173, 1 },
+        { 106, 143, 166, 220, 161, 177, 1 }, },
+      { { 226, 186, 72, 154, 71, 244, 1 },
+        { 182, 153, 19, 184, 216, 106, 1 },
+        { 151, 241, 44, 137, 46, 163, 1 },
+        { 171, 13, 142, 228, 76, 182, 1 }, },
+      { { 226, 251, 142, 197, 152, 25, 0 },
+        { 160, 133, 98, 206, 63, 237, 0 },
+        { 76, 12, 209, 184, 239, 163, 1 },
+        { 91, 254, 57, 163, 80, 130, 1 }, },
+      { { 229, 62, 6, 191, 131, 16, 1 },
+        { 83, 161, 50, 232, 147, 126, 0 },
+        { 132, 96, 254, 176, 62, 83, 1 },
+        { 63, 100, 139, 166, 66, 229, 0 }, },
+      { { 230, 135, 176, 105, 180, 112, 0 },
+        { 205, 96, 224, 74, 92, 107, 1 },
+        { 7, 22, 203, 6, 240, 179, 1 },
+        { 235, 29, 41, 3, 131, 89, 1 }, },
+      { { 229, 161, 35, 223, 231, 210, 0 },
+        { 29, 24, 250, 233, 223, 114, 0 },
+        { 37, 243, 253, 226, 66, 211, 1 },
+        { 39, 125, 203, 175, 140, 92, 0 }, },
+      { { 228, 231, 74, 54, 176, 3, 0 },
+        { 121, 36, 43, 12, 159, 41, 0 },
+        { 96, 6, 182, 41, 115, 147, 1 },
+        { 74, 124, 152, 106, 18, 79, 0 }, },
+      { { 235, 25, 74, 181, 219, 227, 0 },
+        { 180, 191, 57, 232, 23, 177, 1 },
+        { 99, 237, 214, 169, 76, 107, 1 },
+        { 198, 244, 11, 206, 126, 150, 1 }, },
+      { { 235, 104, 214, 214, 135, 188, 0 },
+        { 144, 202, 115, 190, 243, 116, 1 },
+        { 30, 240, 181, 181, 139, 107, 1 },
+        { 151, 103, 190, 231, 41, 132, 1 }, },
+      { { 239, 76, 157, 25, 92, 242, 0 },
+        { 245, 218, 8, 79, 80, 247, 1 },
+        { 39, 157, 76, 92, 153, 123, 1 },
+        { 247, 133, 121, 8, 45, 215, 1 }, },
+      { { 240, 140, 65, 178, 161, 79, 1 },
+        { 94, 164, 61, 153, 184, 32, 0 },
+        { 249, 66, 166, 193, 24, 135, 1 },
+        { 2, 14, 204, 222, 18, 189, 0 }, },
+      { { 245, 42, 227, 102, 145, 91, 0 },
+        { 5, 164, 255, 11, 179, 121, 0 },
+        { 109, 68, 179, 99, 170, 87, 1 },
+        { 79, 102, 232, 127, 146, 208, 0 }, },
+      { { 247, 127, 207, 238, 89, 167, 0 },
+        { 225, 189, 95, 159, 151, 191, 1 },
+        { 114, 205, 59, 249, 255, 119, 1 },
+        { 254, 244, 252, 253, 94, 195, 1 }, },
+      { { 248, 218, 47, 9, 127, 235, 0 },
+        { 44, 159, 156, 109, 122, 175, 1 },
+        { 107, 255, 72, 122, 45, 143, 1 },
+        { 250, 175, 91, 28, 252, 154, 0 }, },
+      { { 252, 25, 236, 171, 9, 228, 1 },
+        { 39, 171, 149, 218, 148, 166, 1 },
+        { 147, 200, 106, 155, 204, 31, 1 },
+        { 178, 148, 173, 212, 234, 242, 0 }, },
+      { { 147, 75, 97, 136, 48, 21, 0 },
+        { 136, 132, 133, 149, 4, 123, 0 },
+        { 84, 6, 8, 195, 105, 100, 1 },
+        { 111, 16, 84, 208, 144, 136, 1 }, },
+      { { 200, 173, 102, 37, 128, 21, 1 },
+        { 66, 166, 163, 80, 31, 100, 0 },
+        { 212, 0, 210, 51, 90, 137, 1 },
+        { 19, 124, 5, 98, 178, 161, 0 }, },
+      { { 28, 218, 21, 111, 160, 160, 1 },
+        { 11, 235, 100, 69, 137, 14, 1 },
+        { 130, 130, 251, 84, 45, 156, 0 },
+        { 184, 72, 209, 19, 107, 232, 0 }, },
+      { { 35, 147, 244, 147, 165, 30, 0 },
+        { 152, 65, 185, 218, 236, 92, 0 },
+        { 60, 82, 228, 151, 228, 226, 0 },
+        { 29, 27, 173, 206, 193, 12, 1 }, },
+      { { 47, 88, 146, 189, 228, 140, 1 },
+        { 155, 251, 32, 222, 99, 18, 0 },
+        { 152, 147, 222, 164, 141, 122, 0 },
+        { 36, 99, 61, 130, 111, 236, 1 }, },
+      { { 67, 161, 247, 150, 104, 223, 0 },
+        { 156, 92, 139, 147, 191, 212, 0 },
+        { 125, 139, 52, 247, 194, 225, 0 },
+        { 21, 254, 228, 232, 157, 28, 1 }, },
+      { { 73, 80, 111, 179, 116, 206, 1 },
+        { 62, 59, 137, 213, 242, 21, 0 },
+        { 185, 151, 102, 251, 5, 73, 0 },
+        { 84, 39, 213, 200, 238, 62, 0 }, },
+      { { 82, 96, 94, 14, 152, 127, 0 },
+        { 164, 68, 47, 20, 179, 199, 1 },
+        { 127, 12, 184, 61, 3, 37, 0 },
+        { 241, 230, 148, 122, 17, 18, 1 }, },
+      { { 82, 145, 24, 227, 252, 161, 0 },
+        { 168, 125, 100, 192, 220, 129, 1 },
+        { 66, 159, 227, 140, 68, 165, 0 },
+        { 192, 157, 129, 147, 95, 10, 1 }, },
+      { { 101, 223, 133, 82, 42, 63, 1 },
+        { 91, 133, 72, 63, 188, 220, 1 },
+        { 254, 42, 37, 80, 253, 211, 0 },
+        { 157, 158, 254, 9, 80, 237, 0 }, },
+      { { 113, 72, 12, 215, 43, 160, 0 },
+        { 56, 136, 84, 236, 145, 148, 1 },
+        { 2, 234, 117, 152, 9, 71, 0 },
+        { 148, 196, 155, 149, 8, 142, 0 }, },
+      { { 142, 6, 96, 125, 160, 37, 0 },
+        { 217, 38, 225, 80, 1, 42, 1 },
+        { 82, 2, 223, 3, 48, 56, 1 },
+        { 170, 64, 5, 67, 178, 77, 1 }, },
+      { { 150, 170, 33, 3, 84, 112, 1 },
+        { 135, 144, 134, 65, 200, 105, 1 },
+        { 135, 21, 96, 66, 42, 180, 1 },
+        { 203, 9, 193, 48, 132, 240, 1 }, },
+      { { 161, 37, 174, 137, 93, 100, 1 },
+        { 102, 16, 146, 218, 70, 183, 1 },
+        { 147, 93, 72, 186, 210, 66, 1 },
+        { 246, 177, 45, 164, 132, 51, 0 }, },
+      { { 188, 234, 86, 10, 46, 231, 1 },
+        { 15, 206, 15, 60, 202, 174, 1 },
+        { 243, 186, 40, 53, 43, 158, 1 },
+        { 186, 169, 158, 120, 57, 248, 0 }, },
+      { { 194, 210, 70, 164, 139, 68, 0 },
+        { 132, 33, 49, 180, 27, 172, 0 },
+        { 17, 104, 146, 177, 37, 161, 1 },
+        { 26, 236, 22, 198, 66, 16, 1 }, },
+      { { 218, 226, 149, 139, 69, 176, 0 },
+        { 128, 90, 22, 199, 216, 110, 1 },
+        { 6, 209, 104, 212, 163, 173, 1 },
+        { 187, 13, 241, 180, 45, 0, 1 }, },
+      { { 236, 63, 99, 213, 29, 216, 0 },
+        { 85, 139, 211, 201, 119, 233, 0 },
+        { 13, 220, 85, 227, 126, 27, 1 },
+        { 75, 247, 73, 229, 232, 213, 0 }, },
+      { { 255, 105, 45, 60, 107, 15, 0 },
+        { 185, 182, 158, 61, 53, 182, 0 },
+        { 120, 107, 30, 90, 75, 127, 1 },
+        { 54, 214, 94, 60, 182, 206, 1 }, },
+      { { 0, 28, 79, 167, 70, 146, 1 },
+        { 98, 185, 9, 225, 195, 68, 0 },
+        { 164, 177, 114, 249, 28, 0, 0 },
+        { 17, 97, 195, 200, 78, 163, 0 }, },
+      { { 2, 24, 244, 93, 202, 150, 0 },
+        { 144, 217, 233, 114, 1, 198, 0 },
+        { 52, 169, 221, 23, 140, 32, 0 },
+        { 49, 192, 39, 75, 205, 132, 1 }, },
+      { { 3, 209, 163, 72, 235, 88, 0 },
+        { 140, 17, 240, 39, 46, 210, 0 },
+        { 13, 107, 137, 98, 197, 224, 0 },
+        { 37, 186, 114, 7, 196, 24, 1 }, },
+      { { 4, 27, 131, 253, 41, 154, 1 },
+        { 27, 169, 88, 195, 39, 202, 0 },
+        { 172, 202, 95, 224, 236, 16, 0 },
+        { 41, 242, 97, 141, 74, 236, 0 }, },
+      { { 9, 141, 142, 139, 148, 215, 1 },
+        { 102, 142, 40, 210, 206, 87, 0 },
+        { 245, 148, 232, 184, 216, 200, 0 },
+        { 117, 57, 165, 138, 56, 179, 0 }, },
+      { { 8, 163, 222, 26, 89, 139, 0 },
+        { 48, 94, 27, 2, 174, 143, 0 },
+        { 104, 205, 44, 61, 226, 136, 0 },
+        { 120, 186, 160, 108, 61, 6, 0 }, },
+      { { 11, 188, 12, 8, 32, 24, 0 },
+        { 232, 131, 2, 0, 40, 86, 0 },
+        { 12, 2, 8, 24, 30, 232, 0 },
+        { 53, 10, 0, 32, 96, 139, 1 }, },
+      { { 8, 180, 118, 44, 124, 199, 0 },
+        { 76, 127, 139, 16, 75, 135, 0 },
+        { 113, 159, 26, 55, 22, 136, 0 },
+        { 112, 233, 4, 104, 255, 25, 0 }, },
+      { { 8, 252, 181, 200, 85, 47, 1 },
+        { 66, 215, 218, 151, 104, 7, 1 },
+        { 250, 85, 9, 214, 159, 136, 0 },
+        { 240, 11, 116, 173, 245, 161, 0 }, },
+      { { 14, 22, 54, 84, 254, 34, 0 },
+        { 217, 83, 232, 32, 67, 141, 1 },
+        { 34, 63, 149, 54, 52, 56, 0 },
+        { 216, 225, 2, 11, 229, 77, 1 }, },
+      { { 18, 44, 177, 159, 7, 34, 1 },
+        { 210, 192, 158, 227, 193, 2, 1 },
+        { 162, 112, 124, 198, 154, 36, 0 },
+        { 160, 65, 227, 188, 129, 165, 1 }, },
+      { { 18, 69, 156, 171, 22, 232, 0 },
+        { 228, 104, 4, 230, 228, 7, 1 },
+        { 11, 180, 106, 156, 209, 36, 0 },
+        { 240, 19, 179, 144, 11, 19, 1 }, },
+      { { 19, 147, 126, 245, 174, 67, 1 },
+        { 190, 101, 237, 224, 79, 156, 0 },
+        { 225, 58, 215, 191, 100, 228, 0 },
+        { 28, 249, 3, 219, 211, 62, 1 }, },
+      { { 22, 41, 244, 18, 48, 140, 0 },
+        { 153, 200, 135, 18, 164, 5, 0 },
+        { 24, 134, 36, 23, 202, 52, 0 },
+        { 80, 18, 164, 112, 137, 204, 1 }, },
+      { { 21, 124, 103, 88, 122, 66, 0 },
+        { 93, 145, 207, 37, 2, 151, 0 },
+        { 33, 47, 13, 115, 31, 84, 0 },
+        { 116, 160, 82, 121, 196, 221, 0 }, },
+      { { 21, 204, 177, 89, 131, 214, 1 },
+        { 87, 200, 252, 119, 8, 82, 0 },
+        { 181, 224, 205, 70, 153, 212, 0 },
+        { 37, 8, 119, 31, 137, 245, 0 }, },
+      { { 23, 227, 47, 161, 221, 185, 0 },
+        { 161, 60, 182, 197, 110, 221, 1 },
+        { 78, 221, 194, 250, 99, 244, 0 },
+        { 221, 187, 81, 182, 158, 66, 1 }, },
+      { { 27, 70, 90, 142, 239, 10, 1 },
+        { 234, 82, 61, 164, 227, 154, 0 },
+        { 168, 123, 184, 173, 49, 108, 0 },
+        { 44, 227, 146, 222, 37, 43, 1 }, },
+      { { 27, 105, 78, 73, 179, 188, 1 },
+        { 170, 138, 119, 116, 38, 87, 1 },
+        { 158, 230, 201, 57, 75, 108, 0 },
+        { 245, 50, 23, 119, 40, 170, 1 }, },
+      { { 27, 196, 203, 219, 144, 138, 1 },
+        { 242, 10, 109, 199, 170, 19, 0 },
+        { 168, 132, 237, 233, 145, 236, 0 },
+        { 100, 42, 241, 219, 40, 39, 1 }, },
+      { { 31, 44, 109, 141, 119, 17, 1 },
+        { 235, 150, 151, 225, 65, 87, 0 },
+        { 196, 119, 88, 219, 26, 124, 0 },
+        { 117, 65, 67, 244, 180, 235, 1 }, },
+      { { 31, 87, 63, 15, 8, 234, 1 },
+        { 231, 75, 140, 69, 167, 158, 1 },
+        { 171, 136, 120, 126, 117, 124, 0 },
+        { 188, 242, 209, 24, 233, 115, 1 }, },
+      { { 28, 109, 100, 176, 216, 126, 1 },
+        { 87, 178, 175, 148, 36, 197, 1 },
+        { 191, 13, 134, 147, 91, 28, 0 },
+        { 209, 146, 20, 250, 166, 245, 0 }, },
+      { { 31, 214, 51, 233, 39, 78, 1 },
+        { 207, 99, 220, 245, 106, 26, 0 },
+        { 185, 114, 75, 230, 53, 252, 0 },
+        { 44, 43, 87, 157, 227, 121, 1 }, },
+      { { 31, 237, 94, 0, 105, 171, 1 },
+        { 235, 222, 31, 4, 46, 148, 1 },
+        { 234, 203, 0, 61, 91, 252, 0 },
+        { 148, 186, 16, 124, 61, 235, 1 }, },
+      { { 32, 25, 133, 43, 191, 166, 0 },
+        { 8, 169, 56, 123, 196, 135, 1 },
+        { 50, 254, 234, 80, 204, 2, 0 },
+        { 240, 145, 239, 14, 74, 136, 0 }, },
+      { { 34, 61, 51, 120, 7, 207, 0 },
+        { 212, 237, 218, 57, 102, 2, 0 },
+        { 121, 240, 15, 102, 94, 34, 0 },
+        { 32, 51, 78, 45, 219, 149, 1 }, },
+      { { 32, 99, 33, 28, 107, 49, 0 },
+        { 24, 20, 146, 45, 5, 202, 1 },
+        { 70, 107, 28, 66, 99, 2, 0 },
+        { 169, 208, 90, 36, 148, 12, 0 }, },
+      { { 34, 110, 87, 72, 118, 216, 1 },
+        { 206, 216, 67, 45, 98, 79, 0 },
+        { 141, 183, 9, 117, 59, 34, 0 },
+        { 121, 35, 90, 97, 13, 185, 1 }, },
+      { { 32, 116, 241, 178, 248, 194, 1 },
+        { 94, 121, 171, 143, 128, 129, 0 },
+        { 161, 143, 166, 199, 151, 2, 0 },
+        { 64, 128, 248, 234, 207, 61, 0 }, },
+      { { 33, 172, 61, 93, 237, 110, 0 },
+        { 124, 208, 250, 89, 105, 150, 1 },
+        { 59, 91, 221, 94, 26, 194, 0 },
+        { 180, 203, 77, 47, 133, 159, 0 }, },
+      { { 33, 195, 23, 29, 144, 62, 1 },
+        { 18, 64, 40, 93, 47, 95, 1 },
+        { 190, 4, 220, 116, 97, 194, 0 },
+        { 253, 122, 93, 10, 1, 36, 0 }, },
+      { { 39, 47, 226, 196, 67, 84, 0 },
+        { 197, 144, 211, 186, 7, 88, 0 },
+        { 21, 97, 17, 163, 250, 114, 0 },
+        { 13, 112, 46, 229, 132, 209, 1 }, },
+      { { 39, 159, 50, 224, 232, 133, 0 },
+        { 201, 253, 224, 152, 14, 152, 0 },
+        { 80, 139, 131, 166, 124, 242, 0 },
+        { 12, 184, 12, 131, 223, 201, 1 }, },
+      { { 38, 190, 33, 114, 154, 9, 1 },
+        { 211, 165, 226, 41, 168, 137, 0 },
+        { 200, 44, 167, 66, 62, 178, 0 },
+        { 72, 138, 202, 35, 210, 229, 1 }, },
+      { { 42, 3, 57, 247, 158, 125, 1 },
+        { 182, 102, 224, 249, 229, 201, 1 },
+        { 223, 60, 247, 206, 96, 42, 0 },
+        { 201, 211, 207, 131, 179, 54, 1 }, },
+      { { 43, 24, 147, 239, 72, 235, 0 },
+        { 132, 255, 72, 203, 163, 146, 1 },
+        { 107, 137, 123, 228, 140, 106, 0 },
+        { 164, 226, 233, 137, 127, 144, 1 }, },
+      { { 41, 20, 232, 100, 42, 8, 0 },
+        { 104, 35, 193, 42, 33, 144, 0 },
+        { 8, 42, 19, 11, 148, 74, 0 },
+        { 4, 194, 42, 65, 226, 11, 0 }, },
+      { { 41, 104, 166, 84, 120, 185, 0 },
+        { 24, 158, 194, 14, 35, 213, 1 },
+        { 78, 143, 21, 50, 139, 74, 0 },
+        { 213, 226, 56, 33, 188, 140, 0 }, },
+      { { 42, 193, 129, 37, 248, 55, 0 },
+        { 136, 54, 40, 95, 13, 193, 1 },
+        { 118, 15, 210, 64, 193, 170, 0 },
+        { 193, 216, 125, 10, 54, 8, 1 }, },
+      { { 40, 212, 32, 190, 102, 221, 1 },
+        { 94, 63, 128, 188, 233, 66, 0 },
+        { 221, 179, 62, 130, 21, 138, 0 },
+        { 33, 75, 158, 128, 254, 61, 0 }, },
+      { { 41, 251, 7, 40, 147, 64, 0 },
+        { 4, 163, 50, 45, 14, 31, 0 },
+        { 1, 100, 138, 112, 111, 202, 0 },
+        { 124, 56, 90, 38, 98, 144, 0 }, },
+      { { 45, 79, 27, 209, 68, 171, 0 },
+        { 113, 222, 72, 205, 102, 24, 1 },
+        { 106, 145, 69, 236, 121, 90, 0 },
+        { 140, 51, 89, 137, 61, 199, 0 }, },
+      { { 44, 77, 58, 93, 125, 209, 0 },
+        { 125, 222, 208, 76, 71, 195, 0 },
+        { 69, 223, 93, 46, 89, 26, 0 },
+        { 97, 241, 25, 5, 189, 223, 0 }, },
+      { { 46, 201, 163, 115, 80, 78, 1 },
+        { 151, 178, 200, 95, 174, 1, 0 },
+        { 185, 5, 103, 98, 201, 186, 0 },
+        { 64, 58, 253, 9, 166, 244, 1 }, },
+      { { 47, 242, 157, 56, 166, 39, 0 },
+        { 185, 103, 42, 63, 72, 30, 1 },
+        { 114, 50, 142, 92, 167, 250, 0 },
+        { 188, 9, 126, 42, 115, 78, 1 }, },
+      { { 51, 14, 242, 29, 118, 78, 0 },
+        { 220, 208, 141, 122, 99, 27, 0 },
+        { 57, 55, 92, 39, 184, 102, 0 },
+        { 108, 99, 47, 88, 133, 157, 1 }, },
+      { { 51, 46, 161, 171, 153, 4, 0 },
+        { 192, 160, 182, 219, 128, 155, 0 },
+        { 16, 76, 234, 194, 186, 102, 0 },
+        { 108, 128, 237, 182, 130, 129, 1 }, },
+      { { 49, 41, 200, 243, 224, 220, 1 },
+        { 62, 184, 103, 218, 164, 80, 0 },
+        { 157, 131, 231, 137, 202, 70, 0 },
+        { 5, 18, 173, 243, 14, 190, 0 }, },
+      { { 53, 0, 254, 245, 196, 8, 0 },
+        { 49, 112, 229, 202, 99, 20, 0 },
+        { 8, 17, 215, 191, 128, 86, 0 },
+        { 20, 99, 41, 211, 135, 70, 0 }, },
+      { { 55, 36, 110, 62, 36, 63, 0 },
+        { 249, 36, 143, 24, 227, 86, 1 },
+        { 126, 18, 62, 59, 18, 118, 0 },
+        { 181, 99, 140, 120, 146, 79, 1 }, },
+      { { 53, 81, 121, 197, 146, 92, 1 },
+        { 39, 65, 229, 253, 37, 81, 0 },
+        { 157, 36, 209, 207, 69, 86, 0 },
+        { 69, 82, 95, 211, 193, 114, 0 }, },
+      { { 54, 184, 189, 91, 81, 60, 0 },
+        { 177, 209, 214, 91, 168, 71, 1 },
+        { 30, 69, 109, 94, 142, 182, 0 },
+        { 241, 10, 237, 53, 197, 198, 1 }, },
+      { { 54, 221, 188, 202, 44, 119, 0 },
+        { 237, 197, 204, 158, 204, 198, 1 },
+        { 119, 26, 41, 158, 221, 182, 0 },
+        { 177, 153, 188, 153, 209, 219, 1 }, },
+      { { 55, 221, 249, 250, 116, 140, 0 },
+        { 249, 249, 197, 159, 236, 19, 0 },
+        { 24, 151, 47, 207, 221, 246, 0 },
+        { 100, 27, 252, 209, 207, 207, 1 }, },
+      { { 57, 8, 64, 158, 68, 97, 1 },
+        { 22, 150, 5, 136, 193, 18, 1 },
+        { 195, 17, 60, 129, 8, 78, 0 },
+        { 164, 65, 136, 208, 52, 180, 0 }, },
+      { { 59, 1, 93, 14, 177, 201, 1 },
+        { 174, 78, 53, 9, 165, 23, 0 },
+        { 201, 198, 184, 93, 64, 110, 0 },
+        { 116, 82, 200, 86, 57, 58, 1 }, },
+      { { 58, 14, 216, 225, 88, 0, 1 },
+        { 226, 242, 69, 202, 0, 137, 0 },
+        { 128, 13, 67, 141, 184, 46, 0 },
+        { 72, 128, 41, 209, 39, 163, 1 }, },
+      { { 56, 110, 40, 10, 241, 243, 1 },
+        { 110, 158, 190, 12, 128, 75, 1 },
+        { 231, 199, 168, 10, 59, 14, 0 },
+        { 233, 0, 152, 62, 188, 187, 0 }, },
+      { { 57, 97, 243, 168, 199, 88, 1 },
+        { 6, 114, 183, 175, 102, 82, 0 },
+        { 141, 113, 138, 231, 195, 78, 0 },
+        { 37, 51, 122, 246, 167, 48, 0 }, },
+      { { 57, 175, 5, 221, 138, 171, 1 },
+        { 82, 142, 110, 233, 45, 158, 1 },
+        { 234, 168, 221, 208, 122, 206, 0 },
+        { 188, 218, 75, 187, 56, 165, 0 }, },
+      { { 57, 172, 253, 140, 32, 166, 1 },
+        { 106, 202, 143, 155, 9, 22, 1 },
+        { 178, 130, 24, 223, 154, 206, 0 },
+        { 180, 72, 108, 248, 169, 171, 0 }, },
+      { { 56, 215, 227, 25, 189, 206, 1 },
+        { 94, 11, 189, 95, 110, 139, 0 },
+        { 185, 222, 204, 99, 245, 142, 0 },
+        { 104, 187, 125, 94, 232, 61, 0 }, },
+      { { 62, 29, 177, 174, 155, 223, 1 },
+        { 199, 239, 188, 187, 165, 195, 0 },
+        { 253, 236, 186, 198, 220, 62, 0 },
+        { 97, 210, 238, 158, 251, 241, 1 }, },
+      { { 63, 57, 54, 16, 131, 58, 1 },
+        { 147, 195, 190, 40, 38, 84, 1 },
+        { 174, 96, 132, 54, 78, 126, 0 },
+        { 149, 50, 10, 62, 225, 228, 1 }, },
+      { { 61, 68, 172, 103, 73, 121, 1 },
+        { 103, 54, 212, 78, 161, 212, 1 },
+        { 207, 73, 115, 26, 145, 94, 0 },
+        { 149, 194, 185, 21, 182, 115, 0 }, },
+      { { 62, 216, 120, 160, 212, 247, 1 },
+        { 167, 255, 173, 156, 72, 65, 1 },
+        { 247, 149, 130, 143, 13, 190, 0 },
+        { 193, 9, 28, 218, 255, 242, 1 }, },
+      { { 67, 45, 92, 111, 10, 140, 0 },
+        { 224, 232, 67, 112, 181, 150, 0 },
+        { 24, 168, 123, 29, 90, 97, 0 },
+        { 52, 214, 135, 97, 11, 131, 1 }, },
+      { { 66, 52, 3, 145, 156, 82, 1 },
+        { 214, 1, 42, 193, 82, 193, 0 },
+        { 165, 28, 196, 224, 22, 33, 0 },
+        { 65, 165, 65, 170, 64, 53, 1 }, },
+      { { 64, 59, 107, 130, 137, 239, 0 },
+        { 36, 141, 187, 145, 182, 136, 1 },
+        { 123, 200, 160, 235, 110, 1, 0 },
+        { 136, 182, 196, 238, 216, 146, 0 }, },
+      { { 67, 109, 145, 73, 70, 116, 0 },
+        { 196, 208, 66, 119, 84, 82, 1 },
+        { 23, 49, 73, 68, 219, 97, 0 },
+        { 165, 21, 119, 33, 5, 145, 1 }, },
+      { { 67, 151, 133, 107, 233, 44, 1 },
+        { 202, 49, 112, 83, 188, 158, 1 },
+        { 154, 75, 235, 80, 244, 225, 0 },
+        { 188, 158, 229, 7, 70, 41, 1 }, },
+      { { 71, 29, 159, 177, 209, 0, 1 },
+        { 243, 241, 48, 195, 22, 21, 0 },
+        { 128, 69, 198, 252, 220, 113, 0 },
+        { 84, 52, 97, 134, 71, 231, 1 }, },
+      { { 70, 43, 251, 166, 87, 121, 0 },
+        { 165, 244, 147, 163, 247, 73, 1 },
+        { 79, 117, 50, 239, 234, 49, 0 },
+        { 201, 119, 226, 228, 151, 210, 1 }, },
+      { { 70, 92, 73, 248, 0, 58, 1 },
+        { 243, 161, 73, 133, 48, 66, 1 },
+        { 174, 0, 15, 201, 29, 49, 0 },
+        { 161, 6, 80, 201, 66, 231, 1 }, },
+      { { 69, 118, 247, 32, 48, 38, 1 },
+        { 75, 97, 139, 23, 18, 29, 1 },
+        { 178, 6, 2, 119, 183, 81, 0 },
+        { 220, 36, 116, 104, 195, 105, 0 }, },
+      { { 70, 168, 40, 69, 154, 252, 0 },
+        { 165, 136, 226, 112, 57, 193, 1 },
+        { 31, 172, 209, 10, 10, 177, 0 },
+        { 193, 206, 7, 35, 136, 210, 1 }, },
+      { { 68, 160, 107, 94, 1, 10, 0 },
+        { 49, 0, 219, 1, 187, 2, 0 },
+        { 40, 64, 61, 107, 2, 145, 0 },
+        { 32, 110, 192, 109, 128, 70, 0 }, },
+      { { 69, 185, 78, 113, 53, 37, 0 },
+        { 57, 165, 83, 80, 94, 21, 1 },
+        { 82, 86, 71, 57, 78, 209, 0 },
+        { 212, 61, 5, 101, 82, 206, 0 }, },
+      { { 75, 113, 215, 160, 253, 197, 1 },
+        { 142, 127, 51, 151, 86, 149, 0 },
+        { 209, 223, 130, 245, 199, 105, 0 },
+        { 84, 181, 116, 230, 127, 56, 1 }, },
+      { { 79, 60, 121, 82, 108, 209, 1 },
+        { 255, 223, 195, 1, 208, 208, 0 },
+        { 197, 155, 37, 79, 30, 121, 0 },
+        { 5, 133, 192, 97, 253, 255, 1 }, },
+      { { 79, 178, 80, 33, 70, 98, 0 },
+        { 133, 115, 11, 96, 88, 24, 1 },
+        { 35, 49, 66, 5, 38, 249, 0 },
+        { 140, 13, 3, 104, 103, 80, 1 }, },
+      { { 79, 239, 177, 247, 108, 238, 1 },
+        { 223, 250, 202, 215, 253, 152, 1 },
+        { 187, 155, 119, 198, 251, 249, 0 },
+        { 140, 223, 245, 169, 175, 253, 1 }, },
+      { { 82, 75, 82, 250, 189, 204, 0 },
+        { 156, 232, 117, 148, 246, 139, 0 },
+        { 25, 222, 175, 165, 105, 37, 0 },
+        { 104, 183, 148, 215, 11, 156, 1 }, },
+      { { 83, 200, 244, 221, 123, 200, 1 },
+        { 158, 216, 213, 230, 57, 151, 0 },
+        { 137, 239, 93, 151, 137, 229, 0 },
+        { 116, 206, 51, 213, 141, 188, 1 }, },
+      { { 87, 5, 99, 141, 134, 48, 0 },
+        { 193, 0, 165, 225, 87, 82, 1 },
+        { 6, 48, 216, 227, 80, 117, 0 },
+        { 165, 117, 67, 210, 128, 65, 1 }, },
+      { { 85, 75, 225, 85, 227, 0, 0 },
+        { 25, 144, 245, 103, 21, 24, 0 },
+        { 0, 99, 213, 67, 233, 85, 0 },
+        { 12, 84, 115, 87, 132, 204, 0 }, },
+      { { 85, 138, 47, 175, 183, 98, 0 },
+        { 45, 160, 188, 225, 219, 31, 1 },
+        { 35, 118, 250, 250, 40, 213, 0 },
+        { 252, 109, 195, 158, 130, 218, 0 }, },
+      { { 84, 153, 49, 31, 160, 83, 0 },
+        { 29, 197, 172, 65, 157, 66, 0 },
+        { 101, 2, 252, 70, 76, 149, 0 },
+        { 33, 92, 193, 26, 209, 220, 0 }, },
+      { { 88, 13, 255, 122, 69, 176, 1 },
+        { 114, 250, 213, 3, 214, 70, 1 },
+        { 134, 209, 47, 127, 216, 13, 0 },
+        { 177, 53, 224, 85, 175, 167, 0 }, },
+      { { 90, 18, 17, 208, 247, 52, 1 },
+        { 154, 83, 116, 177, 80, 73, 1 },
+        { 150, 119, 133, 196, 36, 45, 0 },
+        { 201, 5, 70, 151, 101, 44, 1 }, },
+      { { 95, 17, 24, 22, 24, 164, 0 },
+        { 177, 75, 4, 16, 149, 145, 1 },
+        { 18, 140, 52, 12, 68, 125, 0 },
+        { 196, 212, 132, 16, 105, 70, 1 }, },
+      { { 93, 61, 87, 179, 227, 47, 0 },
+        { 89, 247, 63, 241, 182, 20, 1 },
+        { 122, 99, 230, 245, 94, 93, 0 },
+        { 148, 54, 199, 254, 119, 205, 0 }, },
+      { { 93, 74, 155, 244, 162, 166, 0 },
+        { 57, 234, 108, 183, 19, 24, 1 },
+        { 50, 162, 151, 236, 169, 93, 0 },
+        { 140, 100, 118, 155, 43, 206, 0 }, },
+      { { 94, 137, 78, 179, 16, 89, 0 },
+        { 181, 166, 5, 192, 190, 69, 0 },
+        { 77, 4, 102, 185, 72, 189, 0 },
+        { 81, 62, 129, 208, 50, 214, 1 }, },
+      { { 95, 182, 4, 116, 142, 30, 1 },
+        { 211, 35, 110, 48, 121, 220, 0 },
+        { 188, 56, 151, 16, 54, 253, 0 },
+        { 29, 207, 6, 59, 98, 101, 1 }, },
+      { { 95, 252, 162, 7, 10, 47, 1 },
+        { 195, 135, 142, 118, 187, 144, 1 },
+        { 250, 40, 112, 34, 159, 253, 0 },
+        { 132, 238, 183, 56, 240, 225, 1 }, },
+      { { 98, 20, 52, 163, 198, 43, 1 },
+        { 194, 117, 168, 232, 240, 4, 1 },
+        { 234, 49, 226, 150, 20, 35, 0 },
+        { 144, 7, 139, 138, 215, 33, 1 }, },
+      { { 96, 69, 249, 159, 75, 213, 0 },
+        { 116, 92, 145, 255, 149, 194, 0 },
+        { 85, 233, 124, 207, 209, 3, 0 },
+        { 33, 212, 255, 196, 157, 23, 0 }, },
+      { { 96, 94, 235, 202, 23, 75, 1 },
+        { 102, 133, 217, 175, 242, 11, 0 },
+        { 233, 116, 41, 235, 189, 3, 0 },
+        { 104, 39, 250, 205, 208, 179, 0 }, },
+      { { 97, 111, 101, 43, 244, 79, 0 },
+        { 76, 180, 171, 93, 244, 31, 0 },
+        { 121, 23, 234, 83, 123, 67, 0 },
+        { 124, 23, 221, 106, 150, 153, 0 }, },
+      { { 96, 111, 231, 237, 175, 53, 0 },
+        { 72, 164, 243, 255, 87, 206, 1 },
+        { 86, 122, 219, 243, 251, 3, 0 },
+        { 185, 245, 127, 231, 146, 137, 0 }, },
+      { { 98, 227, 54, 39, 167, 213, 0 },
+        { 140, 108, 178, 124, 223, 76, 0 },
+        { 85, 242, 242, 54, 99, 163, 0 },
+        { 25, 125, 159, 38, 155, 24, 1 }, },
+      { { 101, 50, 13, 146, 242, 6, 0 },
+        { 57, 17, 42, 185, 144, 29, 0 },
+        { 48, 39, 164, 216, 38, 83, 0 },
+        { 92, 4, 206, 170, 68, 78, 0 }, },
+      { { 101, 174, 116, 178, 81, 246, 0 },
+        { 85, 248, 155, 152, 152, 93, 1 },
+        { 55, 197, 38, 151, 58, 211, 0 },
+        { 221, 12, 140, 236, 143, 213, 0 }, },
+      { { 106, 37, 233, 73, 31, 2, 1 },
+        { 226, 2, 219, 107, 84, 131, 0 },
+        { 160, 124, 73, 75, 210, 43, 0 },
+        { 96, 149, 107, 109, 160, 35, 1 }, },
+      { { 105, 154, 22, 139, 171, 78, 0 },
+        { 12, 195, 56, 248, 186, 158, 0 },
+        { 57, 106, 232, 180, 44, 203, 0 },
+        { 60, 174, 143, 142, 97, 152, 0 }, },
+      { { 104, 159, 185, 186, 26, 80, 0 },
+        { 116, 227, 128, 171, 156, 203, 0 },
+        { 5, 44, 46, 206, 252, 139, 0 },
+        { 105, 156, 234, 128, 227, 151, 0 }, },
+      { { 104, 172, 27, 248, 226, 27, 1 },
+        { 122, 246, 106, 169, 58, 66, 0 },
+        { 236, 35, 143, 236, 26, 139, 0 },
+        { 33, 46, 74, 171, 55, 175, 0 }, },
+      { { 107, 204, 220, 27, 224, 85, 0 },
+        { 252, 214, 33, 94, 152, 86, 0 },
+        { 85, 3, 236, 29, 153, 235, 0 },
+        { 53, 12, 189, 66, 53, 159, 1 }, },
+      { { 110, 70, 68, 174, 42, 27, 1 },
+        { 203, 38, 9, 172, 177, 206, 0 },
+        { 236, 42, 58, 145, 49, 59, 0 },
+        { 57, 198, 154, 200, 50, 105, 1 }, },
+      { { 110, 91, 221, 156, 85, 145, 1 },
+        { 179, 223, 17, 143, 85, 79, 0 },
+        { 196, 213, 28, 221, 237, 59, 0 },
+        { 121, 85, 120, 196, 125, 230, 1 }, },
+      { { 110, 114, 103, 14, 62, 109, 0 },
+        { 141, 7, 131, 61, 243, 143, 1 },
+        { 91, 62, 56, 115, 39, 59, 0 },
+        { 248, 231, 222, 96, 240, 88, 1 }, },
+      { { 111, 134, 147, 35, 45, 171, 0 },
+        { 201, 110, 24, 75, 250, 152, 1 },
+        { 106, 218, 98, 100, 176, 251, 0 },
+        { 140, 175, 233, 12, 59, 73, 1 }, },
+      { { 108, 137, 244, 64, 218, 114, 1 },
+        { 7, 210, 233, 42, 28, 197, 1 },
+        { 167, 45, 129, 23, 200, 155, 0 },
+        { 209, 156, 42, 75, 165, 240, 0 }, },
+      { { 111, 156, 82, 187, 178, 211, 1 },
+        { 223, 239, 41, 232, 154, 83, 0 },
+        { 229, 166, 238, 165, 28, 251, 0 },
+        { 101, 44, 139, 202, 123, 253, 1 }, },
+      { { 111, 148, 127, 90, 90, 175, 1 },
+        { 243, 95, 201, 57, 186, 151, 1 },
+        { 250, 173, 45, 127, 20, 251, 0 },
+        { 244, 174, 206, 73, 253, 103, 1 }, },
+      { { 110, 168, 22, 55, 188, 108, 1 },
+        { 159, 226, 34, 88, 251, 133, 1 },
+        { 155, 30, 246, 52, 10, 187, 0 },
+        { 208, 239, 141, 34, 35, 252, 1 }, },
+      { { 110, 177, 138, 108, 23, 81, 0 },
+        { 165, 39, 82, 42, 95, 67, 0 },
+        { 69, 116, 27, 40, 198, 187, 0 },
+        { 97, 125, 42, 37, 114, 82, 1 }, },
+      { { 111, 200, 142, 200, 247, 162, 0 },
+        { 169, 154, 120, 174, 90, 23, 1 },
+        { 34, 247, 137, 184, 137, 251, 0 },
+        { 244, 45, 58, 143, 44, 202, 1 }, },
+      { { 115, 81, 80, 190, 35, 239, 0 },
+        { 156, 109, 29, 188, 181, 18, 1 },
+        { 123, 226, 62, 133, 69, 103, 0 },
+        { 164, 86, 158, 220, 91, 28, 1 }, },
+      { { 112, 139, 71, 240, 27, 189, 0 },
+        { 16, 172, 85, 185, 62, 205, 1 },
+        { 94, 236, 7, 241, 104, 135, 0 },
+        { 217, 190, 78, 213, 26, 132, 0 }, },
+      { { 112, 149, 37, 251, 26, 110, 1 },
+        { 86, 33, 204, 249, 188, 135, 1 },
+        { 187, 44, 111, 210, 84, 135, 0 },
+        { 240, 158, 207, 153, 194, 53, 0 }, },
+      { { 114, 158, 255, 114, 99, 90, 0 },
+        { 252, 241, 221, 43, 186, 76, 0 },
+        { 45, 99, 39, 127, 188, 167, 0 },
+        { 25, 46, 234, 93, 199, 159, 1 }, },
+      { { 112, 171, 227, 124, 150, 208, 1 },
+        { 22, 168, 231, 43, 95, 75, 0 },
+        { 133, 180, 159, 99, 234, 135, 0 },
+        { 105, 125, 106, 115, 138, 180, 0 }, },
+      { { 114, 245, 151, 82, 179, 142, 0 },
+        { 216, 73, 126, 63, 190, 5, 0 },
+        { 56, 230, 165, 116, 215, 167, 0 },
+        { 80, 62, 254, 63, 73, 13, 1 }, },
+      { { 118, 5, 164, 230, 226, 221, 0 },
+        { 205, 60, 228, 186, 181, 68, 0 },
+        { 93, 163, 179, 146, 208, 55, 0 },
+        { 17, 86, 174, 147, 158, 89, 1 }, },
+      { { 116, 17, 6, 76, 105, 165, 0 },
+        { 9, 29, 84, 24, 23, 134, 1 },
+        { 82, 203, 25, 48, 68, 23, 0 },
+        { 176, 244, 12, 21, 92, 72, 0 }, },
+      { { 118, 36, 17, 60, 244, 246, 1 },
+        { 223, 120, 46, 25, 81, 67, 1 },
+        { 183, 151, 158, 68, 18, 55, 0 },
+        { 225, 69, 76, 58, 15, 125, 1 }, },
+      { { 116, 101, 193, 88, 187, 101, 1 },
+        { 95, 4, 119, 63, 20, 131, 1 },
+        { 211, 110, 141, 65, 211, 23, 0 },
+        { 224, 148, 126, 119, 16, 125, 0 }, },
+      { { 119, 125, 91, 58, 188, 225, 0 },
+        { 253, 237, 39, 13, 214, 147, 1 },
+        { 67, 158, 174, 109, 95, 119, 0 },
+        { 228, 181, 216, 114, 91, 223, 1 }, },
+      { { 119, 182, 15, 188, 123, 59, 0 },
+        { 249, 53, 30, 169, 59, 223, 1 },
+        { 110, 111, 30, 248, 54, 247, 0 },
+        { 253, 238, 74, 188, 86, 79, 1 }, },
+      { { 118, 180, 133, 0, 61, 168, 1 },
+        { 203, 9, 22, 11, 120, 133, 1 },
+        { 138, 222, 0, 80, 150, 183, 0 },
+        { 208, 143, 104, 52, 72, 105, 1 }, },
+      { { 117, 238, 187, 75, 14, 98, 1 },
+        { 103, 192, 206, 111, 218, 154, 1 },
+        { 163, 56, 105, 110, 187, 215, 0 },
+        { 172, 173, 251, 57, 129, 243, 0 }, },
+      { { 118, 250, 208, 216, 178, 184, 0 },
+        { 153, 201, 103, 174, 56, 75, 1 },
+        { 14, 166, 141, 133, 175, 183, 0 },
+        { 233, 14, 58, 243, 73, 204, 1 }, },
+      { { 120, 75, 97, 130, 218, 8, 1 },
+        { 2, 146, 165, 173, 180, 137, 0 },
+        { 136, 45, 160, 195, 105, 15, 0 },
+        { 72, 150, 218, 210, 164, 160, 0 }, },
+      { { 122, 187, 251, 47, 52, 31, 1 },
+        { 170, 231, 143, 91, 255, 75, 0 },
+        { 252, 22, 122, 111, 238, 175, 0 },
+        { 105, 127, 237, 120, 243, 170, 1 }, },
+      { { 127, 39, 5, 215, 84, 100, 0 },
+        { 213, 18, 70, 217, 213, 29, 1 },
+        { 19, 21, 117, 208, 114, 127, 0 },
+        { 220, 85, 205, 177, 36, 85, 1 }, },
+      { { 125, 227, 180, 31, 248, 152, 0 },
+        { 25, 90, 166, 78, 189, 223, 0 },
+        { 12, 143, 252, 22, 227, 223, 0 },
+        { 125, 222, 185, 50, 173, 76, 0 }, },
+      { { 127, 237, 141, 135, 251, 207, 1 },
+        { 239, 158, 62, 255, 189, 149, 0 },
+        { 249, 239, 240, 216, 219, 255, 0 },
+        { 84, 222, 255, 190, 60, 251, 1 }, },
+      { { 126, 246, 82, 55, 17, 197, 0 },
+        { 213, 111, 23, 92, 155, 9, 0 },
+        { 81, 196, 118, 37, 55, 191, 0 },
+        { 72, 108, 157, 116, 123, 85, 1 }, },
+      { { 129, 31, 240, 203, 185, 104, 1 },
+        { 78, 193, 241, 194, 164, 187, 1 },
+        { 139, 78, 233, 135, 252, 64, 1 },
+        { 238, 146, 161, 199, 193, 185, 0 }, },
+      { { 128, 46, 234, 6, 149, 52, 0 },
+        { 96, 128, 179, 18, 195, 105, 1 },
+        { 22, 84, 176, 43, 186, 0, 1 },
+        { 203, 97, 164, 102, 128, 131, 0 }, },
+      { { 130, 73, 255, 59, 138, 203, 1 },
+        { 182, 236, 169, 103, 166, 166, 0 },
+        { 233, 168, 238, 127, 201, 32, 1 },
+        { 50, 178, 243, 74, 155, 182, 1 }, },
+      { { 129, 200, 212, 49, 219, 37, 0 },
+        { 16, 244, 49, 118, 8, 181, 1 },
+        { 82, 109, 198, 21, 137, 192, 1 },
+        { 214, 136, 55, 70, 23, 132, 0 }, },
+      { { 132, 43, 15, 88, 160, 122, 0 },
+        { 61, 128, 106, 1, 38, 110, 1 },
+        { 47, 2, 141, 120, 106, 16, 1 },
+        { 187, 50, 64, 43, 0, 222, 0 }, },
+      { { 133, 43, 127, 179, 216, 14, 0 },
+        { 49, 240, 171, 209, 166, 189, 0 },
+        { 56, 13, 230, 255, 106, 80, 1 },
+        { 94, 178, 197, 234, 135, 198, 0 }, },
+      { { 134, 32, 167, 236, 235, 192, 1 },
+        { 143, 56, 242, 163, 3, 166, 0 },
+        { 129, 235, 155, 242, 130, 48, 1 },
+        { 50, 224, 98, 167, 142, 120, 1 }, },
+      { { 134, 89, 195, 75, 94, 119, 1 },
+        { 135, 149, 73, 119, 198, 227, 1 },
+        { 247, 61, 105, 97, 205, 48, 1 },
+        { 227, 177, 247, 73, 84, 240, 1 }, },
+      { { 135, 96, 6, 117, 87, 9, 0 },
+        { 145, 52, 82, 100, 99, 53, 0 },
+        { 72, 117, 87, 48, 3, 112, 1 },
+        { 86, 99, 19, 37, 22, 68, 1 }, },
+      { { 132, 219, 148, 26, 247, 200, 0 },
+        { 29, 217, 48, 38, 236, 47, 0 },
+        { 9, 247, 172, 20, 237, 144, 1 },
+        { 122, 27, 178, 6, 77, 220, 0 }, },
+      { { 138, 22, 181, 10, 57, 125, 0 },
+        { 204, 71, 144, 19, 160, 239, 1 },
+        { 95, 78, 40, 86, 180, 40, 1 },
+        { 251, 130, 228, 4, 241, 25, 1 }, },
+      { { 138, 63, 78, 17, 183, 8, 0 },
+        { 248, 131, 51, 96, 102, 45, 0 },
+        { 8, 118, 196, 57, 126, 40, 1 },
+        { 90, 51, 3, 102, 96, 143, 1 }, },
+      { { 137, 70, 134, 138, 98, 190, 0 },
+        { 72, 26, 8, 182, 162, 126, 1 },
+        { 62, 163, 40, 176, 177, 72, 1 },
+        { 191, 34, 182, 136, 44, 9, 0 }, },
+      { { 139, 122, 129, 163, 127, 219, 0 },
+        { 140, 191, 26, 231, 224, 249, 0 },
+        { 109, 255, 98, 192, 175, 104, 1 },
+        { 79, 131, 243, 172, 126, 152, 1 }, },
+      { { 137, 134, 220, 73, 174, 214, 0 },
+        { 108, 74, 105, 114, 72, 254, 0 },
+        { 53, 186, 201, 29, 176, 200, 1 },
+        { 63, 137, 39, 75, 41, 27, 0 }, },
+      { { 137, 153, 52, 70, 112, 178, 1 },
+        { 10, 219, 200, 0, 141, 117, 1 },
+        { 166, 135, 49, 22, 76, 200, 1 },
+        { 215, 88, 128, 9, 237, 168, 0 }, },
+      { { 139, 205, 202, 224, 85, 9, 1 },
+        { 226, 182, 81, 134, 110, 49, 0 },
+        { 200, 85, 3, 169, 217, 232, 1 },
+        { 70, 59, 48, 197, 54, 163, 1 }, },
+      { { 139, 222, 241, 118, 82, 104, 1 },
+        { 214, 243, 193, 39, 169, 57, 1 },
+        { 139, 37, 55, 71, 189, 232, 1 },
+        { 206, 74, 242, 65, 231, 181, 1 }, },
+      { { 142, 18, 98, 26, 198, 81, 1 },
+        { 151, 23, 161, 32, 194, 106, 0 },
+        { 197, 49, 172, 35, 36, 56, 1 },
+        { 43, 33, 130, 66, 244, 116, 1 }, },
+      { { 141, 46, 148, 181, 204, 168, 0 },
+        { 81, 250, 34, 194, 97, 188, 1 },
+        { 10, 153, 214, 148, 186, 88, 1 },
+        { 158, 195, 33, 162, 47, 197, 0 }, },
+      { { 140, 75, 185, 11, 82, 34, 0 },
+        { 33, 210, 136, 103, 132, 43, 1 },
+        { 34, 37, 104, 78, 233, 24, 1 },
+        { 234, 16, 243, 8, 165, 194, 0 }, },
+      { { 141, 153, 201, 208, 216, 171, 1 },
+        { 51, 159, 105, 131, 44, 177, 1 },
+        { 234, 141, 133, 201, 204, 216, 1 },
+        { 198, 154, 96, 203, 124, 230, 0 }, },
+      { { 144, 17, 129, 73, 60, 185, 1 },
+        { 10, 13, 68, 67, 100, 227, 1 },
+        { 206, 158, 73, 64, 196, 4, 1 },
+        { 227, 147, 97, 17, 88, 40, 0 }, },
+      { { 146, 45, 168, 84, 94, 84, 1 },
+        { 246, 144, 198, 50, 69, 225, 0 },
+        { 149, 61, 21, 10, 218, 36, 1 },
+        { 67, 209, 38, 49, 132, 183, 1 }, },
+      { { 144, 78, 120, 161, 56, 250, 1 },
+        { 110, 232, 141, 196, 32, 233, 1 },
+        { 175, 142, 66, 143, 57, 4, 1 },
+        { 203, 130, 17, 216, 139, 187, 0 }, },
+      { { 144, 151, 90, 16, 127, 241, 0 },
+        { 124, 93, 21, 32, 78, 233, 1 },
+        { 71, 255, 4, 45, 116, 132, 1 },
+        { 203, 185, 2, 84, 93, 31, 0 }, },
+      { { 144, 179, 61, 187, 100, 42, 0 },
+        { 56, 113, 142, 193, 236, 46, 1 },
+        { 42, 19, 110, 222, 102, 132, 1 },
+        { 186, 27, 193, 184, 199, 14, 0 }, },
+      { { 147, 192, 227, 79, 19, 241, 0 },
+        { 132, 12, 213, 103, 139, 115, 1 },
+        { 71, 228, 121, 99, 129, 228, 1 },
+        { 231, 104, 243, 85, 152, 16, 1 }, },
+      { { 151, 73, 34, 81, 12, 38, 0 },
+        { 145, 128, 204, 84, 70, 176, 1 },
+        { 50, 24, 69, 34, 73, 116, 1 },
+        { 134, 177, 21, 25, 128, 196, 1 }, },
+      { { 151, 74, 87, 164, 6, 195, 0 },
+        { 133, 236, 13, 165, 67, 60, 0 },
+        { 97, 176, 18, 245, 41, 116, 1 },
+        { 30, 97, 82, 216, 27, 208, 1 }, },
+      { { 150, 115, 104, 38, 246, 150, 1 },
+        { 171, 57, 175, 52, 197, 105, 0 },
+        { 180, 183, 178, 11, 103, 52, 1 },
+        { 75, 81, 150, 122, 206, 106, 1 }, },
+      { { 149, 138, 223, 218, 96, 3, 1 },
+        { 59, 212, 77, 131, 138, 62, 0 },
+        { 224, 3, 45, 253, 168, 212, 1 },
+        { 62, 40, 224, 217, 21, 238, 0 }, },
+      { { 150, 175, 46, 35, 58, 45, 0 },
+        { 233, 164, 134, 112, 174, 173, 1 },
+        { 90, 46, 98, 58, 122, 180, 1 },
+        { 218, 186, 135, 48, 146, 203, 1 }, },
+      { { 155, 7, 68, 229, 222, 47, 0 },
+        { 192, 54, 109, 240, 101, 189, 1 },
+        { 122, 61, 211, 145, 112, 108, 1 },
+        { 222, 211, 7, 219, 54, 1, 1 }, },
+      { { 152, 75, 88, 148, 206, 180, 0 },
+        { 48, 218, 37, 180, 69, 232, 1 },
+        { 22, 185, 148, 141, 105, 12, 1 },
+        { 139, 209, 22, 210, 45, 134, 0 }, },
+      { { 153, 122, 202, 55, 11, 119, 1 },
+        { 54, 167, 31, 118, 131, 248, 1 },
+        { 247, 104, 118, 41, 175, 76, 1 },
+        { 143, 224, 183, 124, 114, 182, 0 }, },
+      { { 156, 0, 144, 208, 133, 65, 1 },
+        { 23, 70, 116, 130, 64, 32, 0 },
+        { 193, 80, 133, 132, 128, 28, 1 },
+        { 2, 1, 32, 151, 49, 116, 0 }, },
+      { { 157, 117, 4, 69, 227, 242, 1 },
+        { 79, 27, 126, 100, 5, 116, 1 },
+        { 167, 227, 209, 16, 87, 92, 1 },
+        { 151, 80, 19, 63, 108, 121, 0 }, },
+      { { 160, 66, 244, 31, 20, 137, 1 },
+        { 18, 76, 129, 78, 225, 47, 0 },
+        { 200, 148, 124, 23, 161, 2, 1 },
+        { 122, 67, 185, 64, 153, 36, 0 }, },
+      { { 160, 154, 32, 41, 137, 97, 0 },
+        { 4, 165, 176, 72, 8, 170, 1 },
+        { 67, 72, 202, 2, 44, 130, 1 },
+        { 170, 136, 9, 6, 210, 144, 0 }, },
+      { { 161, 151, 65, 181, 6, 20, 0 },
+        { 80, 33, 1, 249, 77, 120, 0 },
+        { 20, 48, 86, 193, 116, 194, 1 },
+        { 15, 89, 79, 192, 66, 5, 0 }, },
+      { { 162, 199, 179, 237, 218, 219, 0 },
+        { 196, 124, 232, 239, 47, 235, 0 },
+        { 109, 173, 219, 230, 241, 162, 1 },
+        { 107, 250, 123, 139, 159, 17, 1 }, },
+      { { 163, 237, 115, 3, 171, 156, 0 },
+        { 200, 200, 179, 125, 174, 240, 0 },
+        { 28, 234, 224, 103, 91, 226, 1 },
+        { 7, 186, 223, 102, 137, 137, 1 }, },
+      { { 164, 14, 153, 123, 197, 24, 0 },
+        { 113, 240, 112, 75, 224, 106, 0 },
+        { 12, 81, 239, 76, 184, 18, 1 },
+        { 43, 3, 233, 7, 7, 199, 0 }, },
+      { { 166, 46, 211, 181, 170, 239, 0 },
+        { 221, 236, 43, 251, 35, 168, 1 },
+        { 123, 170, 214, 229, 186, 50, 1 },
+        { 138, 226, 111, 234, 27, 221, 1 }, },
+      { { 166, 72, 83, 81, 97, 91, 1 },
+        { 159, 212, 89, 77, 34, 96, 0 },
+        { 237, 67, 69, 101, 9, 50, 1 },
+        { 3, 34, 89, 77, 21, 252, 1 }, },
+      { { 166, 88, 46, 241, 183, 120, 1 },
+        { 191, 161, 240, 236, 98, 101, 1 },
+        { 143, 118, 199, 186, 13, 50, 1 },
+        { 211, 35, 27, 135, 194, 254, 1 }, },
+      { { 167, 125, 62, 203, 3, 105, 0 },
+        { 229, 197, 210, 236, 166, 54, 1 },
+        { 75, 96, 105, 190, 95, 114, 1 },
+        { 182, 50, 155, 165, 209, 211, 1 }, },
+      { { 165, 183, 40, 12, 100, 157, 0 },
+        { 105, 29, 130, 24, 109, 122, 0 },
+        { 92, 147, 24, 10, 118, 210, 1 },
+        { 47, 91, 12, 32, 220, 75, 0 }, },
+      { { 164, 207, 91, 78, 212, 244, 0 },
+        { 101, 216, 97, 29, 207, 107, 1 },
+        { 23, 149, 185, 109, 121, 146, 1 },
+        { 235, 121, 220, 67, 13, 211, 0 }, },
+      { { 171, 21, 211, 205, 48, 133, 0 },
+        { 200, 79, 65, 219, 7, 51, 0 },
+        { 80, 134, 89, 229, 212, 106, 1 },
+        { 102, 112, 109, 193, 121, 9, 1 }, },
+      { { 171, 47, 103, 30, 208, 8, 1 },
+        { 210, 146, 163, 9, 167, 63, 0 },
+        { 136, 5, 188, 115, 122, 106, 1 },
+        { 126, 114, 200, 98, 164, 165, 1 }, },
+      { { 168, 43, 177, 100, 80, 17, 1 },
+        { 2, 246, 194, 11, 5, 105, 0 },
+        { 196, 5, 19, 70, 234, 10, 1 },
+        { 75, 80, 104, 33, 183, 160, 0 }, },
+      { { 168, 67, 58, 121, 199, 250, 1 },
+        { 54, 122, 248, 108, 102, 106, 1 },
+        { 175, 241, 207, 46, 97, 10, 1 },
+        { 171, 51, 27, 15, 175, 54, 0 }, },
+      { { 168, 95, 145, 245, 169, 81, 0 },
+        { 92, 231, 112, 207, 5, 232, 0 },
+        { 69, 74, 215, 196, 253, 10, 1 },
+        { 11, 208, 121, 135, 115, 157, 0 }, },
+      { { 168, 126, 123, 132, 128, 94, 1 },
+        { 102, 195, 171, 157, 35, 104, 0 },
+        { 189, 0, 144, 239, 63, 10, 1 },
+        { 11, 98, 92, 234, 225, 179, 0 }, },
+      { { 168, 132, 121, 195, 96, 56, 1 },
+        { 106, 82, 193, 201, 168, 96, 1 },
+        { 142, 3, 97, 207, 16, 138, 1 },
+        { 131, 10, 201, 193, 165, 43, 0 }, },
+      { { 171, 163, 68, 207, 130, 112, 0 },
+        { 132, 2, 99, 232, 141, 126, 1 },
+        { 7, 32, 249, 145, 98, 234, 1 },
+        { 191, 88, 139, 227, 32, 16, 1 }, },
+      { { 171, 230, 49, 247, 179, 118, 0 },
+        { 220, 98, 250, 253, 137, 121, 1 },
+        { 55, 102, 247, 198, 51, 234, 1 },
+        { 207, 72, 223, 175, 163, 29, 1 }, },
+      { { 172, 22, 16, 22, 73, 151, 0 },
+        { 81, 95, 24, 24, 129, 232, 0 },
+        { 116, 201, 52, 4, 52, 26, 1 },
+        { 11, 192, 140, 12, 125, 69, 0 }, },
+      { { 174, 39, 216, 18, 235, 36, 1 },
+        { 251, 82, 51, 58, 132, 168, 1 },
+        { 146, 107, 164, 13, 242, 58, 1 },
+        { 138, 144, 174, 102, 37, 111, 1 }, },
+      { { 175, 59, 230, 2, 186, 159, 1 },
+        { 139, 143, 171, 58, 166, 253, 0 },
+        { 252, 174, 160, 51, 238, 122, 1 },
+        { 95, 178, 174, 106, 248, 232, 1 }, },
+      { { 174, 70, 26, 234, 137, 71, 1 },
+        { 231, 102, 120, 156, 130, 170, 0 },
+        { 241, 72, 171, 172, 49, 58, 1 },
+        { 42, 160, 156, 143, 51, 115, 1 }, },
+      { { 173, 66, 113, 218, 119, 159, 1 },
+        { 27, 94, 217, 189, 224, 123, 0 },
+        { 252, 247, 45, 199, 33, 90, 1 },
+        { 111, 3, 222, 205, 189, 108, 0 }, },
+      { { 173, 88, 23, 206, 43, 193, 1 },
+        { 15, 207, 80, 173, 131, 182, 0 },
+        { 193, 234, 57, 244, 13, 90, 1 },
+        { 54, 224, 218, 133, 121, 248, 0 }, },
+      { { 172, 151, 210, 208, 179, 77, 0 },
+        { 93, 71, 113, 186, 46, 41, 0 },
+        { 89, 102, 133, 165, 244, 154, 1 },
+        { 74, 58, 46, 199, 113, 93, 0 }, },
+      { { 173, 190, 197, 66, 11, 202, 0 },
+        { 69, 139, 91, 43, 168, 188, 0 },
+        { 41, 232, 33, 81, 190, 218, 1 },
+        { 30, 138, 234, 109, 104, 209, 0 }, },
+      { { 175, 250, 80, 85, 120, 101, 0 },
+        { 157, 215, 67, 92, 9, 185, 1 },
+        { 83, 15, 85, 5, 47, 250, 1 },
+        { 206, 200, 29, 97, 117, 220, 1 }, },
+      { { 176, 31, 206, 26, 12, 146, 1 },
+        { 114, 137, 13, 10, 198, 238, 0 },
+        { 164, 152, 44, 57, 252, 6, 1 },
+        { 59, 177, 168, 88, 72, 167, 0 }, },
+      { { 177, 112, 134, 190, 143, 137, 0 },
+        { 16, 45, 54, 174, 227, 182, 0 },
+        { 72, 248, 190, 176, 135, 70, 1 },
+        { 54, 227, 186, 182, 90, 4, 0 }, },
+      { { 183, 222, 54, 61, 41, 2, 0 },
+        { 217, 225, 156, 76, 11, 190, 0 },
+        { 32, 74, 94, 54, 61, 246, 1 },
+        { 62, 232, 25, 28, 195, 205, 1 }, },
+      { { 180, 229, 14, 234, 89, 126, 0 },
+        { 101, 48, 94, 156, 174, 231, 1 },
+        { 63, 77, 43, 184, 83, 150, 1 },
+        { 243, 186, 156, 189, 6, 83, 0 }, },
+      { { 186, 59, 44, 235, 91, 138, 0 },
+        { 160, 187, 222, 232, 164, 175, 0 },
+        { 40, 237, 107, 154, 110, 46, 1 },
+        { 122, 146, 139, 189, 238, 130, 1 }, },
+      { { 187, 123, 82, 243, 209, 20, 0 },
+        { 144, 243, 119, 220, 134, 121, 0 },
+        { 20, 69, 231, 165, 111, 110, 1 },
+        { 79, 48, 157, 247, 103, 132, 1 }, },
+      { { 186, 116, 182, 71, 89, 86, 1 },
+        { 198, 83, 222, 94, 131, 229, 0 },
+        { 181, 77, 113, 54, 151, 46, 1 },
+        { 83, 224, 189, 61, 229, 49, 1 }, },
+      { { 186, 139, 73, 97, 25, 111, 1 },
+        { 166, 166, 93, 89, 44, 169, 1 },
+        { 251, 76, 67, 73, 104, 174, 1 },
+        { 202, 154, 77, 93, 50, 178, 1 }, },
+      { { 187, 152, 233, 200, 28, 89, 0 },
+        { 164, 135, 197, 139, 104, 243, 0 },
+        { 77, 28, 9, 203, 140, 238, 1 },
+        { 103, 139, 104, 209, 240, 146, 1 }, },
+      { { 188, 30, 177, 81, 156, 163, 1 },
+        { 83, 207, 236, 75, 64, 169, 1 },
+        { 226, 156, 197, 70, 188, 30, 1 },
+        { 202, 129, 105, 27, 249, 229, 0 }, },
+      { { 188, 42, 52, 17, 27, 68, 1 },
+        { 23, 194, 150, 120, 0, 173, 0 },
+        { 145, 108, 68, 22, 42, 30, 1 },
+        { 90, 128, 15, 52, 161, 244, 0 }, },
+      { { 189, 81, 101, 27, 30, 213, 0 },
+        { 21, 15, 133, 125, 196, 247, 0 },
+        { 85, 188, 108, 83, 69, 94, 1 },
+        { 119, 145, 223, 80, 248, 84, 0 }, },
+      { { 190, 112, 117, 173, 51, 180, 1 },
+        { 139, 107, 151, 253, 1, 103, 1 },
+        { 150, 230, 90, 215, 7, 62, 1 },
+        { 243, 64, 95, 244, 235, 104, 1 }, },
+      { { 189, 255, 164, 161, 70, 198, 1 },
+        { 71, 187, 142, 254, 76, 60, 0 },
+        { 177, 177, 66, 146, 255, 222, 1 },
+        { 30, 25, 63, 184, 238, 241, 0 }, },
+      { { 193, 4, 151, 159, 155, 192, 0 },
+        { 84, 72, 48, 227, 147, 183, 0 },
+        { 1, 236, 252, 244, 144, 65, 1 },
+        { 118, 228, 227, 134, 9, 21, 0 }, },
+      { { 193, 30, 33, 36, 254, 38, 1 },
+        { 74, 177, 168, 49, 81, 185, 1 },
+        { 178, 63, 146, 66, 60, 65, 1 },
+        { 206, 197, 70, 10, 198, 169, 0 }, },
+      { { 192, 237, 72, 64, 106, 165, 0 },
+        { 104, 156, 67, 52, 28, 160, 1 },
+        { 82, 171, 1, 9, 91, 129, 1 },
+        { 130, 156, 22, 97, 28, 139, 0 }, },
+      { { 192, 234, 184, 166, 4, 229, 0 },
+        { 36, 236, 130, 150, 217, 40, 1 },
+        { 83, 144, 50, 142, 171, 129, 1 },
+        { 138, 77, 180, 160, 155, 146, 0 }, },
+      { { 198, 87, 250, 41, 77, 82, 1 },
+        { 231, 113, 153, 70, 86, 234, 0 },
+        { 165, 89, 74, 47, 245, 49, 1 },
+        { 43, 181, 49, 76, 199, 115, 1 }, },
+      { { 200, 111, 63, 193, 206, 104, 0 },
+        { 100, 210, 226, 229, 118, 172, 1 },
+        { 11, 57, 193, 254, 123, 9, 1 },
+        { 154, 183, 83, 163, 165, 147, 0 }, },
+      { { 200, 99, 86, 204, 12, 4, 1 },
+        { 2, 66, 67, 148, 87, 174, 0 },
+        { 144, 24, 25, 181, 99, 9, 1 },
+        { 58, 245, 20, 225, 33, 32, 0 }, },
+      { { 201, 215, 21, 97, 151, 171, 1 },
+        { 66, 111, 120, 101, 124, 61, 1 },
+        { 234, 244, 195, 84, 117, 201, 1 },
+        { 222, 31, 83, 15, 123, 33, 0 }, },
+      { { 203, 227, 118, 18, 26, 242, 1 },
+        { 150, 74, 139, 36, 158, 253, 1 },
+        { 167, 172, 36, 55, 99, 233, 1 },
+        { 223, 188, 146, 104, 169, 52, 1 }, },
+      { { 204, 23, 188, 202, 55, 164, 1 },
+        { 107, 75, 208, 178, 212, 47, 1 },
+        { 146, 246, 41, 158, 244, 25, 1 },
+        { 250, 21, 166, 133, 233, 107, 0 }, },
+      { { 204, 223, 166, 39, 145, 190, 0 },
+        { 65, 171, 184, 86, 191, 109, 1 },
+        { 62, 196, 242, 50, 253, 153, 1 },
+        { 219, 126, 181, 14, 234, 193, 0 }, },
+      { { 204, 235, 235, 67, 36, 93, 0 },
+        { 45, 134, 195, 87, 254, 104, 0 },
+        { 93, 18, 97, 107, 235, 153, 1 },
+        { 11, 63, 245, 97, 176, 218, 0 }, },
+      { { 209, 53, 155, 82, 5, 119, 0 },
+        { 116, 69, 94, 19, 214, 112, 1 },
+        { 119, 80, 37, 108, 214, 69, 1 },
+        { 135, 53, 228, 61, 81, 23, 0 }, },
+      { { 209, 91, 212, 112, 60, 106, 0 },
+        { 28, 225, 77, 6, 116, 189, 1 },
+        { 43, 30, 7, 21, 237, 69, 1 },
+        { 222, 151, 48, 89, 67, 156, 0 }, },
+      { { 215, 26, 117, 66, 163, 79, 1 },
+        { 143, 197, 253, 49, 176, 60, 0 },
+        { 249, 98, 161, 87, 44, 117, 1 },
+        { 30, 6, 198, 95, 209, 248, 1 }, },
+      { { 215, 230, 123, 63, 234, 215, 1 },
+        { 255, 124, 175, 117, 155, 250, 0 },
+        { 245, 171, 254, 111, 51, 245, 1 },
+        { 47, 236, 215, 122, 159, 127, 1 }, },
+      { { 219, 2, 186, 238, 81, 189, 1 },
+        { 162, 126, 212, 146, 179, 123, 1 },
+        { 222, 197, 59, 174, 160, 109, 1 },
+        { 239, 102, 164, 149, 191, 34, 1 }, },
+      { { 216, 126, 223, 70, 165, 187, 1 },
+        { 106, 207, 127, 7, 243, 108, 1 },
+        { 238, 210, 177, 125, 191, 13, 1 },
+        { 155, 103, 240, 127, 121, 171, 0 }, },
+      { { 216, 131, 133, 71, 132, 38, 1 },
+        { 2, 2, 108, 83, 221, 44, 1 },
+        { 178, 16, 241, 80, 224, 141, 1 },
+        { 154, 93, 229, 27, 32, 32, 0 }, },
+      { { 218, 189, 22, 192, 207, 231, 0 },
+        { 196, 223, 126, 176, 94, 164, 1 },
+        { 115, 249, 129, 180, 94, 173, 1 },
+        { 146, 189, 6, 191, 125, 145, 1 }, },
+      { { 219, 226, 77, 128, 236, 124, 1 },
+        { 174, 18, 39, 149, 120, 252, 1 },
+        { 159, 27, 128, 217, 35, 237, 1 },
+        { 159, 143, 84, 242, 36, 58, 1 }, },
+      { { 217, 244, 154, 237, 44, 69, 0 },
+        { 108, 103, 70, 214, 91, 178, 0 },
+        { 81, 26, 91, 172, 151, 205, 1 },
+        { 38, 237, 53, 177, 115, 27, 0 }, },
+      { { 222, 24, 187, 178, 78, 206, 1 },
+        { 183, 251, 140, 179, 242, 160, 0 },
+        { 185, 185, 38, 238, 140, 61, 1 },
+        { 2, 167, 230, 152, 239, 246, 1 }, },
+      { { 221, 25, 226, 31, 178, 162, 1 },
+        { 27, 139, 173, 98, 151, 51, 1 },
+        { 162, 166, 252, 35, 204, 93, 1 },
+        { 230, 116, 163, 90, 232, 236, 0 }, },
+      { { 222, 44, 65, 181, 149, 43, 0 },
+        { 209, 166, 63, 193, 113, 33, 1 },
+        { 106, 84, 214, 193, 26, 61, 1 },
+        { 194, 71, 65, 254, 50, 197, 1 }, },
+      { { 220, 75, 143, 150, 13, 97, 0 },
+        { 53, 134, 20, 135, 215, 172, 1 },
+        { 67, 88, 52, 248, 233, 29, 1 },
+        { 154, 245, 240, 148, 48, 214, 0 }, },
+      { { 221, 148, 173, 142, 18, 115, 1 },
+        { 103, 7, 140, 163, 153, 119, 1 },
+        { 231, 36, 56, 218, 148, 221, 1 },
+        { 247, 76, 226, 152, 240, 115, 0 }, },
+      { { 221, 209, 152, 178, 105, 248, 1 },
+        { 63, 123, 20, 134, 188, 240, 1 },
+        { 143, 203, 38, 140, 197, 221, 1 },
+        { 135, 158, 176, 148, 111, 126, 0 }, },
+      { { 225, 16, 129, 210, 125, 199, 0 },
+        { 28, 29, 88, 155, 208, 177, 0 },
+        { 113, 223, 37, 192, 132, 67, 1 },
+        { 70, 133, 236, 141, 92, 28, 0 }, },
+      { { 226, 29, 244, 60, 230, 69, 1 },
+        { 222, 245, 161, 58, 85, 38, 0 },
+        { 209, 51, 158, 23, 220, 35, 1 },
+        { 50, 85, 46, 66, 215, 189, 1 }, },
+      { { 227, 42, 142, 26, 117, 17, 0 },
+        { 184, 148, 18, 10, 210, 127, 0 },
+        { 68, 87, 44, 56, 170, 99, 1 },
+        { 127, 37, 168, 36, 20, 142, 1 }, },
+      { { 230, 127, 34, 189, 228, 63, 1 },
+        { 219, 181, 170, 220, 119, 106, 1 },
+        { 254, 19, 222, 162, 127, 51, 1 },
+        { 171, 119, 29, 170, 214, 237, 1 }, },
+      { { 230, 201, 244, 50, 47, 175, 1 },
+        { 155, 236, 153, 62, 252, 164, 1 },
+        { 250, 250, 38, 23, 201, 179, 1 },
+        { 146, 159, 190, 76, 155, 236, 1 }, },
+      { { 233, 65, 95, 6, 96, 115, 0 },
+        { 44, 86, 9, 13, 151, 116, 1 },
+        { 103, 3, 48, 125, 65, 75, 1 },
+        { 151, 116, 216, 72, 53, 26, 0 }, },
+      { { 232, 162, 221, 84, 147, 113, 0 },
+        { 52, 70, 115, 43, 25, 109, 1 },
+        { 71, 100, 149, 93, 162, 139, 1 },
+        { 219, 76, 106, 103, 49, 22, 0 }, },
+      { { 232, 216, 146, 243, 185, 171, 1 },
+        { 26, 239, 120, 206, 186, 161, 1 },
+        { 234, 206, 231, 164, 141, 139, 1 },
+        { 194, 174, 185, 143, 123, 172, 0 }, },
+      { { 234, 224, 242, 13, 25, 46, 0 },
+        { 128, 66, 155, 94, 59, 163, 1 },
+        { 58, 76, 88, 39, 131, 171, 1 },
+        { 226, 238, 61, 108, 161, 0, 1 }, },
+      { { 237, 183, 135, 120, 221, 244, 0 },
+        { 85, 59, 114, 27, 94, 255, 1 },
+        { 23, 221, 143, 112, 246, 219, 1 },
+        { 255, 189, 108, 39, 110, 85, 0 }, },
+      { { 237, 243, 41, 3, 202, 39, 1 },
+        { 35, 23, 170, 125, 156, 184, 1 },
+        { 242, 41, 224, 74, 103, 219, 1 },
+        { 142, 156, 223, 42, 244, 98, 0 }, },
+      { { 242, 9, 23, 170, 178, 81, 0 },
+        { 140, 228, 36, 169, 150, 103, 0 },
+        { 69, 38, 170, 244, 72, 39, 1 },
+        { 115, 52, 202, 146, 19, 152, 1 }, },
+      { { 242, 87, 191, 49, 98, 230, 1 },
+        { 254, 121, 140, 127, 22, 44, 1 },
+        { 179, 163, 70, 126, 245, 39, 1 },
+        { 154, 52, 127, 24, 207, 63, 1 }, },
+      { { 240, 161, 59, 114, 216, 194, 0 },
+        { 52, 120, 238, 9, 158, 161, 0 },
+        { 33, 141, 167, 110, 66, 135, 1 },
+        { 66, 188, 200, 59, 143, 22, 0 }, },
+      { { 242, 204, 10, 145, 3, 251, 0 },
+        { 244, 140, 28, 236, 58, 96, 1 },
+        { 111, 224, 68, 168, 25, 167, 1 },
+        { 131, 46, 27, 156, 24, 151, 1 }, },
+      { { 240, 197, 80, 127, 169, 160, 1 },
+        { 90, 104, 117, 76, 157, 162, 1 },
+        { 130, 202, 255, 5, 81, 135, 1 },
+        { 162, 220, 153, 87, 11, 45, 0 }, },
+      { { 241, 197, 159, 71, 93, 153, 1 },
+        { 98, 92, 84, 79, 255, 245, 0 },
+        { 204, 221, 113, 124, 209, 199, 1 },
+        { 87, 255, 249, 21, 29, 35, 0 }, },
+      { { 240, 244, 101, 147, 182, 176, 1 },
+        { 90, 9, 167, 237, 216, 101, 1 },
+        { 134, 182, 228, 211, 23, 135, 1 },
+        { 211, 13, 219, 242, 200, 45, 0 }, },
+      { { 244, 0, 37, 19, 37, 72, 0 },
+        { 29, 0, 148, 73, 240, 36, 0 },
+        { 9, 82, 100, 82, 0, 23, 1 },
+        { 18, 7, 201, 20, 128, 92, 0 }, },
+      { { 244, 111, 108, 190, 223, 216, 1 },
+        { 119, 184, 183, 172, 245, 239, 0 },
+        { 141, 253, 190, 155, 123, 23, 1 },
+        { 123, 215, 154, 246, 142, 247, 0 }, },
+      { { 247, 104, 114, 223, 78, 225, 0 },
+        { 149, 220, 199, 236, 211, 178, 1 },
+        { 67, 185, 125, 167, 11, 119, 1 },
+        { 166, 229, 155, 241, 157, 212, 1 }, },
+      { { 251, 140, 211, 46, 207, 23, 0 },
+        { 192, 246, 61, 59, 219, 242, 0 },
+        { 116, 121, 186, 101, 152, 239, 1 },
+        { 39, 237, 238, 94, 55, 129, 1 }, },
+      { { 249, 145, 73, 232, 47, 176, 0 },
+        { 40, 43, 85, 169, 92, 242, 1 },
+        { 6, 250, 11, 201, 68, 207, 1 },
+        { 167, 157, 74, 213, 106, 10, 0 }, },
+      { { 251, 204, 144, 194, 16, 228, 0 },
+        { 196, 202, 68, 158, 152, 49, 1 },
+        { 19, 132, 33, 132, 153, 239, 1 },
+        { 198, 12, 188, 145, 41, 145, 1 }, },
+      { { 248, 252, 106, 92, 170, 113, 1 },
+        { 126, 135, 231, 44, 27, 226, 1 },
+        { 199, 42, 157, 43, 31, 143, 1 },
+        { 163, 236, 26, 115, 240, 191, 0 }, },
+      { { 254, 15, 171, 22, 40, 191, 1 },
+        { 251, 142, 140, 27, 183, 232, 1 },
+        { 254, 138, 52, 106, 248, 63, 1 },
+        { 139, 246, 236, 24, 184, 239, 1 }, },
+      { { 252, 66, 14, 134, 208, 220, 0 },
+        { 37, 26, 36, 156, 179, 109, 0 },
+        { 29, 133, 176, 184, 33, 31, 1 },
+        { 91, 102, 156, 146, 44, 82, 0 }, },
+      { { 252, 124, 113, 120, 44, 31, 0 },
+        { 89, 231, 207, 29, 112, 226, 0 },
+        { 124, 26, 15, 71, 31, 31, 1 },
+        { 35, 135, 92, 121, 243, 205, 0 }, },
+      { { 255, 159, 183, 150, 227, 134, 1 },
+        { 219, 219, 188, 187, 159, 60, 0 },
+        { 176, 227, 180, 246, 252, 255, 1 },
+        { 30, 124, 238, 158, 237, 237, 1 }, },
+      { { 112, 127, 0, 71, 111, 110, 0 },
+        { 76, 145, 94, 124, 245, 136, 1 },
+        { 59, 123, 113, 0, 127, 7, 0 },
+        { 136, 215, 159, 61, 68, 153, 0 }, },
+      { { 131, 238, 196, 68, 55, 228, 0 },
+        { 204, 136, 83, 54, 73, 61, 1 },
+        { 19, 246, 17, 17, 187, 224, 1 },
+        { 222, 73, 54, 101, 8, 153, 1 }, },
+      { { 1, 32, 180, 5, 180, 95, 1 },
+        { 14, 68, 170, 82, 97, 85, 0 },
+        { 253, 22, 208, 22, 130, 64, 0 },
+        { 85, 67, 37, 42, 145, 56, 0 }, },
+      { { 0, 59, 124, 20, 69, 167, 0 },
+        { 48, 221, 155, 16, 69, 12, 1 },
+        { 114, 209, 20, 31, 110, 0, 0 },
+        { 152, 81, 4, 108, 221, 134, 0 }, },
+      { { 3, 79, 186, 190, 163, 12, 0 },
+        { 248, 224, 176, 182, 167, 26, 0 },
+        { 24, 98, 190, 174, 249, 96, 0 },
+        { 44, 114, 182, 134, 131, 143, 1 }, },
+      { { 1, 86, 37, 1, 21, 142, 0 },
+        { 64, 9, 152, 85, 96, 29, 0 },
+        { 56, 212, 64, 82, 53, 64, 0 },
+        { 92, 3, 85, 12, 200, 1, 0 }, },
+      { { 1, 143, 230, 168, 33, 42, 0 },
+        { 72, 160, 153, 130, 46, 30, 1 },
+        { 42, 66, 10, 179, 248, 192, 0 },
+        { 188, 58, 32, 204, 130, 137, 0 }, },
+      { { 0, 175, 103, 1, 210, 134, 0 },
+        { 64, 152, 171, 113, 14, 13, 0 },
+        { 48, 165, 192, 115, 122, 128, 0 },
+        { 88, 56, 71, 106, 140, 129, 0 }, },
+      { { 0, 217, 16, 247, 55, 249, 0 },
+        { 28, 237, 80, 228, 237, 65, 1 },
+        { 79, 246, 119, 132, 77, 128, 0 },
+        { 193, 91, 147, 133, 91, 156, 0 }, },
+      { { 3, 240, 9, 255, 186, 56, 0 },
+        { 184, 33, 98, 229, 169, 211, 1 },
+        { 14, 46, 255, 200, 7, 224, 0 },
+        { 229, 202, 211, 163, 66, 14, 1 }, },
+      { { 5, 92, 205, 107, 57, 177, 1 },
+        { 107, 173, 81, 71, 128, 215, 1 },
+        { 198, 206, 107, 89, 157, 80, 0 },
+        { 245, 128, 241, 69, 90, 235, 0 }, },
+      { { 6, 109, 146, 36, 128, 158, 1 },
+        { 195, 232, 42, 22, 39, 64, 0 },
+        { 188, 128, 146, 36, 219, 48, 0 },
+        { 1, 114, 52, 42, 11, 225, 1 }, },
+      { { 4, 166, 38, 247, 185, 66, 1 },
+        { 95, 32, 250, 192, 139, 141, 0 },
+        { 161, 78, 247, 178, 50, 144, 0 },
+        { 88, 232, 129, 175, 130, 125, 0 }, },
+      { { 4, 196, 160, 187, 5, 176, 0 },
+        { 81, 40, 144, 198, 200, 66, 1 },
+        { 6, 208, 110, 130, 145, 144, 0 },
+        { 161, 9, 177, 132, 138, 69, 0 }, },
+      { { 9, 4, 240, 102, 157, 166, 0 },
+        { 64, 106, 249, 18, 193, 145, 1 },
+        { 50, 220, 179, 7, 144, 72, 0 },
+        { 196, 193, 164, 79, 171, 1, 0 }, },
+      { { 8, 63, 162, 23, 251, 204, 1 },
+        { 94, 155, 178, 114, 167, 137, 0 },
+        { 153, 239, 244, 34, 254, 8, 0 },
+        { 72, 242, 167, 38, 236, 189, 0 }, },
+      { { 10, 107, 164, 59, 63, 71, 1 },
+        { 158, 166, 154, 118, 196, 143, 0 },
+        { 241, 126, 110, 18, 235, 40, 0 },
+        { 120, 145, 183, 44, 178, 188, 1 }, },
+      { { 9, 147, 68, 160, 208, 252, 0 },
+        { 4, 59, 33, 144, 44, 93, 1 },
+        { 31, 133, 130, 145, 100, 200, 0 },
+        { 221, 26, 4, 194, 110, 16, 0 }, },
+      { { 8, 210, 94, 4, 114, 98, 1 },
+        { 46, 83, 9, 36, 11, 13, 1 },
+        { 163, 39, 16, 61, 37, 136, 0 },
+        { 216, 104, 18, 72, 101, 58, 0 }, },
+      { { 14, 39, 43, 135, 201, 75, 1 },
+        { 231, 22, 186, 193, 167, 136, 0 },
+        { 233, 73, 240, 234, 114, 56, 0 },
+        { 8, 242, 193, 174, 180, 115, 1 }, },
+      { { 15, 42, 254, 150, 218, 227, 0 },
+        { 181, 222, 171, 162, 131, 157, 1 },
+        { 99, 173, 180, 191, 170, 120, 0 },
+        { 220, 224, 162, 234, 189, 214, 1 }, },
+      { { 13, 94, 114, 56, 152, 3, 0 },
+        { 81, 231, 169, 4, 2, 155, 0 },
+        { 96, 12, 142, 39, 61, 88, 0 },
+        { 108, 160, 16, 74, 243, 197, 0 }, },
+      { { 14, 87, 112, 167, 99, 99, 1 },
+        { 207, 119, 153, 228, 133, 8, 1 },
+        { 227, 99, 114, 135, 117, 56, 0 },
+        { 136, 80, 147, 204, 247, 121, 1 }, },
+      { { 13, 106, 169, 220, 27, 63, 0 },
+        { 49, 134, 218, 183, 33, 219, 1 },
+        { 126, 108, 29, 202, 171, 88, 0 },
+        { 237, 194, 118, 173, 176, 198, 0 }, },
+      { { 13, 118, 154, 128, 113, 208, 1 },
+        { 111, 91, 18, 134, 2, 89, 0 },
+        { 133, 199, 0, 172, 183, 88, 0 },
+        { 77, 32, 48, 164, 109, 123, 0 }, },
+      { { 14, 124, 197, 35, 226, 204, 1 },
+        { 207, 187, 35, 119, 160, 4, 0 },
+        { 153, 163, 226, 81, 159, 56, 0 },
+        { 16, 2, 247, 98, 110, 249, 1 }, },
+      { { 15, 139, 106, 20, 246, 21, 0 },
+        { 185, 150, 161, 48, 79, 89, 0 },
+        { 84, 55, 148, 43, 104, 248, 0 },
+        { 77, 121, 6, 66, 180, 206, 1 }, },
+      { { 13, 171, 134, 215, 206, 17, 1 },
+        { 19, 150, 98, 226, 207, 220, 0 },
+        { 196, 57, 245, 176, 234, 216, 0 },
+        { 29, 249, 163, 163, 52, 228, 0 }, },
+      { { 15, 203, 199, 97, 60, 150, 1 },
+        { 139, 170, 73, 87, 78, 221, 0 },
+        { 180, 158, 67, 113, 233, 248, 0 },
+        { 93, 185, 117, 73, 42, 232, 1 }, },
+      { { 14, 236, 63, 51, 174, 17, 1 },
+        { 251, 230, 162, 101, 202, 196, 0 },
+        { 196, 58, 230, 126, 27, 184, 0 },
+        { 17, 169, 211, 34, 179, 239, 1 }, },
+      { { 17, 15, 152, 165, 71, 82, 0 },
+        { 100, 240, 28, 226, 69, 88, 0 },
+        { 37, 113, 82, 140, 248, 68, 0 },
+        { 13, 81, 35, 156, 7, 147, 0 }, },
+      { { 17, 119, 210, 131, 226, 153, 0 },
+        { 72, 93, 39, 230, 166, 88, 0 },
+        { 76, 163, 224, 165, 247, 68, 0 },
+        { 13, 50, 179, 242, 93, 9, 0 }, },
+      { { 17, 151, 181, 190, 81, 161, 0 },
+        { 80, 125, 148, 131, 141, 31, 1 },
+        { 66, 197, 62, 214, 244, 196, 0 },
+        { 252, 88, 224, 148, 223, 5, 0 }, },
+      { { 18, 155, 152, 58, 105, 111, 1 },
+        { 190, 245, 28, 18, 172, 138, 1 },
+        { 251, 75, 46, 12, 236, 164, 0 },
+        { 168, 154, 164, 28, 87, 190, 1 }, },
+      { { 19, 233, 65, 189, 245, 218, 0 },
+        { 156, 184, 63, 197, 109, 83, 0 },
+        { 45, 215, 222, 193, 75, 228, 0 },
+        { 101, 91, 81, 254, 14, 156, 1 }, },
+      { { 22, 13, 83, 212, 169, 87, 0 },
+        { 221, 196, 125, 145, 7, 192, 0 },
+        { 117, 74, 149, 229, 88, 52, 0 },
+        { 1, 240, 68, 223, 17, 221, 1 }, },
+      { { 22, 61, 21, 111, 231, 73, 0 },
+        { 205, 245, 118, 97, 229, 6, 0 },
+        { 73, 115, 251, 84, 94, 52, 0 },
+        { 48, 83, 195, 55, 87, 217, 1 }, },
+      { { 20, 130, 100, 0, 95, 151, 1 },
+        { 3, 28, 157, 48, 72, 205, 0 },
+        { 244, 253, 0, 19, 32, 148, 0 },
+        { 89, 137, 6, 92, 156, 96, 0 }, },
+      { { 21, 130, 161, 143, 42, 56, 1 },
+        { 11, 0, 132, 227, 169, 218, 1 },
+        { 142, 42, 120, 194, 160, 212, 0 },
+        { 173, 202, 227, 144, 128, 104, 0 }, },
+      { { 21, 153, 34, 53, 74, 250, 0 },
+        { 21, 185, 140, 96, 47, 208, 1 },
+        { 47, 169, 86, 34, 76, 212, 0 },
+        { 133, 250, 3, 24, 206, 212, 0 }, },
+      { { 23, 156, 89, 25, 214, 46, 0 },
+        { 241, 209, 45, 113, 104, 19, 1 },
+        { 58, 53, 204, 77, 28, 244, 0 },
+        { 228, 11, 71, 90, 69, 199, 1 }, },
+      { { 21, 165, 87, 175, 25, 244, 1 },
+        { 71, 104, 23, 209, 143, 215, 1 },
+        { 151, 204, 122, 245, 82, 212, 0 },
+        { 245, 248, 197, 244, 11, 113, 0 }, },
+      { { 22, 185, 129, 147, 151, 243, 0 },
+        { 149, 141, 62, 227, 204, 65, 1 },
+        { 103, 244, 228, 192, 206, 180, 0 },
+        { 193, 25, 227, 190, 88, 212, 1 }, },
+      { { 20, 212, 174, 31, 83, 198, 0 },
+        { 117, 25, 156, 118, 139, 7, 0 },
+        { 49, 229, 124, 58, 149, 148, 0 },
+        { 112, 104, 183, 28, 204, 87, 0 }, },
+      { { 22, 222, 188, 166, 177, 46, 1 },
+        { 235, 225, 188, 150, 169, 13, 1 },
+        { 186, 70, 178, 158, 189, 180, 0 },
+        { 216, 74, 180, 158, 195, 235, 1 }, },
+      { { 21, 215, 231, 50, 136, 117, 0 },
+        { 85, 37, 165, 23, 142, 220, 1 },
+        { 87, 8, 166, 115, 245, 212, 0 },
+        { 157, 184, 244, 82, 210, 85, 0 }, },
+      { { 27, 5, 137, 184, 14, 199, 1 },
+        { 246, 46, 12, 179, 68, 146, 0 },
+        { 241, 184, 14, 200, 208, 108, 0 },
+        { 36, 145, 102, 152, 58, 55, 1 }, },
+      { { 24, 76, 13, 17, 16, 216, 1 },
+        { 118, 138, 4, 69, 32, 69, 0 },
+        { 141, 132, 68, 88, 25, 12, 0 },
+        { 81, 2, 81, 16, 40, 183, 0 }, },
+      { { 27, 80, 19, 3, 222, 147, 1 },
+        { 130, 95, 44, 101, 194, 209, 0 },
+        { 228, 189, 224, 100, 5, 108, 0 },
+        { 69, 161, 211, 26, 125, 32, 1 }, },
+      { { 26, 117, 67, 117, 230, 58, 0 },
+        { 216, 51, 111, 101, 103, 64, 1 },
+        { 46, 51, 215, 97, 87, 44, 0 },
+        { 129, 115, 83, 123, 102, 13, 1 }, },
+      { { 25, 139, 44, 109, 101, 206, 0 },
+        { 44, 186, 220, 80, 109, 30, 0 },
+        { 57, 211, 91, 26, 104, 204, 0 },
+        { 60, 91, 5, 29, 174, 154, 0 }, },
+      { { 24, 157, 237, 154, 191, 3, 0 },
+        { 120, 135, 189, 163, 204, 135, 0 },
+        { 96, 126, 172, 219, 220, 140, 0 },
+        { 112, 153, 226, 222, 240, 143, 0 }, },
+      { { 26, 163, 189, 21, 22, 74, 1 },
+        { 182, 66, 142, 99, 109, 13, 0 },
+        { 169, 52, 84, 94, 226, 172, 0 },
+        { 88, 91, 99, 56, 161, 54, 1 }, },
+      { { 24, 191, 221, 217, 136, 80, 1 },
+        { 118, 195, 103, 195, 12, 206, 0 },
+        { 133, 8, 205, 221, 254, 140, 0 },
+        { 57, 152, 97, 243, 97, 183, 0 }, },
+      { { 26, 187, 197, 128, 248, 166, 1 },
+        { 138, 155, 47, 147, 12, 141, 1 },
+        { 178, 143, 128, 209, 238, 172, 0 },
+        { 216, 152, 100, 250, 108, 168, 1 }, },
+      { { 24, 202, 200, 115, 174, 12, 1 },
+        { 58, 162, 101, 118, 232, 136, 0 },
+        { 152, 58, 231, 9, 169, 140, 0 },
+        { 8, 139, 183, 83, 34, 174, 0 }, },
+      { { 26, 251, 85, 224, 195, 153, 1 },
+        { 130, 255, 119, 165, 44, 76, 0 },
+        { 204, 225, 131, 213, 111, 172, 0 },
+        { 25, 26, 82, 247, 127, 160, 1 }, },
+      { { 25, 252, 172, 250, 123, 235, 0 },
+        { 124, 191, 222, 166, 168, 151, 1 },
+        { 107, 239, 47, 154, 159, 204, 0 },
+        { 244, 138, 178, 189, 254, 159, 0 }, },
+      { { 31, 33, 77, 51, 43, 129, 0 },
+        { 185, 46, 23, 97, 132, 148, 0 },
+        { 64, 234, 102, 89, 66, 124, 0 },
+        { 20, 144, 195, 116, 58, 78, 1 }, },
+      { { 29, 104, 97, 97, 80, 45, 1 },
+        { 3, 182, 199, 85, 32, 17, 1 },
+        { 218, 5, 67, 67, 11, 92, 0 },
+        { 196, 2, 85, 113, 182, 224, 0 }, },
+      { { 29, 113, 17, 105, 159, 205, 1 },
+        { 7, 111, 118, 117, 100, 147, 0 },
+        { 217, 252, 203, 68, 71, 92, 0 },
+        { 100, 147, 87, 55, 123, 112, 0 }, },
+      { { 28, 115, 52, 93, 58, 61, 1 },
+        { 27, 71, 198, 116, 37, 207, 1 },
+        { 222, 46, 93, 22, 103, 28, 0 },
+        { 249, 210, 23, 49, 241, 108, 0 }, },
+      { { 30, 167, 7, 22, 61, 22, 1 },
+        { 219, 2, 30, 17, 207, 205, 0 },
+        { 180, 94, 52, 112, 114, 188, 0 },
+        { 89, 249, 196, 60, 32, 109, 1 }, },
+      { { 32, 22, 241, 69, 239, 16, 1 },
+        { 74, 81, 241, 107, 65, 200, 0 },
+        { 132, 123, 209, 71, 180, 2, 0 },
+        { 9, 193, 107, 71, 197, 41, 0 }, },
+      { { 33, 37, 79, 144, 49, 77, 0 },
+        { 124, 4, 19, 153, 38, 21, 0 },
+        { 89, 70, 4, 249, 82, 66, 0 },
+        { 84, 50, 76, 228, 16, 31, 0 }, },
+      { { 35, 45, 115, 235, 220, 62, 1 },
+        { 194, 240, 235, 217, 230, 211, 1 },
+        { 190, 29, 235, 231, 90, 98, 0 },
+        { 229, 179, 205, 235, 135, 161, 1 }, },
+      { { 35, 72, 62, 43, 100, 184, 1 },
+        { 170, 248, 128, 76, 226, 86, 1 },
+        { 142, 147, 106, 62, 9, 98, 0 },
+        { 181, 35, 153, 0, 143, 170, 1 }, },
+      { { 35, 86, 58, 73, 248, 94, 1 },
+        { 238, 81, 232, 92, 34, 219, 0 },
+        { 189, 15, 201, 46, 53, 98, 0 },
+        { 109, 162, 29, 11, 197, 59, 1 }, },
+      { { 34, 138, 184, 17, 107, 194, 0 },
+        { 188, 216, 152, 106, 8, 136, 0 },
+        { 33, 235, 68, 14, 168, 162, 0 },
+        { 8, 136, 43, 12, 141, 158, 1 }, },
+      { { 32, 167, 72, 150, 66, 82, 1 },
+        { 118, 16, 11, 168, 141, 72, 0 },
+        { 165, 33, 52, 137, 114, 130, 0 },
+        { 9, 88, 138, 232, 4, 55, 0 }, },
+      { { 34, 164, 248, 245, 231, 39, 1 },
+        { 250, 116, 251, 250, 73, 0, 1 },
+        { 242, 115, 215, 143, 146, 162, 0 },
+        { 128, 73, 47, 239, 151, 47, 1 }, },
+      { { 33, 239, 227, 53, 220, 27, 1 },
+        { 82, 180, 171, 79, 111, 217, 0 },
+        { 236, 29, 214, 99, 251, 194, 0 },
+        { 77, 251, 121, 106, 150, 165, 0 }, },
+      { { 33, 255, 170, 148, 240, 254, 0 },
+        { 124, 153, 170, 158, 47, 89, 1 },
+        { 63, 135, 148, 170, 255, 194, 0 },
+        { 205, 122, 60, 170, 204, 159, 0 }, },
+      { { 37, 48, 68, 183, 73, 106, 0 },
+        { 21, 49, 27, 200, 161, 148, 1 },
+        { 43, 73, 118, 145, 6, 82, 0 },
+        { 148, 194, 137, 236, 70, 84, 0 }, },
+      { { 38, 55, 142, 202, 57, 200, 0 },
+        { 237, 9, 82, 138, 166, 143, 0 },
+        { 9, 206, 41, 184, 246, 50, 0 },
+        { 120, 178, 168, 165, 72, 91, 1 }, },
+      { { 39, 67, 65, 27, 226, 165, 0 },
+        { 153, 28, 33, 125, 132, 26, 1 },
+        { 82, 163, 236, 65, 97, 114, 0 },
+        { 172, 16, 223, 66, 28, 76, 1 }, },
+      { { 39, 119, 180, 37, 12, 229, 0 },
+        { 197, 109, 130, 94, 69, 156, 1 },
+        { 83, 152, 82, 22, 247, 114, 0 },
+        { 156, 209, 61, 32, 219, 81, 1 }, },
+      { { 36, 140, 97, 44, 211, 5, 0 },
+        { 65, 180, 177, 57, 9, 3, 0 },
+        { 80, 101, 154, 67, 24, 146, 0 },
+        { 96, 72, 78, 70, 150, 193, 0 }, },
+      { { 39, 181, 134, 58, 242, 110, 1 },
+        { 223, 49, 42, 58, 174, 23, 1 },
+        { 187, 39, 174, 48, 214, 242, 0 },
+        { 244, 58, 174, 42, 70, 125, 1 }, },
+      { { 37, 192, 47, 169, 170, 233, 1 },
+        { 47, 44, 160, 237, 42, 150, 1 },
+        { 203, 170, 202, 250, 1, 210, 0 },
+        { 180, 170, 91, 130, 154, 122, 0 }, },
+      { { 37, 193, 244, 243, 24, 172, 1 },
+        { 19, 104, 193, 222, 172, 149, 1 },
+        { 154, 140, 103, 151, 193, 210, 0 },
+        { 212, 154, 189, 193, 139, 100, 0 }, },
+      { { 38, 223, 180, 89, 168, 216, 1 },
+        { 223, 201, 224, 78, 44, 206, 0 },
+        { 141, 138, 205, 22, 253, 178, 0 },
+        { 57, 154, 57, 3, 201, 253, 1 }, },
+      { { 36, 229, 181, 254, 134, 140, 0 },
+        { 81, 104, 226, 191, 237, 6, 0 },
+        { 24, 176, 191, 214, 211, 146, 0 },
+        { 48, 91, 254, 163, 139, 69, 0 }, },
+      { { 36, 250, 147, 106, 49, 84, 1 },
+        { 15, 225, 82, 31, 138, 75, 0 },
+        { 149, 70, 43, 100, 175, 146, 0 },
+        { 105, 40, 252, 37, 67, 248, 0 }, },
+      { { 41, 33, 120, 64, 98, 223, 1 },
+        { 46, 94, 203, 56, 36, 80, 0 },
+        { 253, 163, 1, 15, 66, 74, 0 },
+        { 5, 18, 14, 105, 189, 58, 0 }, },
+      { { 42, 47, 218, 50, 70, 201, 1 },
+        { 246, 254, 3, 42, 230, 8, 0 },
+        { 201, 177, 38, 45, 250, 42, 0 },
+        { 8, 51, 170, 96, 63, 183, 1 }, },
+      { { 40, 62, 63, 42, 103, 4, 0 },
+        { 104, 243, 146, 57, 194, 14, 0 },
+        { 16, 115, 42, 126, 62, 10, 0 },
+        { 56, 33, 206, 36, 231, 139, 0 }, },
+      { { 43, 205, 185, 118, 1, 186, 0 },
+        { 240, 234, 216, 15, 173, 80, 1 },
+        { 46, 192, 55, 78, 217, 234, 0 },
+        { 133, 90, 248, 13, 171, 135, 1 }, },
+      { { 40, 234, 218, 205, 222, 126, 1 },
+        { 38, 210, 107, 254, 107, 203, 1 },
+        { 191, 61, 217, 173, 171, 138, 0 },
+        { 233, 235, 63, 235, 37, 178, 0 }, },
+      { { 44, 77, 140, 242, 231, 58, 1 },
+        { 123, 178, 120, 174, 228, 68, 1 },
+        { 174, 115, 167, 152, 217, 26, 0 },
+        { 145, 19, 186, 143, 38, 239, 0 }, },
+      { { 46, 88, 0, 228, 62, 206, 0 },
+        { 141, 171, 72, 188, 97, 129, 0 },
+        { 57, 190, 19, 128, 13, 58, 0 },
+        { 64, 195, 30, 137, 106, 216, 1 }, },
+      { { 45, 129, 187, 116, 79, 227, 1 },
+        { 55, 126, 216, 43, 79, 144, 1 },
+        { 227, 249, 23, 110, 192, 218, 0 },
+        { 132, 249, 106, 13, 191, 118, 0 }, },
+      { { 44, 145, 67, 129, 237, 29, 0 },
+        { 9, 23, 49, 217, 110, 192, 0 },
+        { 92, 91, 192, 225, 68, 154, 0 },
+        { 1, 187, 77, 198, 116, 72, 0 }, },
+      { { 45, 180, 8, 215, 116, 177, 1 },
+        { 123, 31, 66, 200, 201, 81, 1 },
+        { 198, 151, 117, 136, 22, 218, 0 },
+        { 197, 73, 137, 161, 124, 111, 0 }, },
+      { { 44, 224, 23, 61, 89, 3, 1 },
+        { 19, 118, 26, 77, 11, 135, 0 },
+        { 224, 77, 94, 116, 3, 154, 0 },
+        { 112, 232, 89, 44, 55, 100, 0 }, },
+      { { 48, 9, 23, 86, 236, 208, 1 },
+        { 30, 216, 100, 9, 199, 196, 0 },
+        { 133, 155, 181, 116, 72, 6, 0 },
+        { 17, 241, 200, 19, 13, 188, 0 }, },
+      { { 51, 70, 13, 15, 126, 150, 0 },
+        { 232, 24, 12, 125, 193, 223, 0 },
+        { 52, 191, 120, 88, 49, 102, 0 },
+        { 125, 193, 223, 24, 12, 11, 1 }, },
+      { { 50, 113, 60, 116, 164, 89, 0 },
+        { 188, 101, 230, 12, 101, 68, 0 },
+        { 77, 18, 151, 30, 71, 38, 0 },
+        { 17, 83, 24, 51, 211, 30, 1 }, },
+      { { 48, 167, 239, 179, 52, 231, 1 },
+        { 126, 44, 143, 219, 206, 13, 1 },
+        { 243, 150, 102, 251, 242, 134, 0 },
+        { 216, 57, 237, 248, 154, 63, 0 }, },
+      { { 48, 183, 244, 73, 95, 202, 0 },
+        { 68, 89, 223, 106, 108, 143, 0 },
+        { 41, 253, 73, 23, 246, 134, 0 },
+        { 120, 155, 43, 125, 205, 17, 0 }, },
+      { { 51, 236, 16, 56, 154, 82, 0 },
+        { 212, 224, 46, 44, 8, 211, 0 },
+        { 37, 44, 142, 4, 27, 230, 0 },
+        { 101, 136, 26, 58, 3, 149, 1 }, },
+      { { 53, 106, 133, 153, 65, 91, 0 },
+        { 21, 148, 30, 207, 32, 94, 0 },
+        { 109, 65, 76, 208, 171, 86, 0 },
+        { 61, 2, 121, 188, 20, 212, 0 }, },
+      { { 54, 125, 199, 249, 16, 137, 1 },
+        { 211, 173, 71, 207, 38, 7, 0 },
+        { 200, 132, 79, 241, 223, 54, 0 },
+        { 112, 50, 121, 241, 90, 229, 1 }, },
+      { { 53, 145, 236, 15, 52, 5, 1 },
+        { 43, 5, 133, 90, 205, 23, 0 },
+        { 208, 22, 120, 27, 196, 214, 0 },
+        { 116, 89, 173, 80, 208, 106, 0 }, },
+      { { 58, 31, 122, 71, 185, 141, 0 },
+        { 232, 207, 245, 88, 167, 137, 0 },
+        { 88, 206, 241, 47, 124, 46, 0 },
+        { 72, 242, 141, 87, 249, 139, 1 }, },
+      { { 58, 86, 77, 209, 166, 203, 1 },
+        { 254, 15, 109, 237, 96, 12, 0 },
+        { 233, 178, 197, 217, 53, 46, 0 },
+        { 24, 3, 91, 219, 120, 63, 1 }, },
+      { { 57, 105, 99, 159, 57, 176, 1 },
+        { 26, 138, 151, 205, 135, 211, 1 },
+        { 134, 206, 124, 227, 75, 78, 0 },
+        { 229, 240, 217, 244, 168, 172, 0 }, },
+      { { 59, 96, 103, 17, 227, 243, 0 },
+        { 156, 30, 191, 109, 2, 84, 1 },
+        { 103, 227, 196, 115, 3, 110, 0 },
+        { 149, 32, 91, 126, 188, 28, 1 }, },
+      { { 57, 204, 214, 65, 214, 205, 1 },
+        { 70, 222, 101, 126, 106, 21, 0 },
+        { 217, 181, 193, 53, 153, 206, 0 },
+        { 84, 43, 63, 83, 61, 177, 0 }, },
+      { { 60, 51, 21, 240, 128, 231, 0 },
+        { 21, 111, 110, 153, 4, 12, 1 },
+        { 115, 128, 135, 212, 102, 30, 0 },
+        { 152, 16, 76, 187, 123, 84, 0 }, },
+      { { 60, 51, 197, 75, 3, 115, 1 },
+        { 7, 7, 95, 107, 132, 78, 1 },
+        { 231, 96, 105, 81, 230, 30, 0 },
+        { 185, 16, 235, 125, 112, 112, 0 }, },
+      { { 61, 98, 186, 75, 99, 200, 0 },
+        { 45, 90, 214, 110, 162, 26, 0 },
+        { 9, 227, 105, 46, 163, 94, 0 },
+        { 44, 34, 187, 53, 173, 90, 0 }, },
+      { { 61, 117, 9, 162, 109, 95, 1 },
+        { 111, 55, 30, 157, 228, 208, 0 },
+        { 253, 91, 34, 200, 87, 94, 0 },
+        { 5, 147, 220, 188, 118, 123, 0 }, },
+      { { 63, 152, 179, 12, 62, 51, 1 },
+        { 139, 199, 140, 43, 75, 211, 1 },
+        { 230, 62, 24, 102, 140, 254, 0 },
+        { 229, 233, 106, 24, 241, 232, 1 }, },
+      { { 62, 205, 175, 189, 212, 43, 0 },
+        { 241, 182, 172, 207, 111, 7, 1 },
+        { 106, 21, 222, 250, 217, 190, 0 },
+        { 240, 123, 121, 154, 182, 199, 1 }, },
+      { { 63, 213, 180, 83, 119, 231, 1 },
+        { 223, 95, 220, 126, 204, 21, 1 },
+        { 243, 247, 101, 22, 213, 254, 0 },
+        { 212, 25, 191, 29, 253, 125, 1 }, },
+      { { 60, 233, 181, 48, 105, 180, 0 },
+        { 25, 250, 150, 31, 12, 196, 1 },
+        { 22, 203, 6, 86, 203, 158, 0 },
+        { 145, 152, 124, 52, 175, 204, 0 }, },
+      { { 64, 3, 93, 254, 66, 40, 1 },
+        { 50, 112, 65, 161, 181, 14, 1 },
+        { 138, 33, 63, 221, 96, 1, 0 },
+        { 184, 86, 194, 193, 7, 38, 0 }, },
+      { { 67, 106, 171, 8, 205, 110, 1 },
+        { 166, 144, 186, 23, 114, 154, 1 },
+        { 187, 89, 136, 106, 171, 97, 0 },
+        { 172, 167, 116, 46, 132, 178, 1 }, },
+      { { 67, 113, 229, 169, 206, 30, 1 },
+        { 130, 49, 171, 247, 116, 214, 0 },
+        { 188, 57, 202, 211, 199, 97, 0 },
+        { 53, 151, 119, 234, 198, 32, 1 }, },
+      { { 65, 168, 233, 191, 52, 145, 0 },
+        { 56, 172, 131, 195, 217, 83, 0 },
+        { 68, 150, 126, 203, 138, 193, 0 },
+        { 101, 77, 225, 224, 154, 142, 0 }, },
+      { { 65, 202, 197, 166, 227, 19, 0 },
+        { 8, 180, 57, 167, 153, 92, 0 },
+        { 100, 99, 178, 209, 169, 193, 0 },
+        { 29, 76, 242, 206, 22, 136, 0 }, },
+      { { 66, 247, 60, 189, 2, 52, 0 },
+        { 240, 97, 130, 244, 29, 78, 1 },
+        { 22, 32, 94, 158, 119, 161, 0 },
+        { 185, 92, 23, 160, 195, 7, 1 }, },
+      { { 68, 39, 29, 179, 182, 219, 1 },
+        { 127, 108, 42, 225, 244, 77, 0 },
+        { 237, 182, 230, 220, 114, 17, 0 },
+        { 89, 23, 195, 170, 27, 127, 0 }, },
+      { { 68, 76, 27, 64, 24, 97, 1 },
+        { 103, 196, 64, 5, 18, 129, 1 },
+        { 195, 12, 1, 108, 25, 17, 0 },
+        { 192, 164, 80, 1, 17, 243, 0 }, },
+      { { 70, 74, 152, 175, 201, 220, 0 },
+        { 165, 248, 48, 214, 177, 202, 0 },
+        { 29, 201, 250, 140, 169, 49, 0 },
+        { 41, 198, 181, 134, 15, 210, 1 }, },
+      { { 70, 131, 6, 249, 199, 224, 1 },
+        { 151, 56, 112, 224, 94, 14, 1 },
+        { 131, 241, 207, 176, 96, 177, 0 },
+        { 184, 61, 3, 135, 14, 116, 1 }, },
+      { { 68, 140, 202, 221, 114, 250, 1 },
+        { 127, 152, 73, 226, 59, 67, 1 },
+        { 175, 167, 93, 169, 152, 145, 0 },
+        { 225, 110, 35, 201, 12, 255, 0 }, },
+      { { 70, 158, 58, 59, 116, 65, 1 },
+        { 255, 245, 128, 64, 218, 11, 0 },
+        { 193, 23, 110, 46, 60, 177, 0 },
+        { 104, 45, 129, 0, 215, 255, 1 }, },
+      { { 73, 31, 143, 197, 190, 227, 0 },
+        { 108, 143, 104, 227, 87, 157, 1 },
+        { 99, 190, 209, 248, 252, 73, 0 },
+        { 220, 245, 99, 139, 120, 155, 0 }, },
+      { { 73, 75, 34, 203, 253, 35, 1 },
+        { 10, 150, 248, 196, 214, 155, 1 },
+        { 226, 95, 233, 162, 105, 73, 0 },
+        { 236, 181, 145, 143, 180, 168, 0 }, },
+      { { 73, 91, 8, 111, 19, 202, 1 },
+        { 38, 171, 88, 100, 181, 27, 0 },
+        { 169, 228, 123, 8, 109, 73, 0 },
+        { 108, 86, 147, 13, 106, 178, 0 }, },
+      { { 74, 177, 68, 70, 10, 33, 1 },
+        { 130, 7, 67, 32, 157, 132, 1 },
+        { 194, 40, 49, 17, 70, 169, 0 },
+        { 144, 220, 130, 97, 112, 32, 1 }, },
+      { { 75, 195, 24, 213, 28, 201, 0 },
+        { 180, 78, 64, 196, 125, 153, 0 },
+        { 73, 156, 85, 140, 97, 233, 0 },
+        { 76, 223, 17, 129, 57, 22, 1 }, },
+      { { 76, 116, 244, 77, 39, 23, 1 },
+        { 75, 71, 219, 118, 81, 70, 0 },
+        { 244, 114, 89, 23, 151, 25, 0 },
+        { 49, 69, 55, 109, 241, 105, 0 }, },
+      { { 78, 157, 120, 2, 250, 136, 1 },
+        { 235, 219, 161, 32, 188, 129, 0 },
+        { 136, 175, 160, 15, 92, 185, 0 },
+        { 64, 158, 130, 66, 237, 235, 1 }, },
+      { { 79, 168, 131, 36, 88, 72, 0 },
+        { 133, 178, 2, 3, 59, 145, 0 },
+        { 9, 13, 18, 96, 138, 249, 0 },
+        { 68, 238, 96, 32, 38, 208, 1 }, },
+      { { 77, 204, 62, 66, 47, 44, 0 },
+        { 105, 194, 208, 52, 250, 148, 1 },
+        { 26, 122, 33, 62, 25, 217, 0 },
+        { 148, 175, 150, 5, 161, 203, 0 }, },
+      { { 77, 205, 182, 47, 105, 192, 1 },
+        { 79, 250, 144, 70, 159, 150, 0 },
+        { 129, 203, 122, 54, 217, 217, 0 },
+        { 52, 252, 177, 4, 175, 249, 0 }, },
+      { { 76, 252, 81, 246, 35, 2, 0 },
+        { 89, 227, 91, 165, 153, 0, 0 },
+        { 32, 98, 55, 197, 31, 153, 0 },
+        { 0, 76, 210, 237, 99, 205, 0 }, },
+      { { 77, 248, 189, 181, 78, 179, 0 },
+        { 49, 255, 138, 231, 89, 212, 1 },
+        { 102, 185, 86, 222, 143, 217, 0 },
+        { 149, 205, 115, 168, 255, 198, 0 }, },
+      { { 78, 254, 206, 197, 81, 2, 1 },
+        { 227, 147, 91, 198, 27, 13, 0 },
+        { 160, 69, 81, 185, 191, 185, 0 },
+        { 88, 108, 49, 237, 100, 227, 1 }, },
+      { { 83, 45, 244, 148, 190, 11, 1 },
+        { 218, 196, 175, 162, 117, 149, 0 },
+        { 232, 62, 148, 151, 218, 101, 0 },
+        { 84, 215, 34, 250, 145, 173, 1 }, },
+      { { 83, 55, 48, 177, 237, 76, 1 },
+        { 222, 113, 182, 208, 116, 152, 0 },
+        { 153, 91, 198, 134, 118, 101, 0 },
+        { 12, 151, 5, 182, 199, 61, 1 }, },
+      { { 81, 138, 115, 76, 78, 26, 0 },
+        { 0, 208, 205, 33, 123, 218, 0 },
+        { 44, 57, 25, 103, 40, 197, 0 },
+        { 45, 239, 66, 89, 133, 128, 0 }, },
+      { { 81, 173, 41, 83, 250, 51, 0 },
+        { 120, 148, 238, 97, 156, 209, 1 },
+        { 102, 47, 229, 74, 90, 197, 0 },
+        { 197, 156, 195, 59, 148, 143, 0 }, },
+      { { 80, 244, 139, 181, 87, 23, 1 },
+        { 114, 53, 30, 247, 91, 65, 0 },
+        { 244, 117, 86, 232, 151, 133, 0 },
+        { 65, 109, 119, 188, 86, 39, 0 }, },
+      { { 83, 242, 216, 169, 125, 63, 0 },
+        { 168, 117, 31, 214, 120, 219, 1 },
+        { 126, 95, 74, 141, 167, 229, 0 },
+        { 237, 143, 53, 252, 87, 10, 1 }, },
+      { { 87, 46, 51, 92, 65, 229, 1 },
+        { 215, 220, 214, 17, 19, 26, 1 },
+        { 211, 193, 29, 102, 58, 117, 0 },
+        { 172, 100, 68, 53, 157, 245, 1 }, },
+      { { 85, 97, 138, 153, 243, 43, 1 },
+        { 59, 20, 62, 230, 54, 19, 1 },
+        { 234, 103, 204, 168, 195, 85, 0 },
+        { 228, 54, 51, 190, 20, 110, 0 }, },
+      { { 84, 114, 176, 221, 66, 144, 1 },
+        { 19, 89, 198, 230, 17, 74, 0 },
+        { 132, 161, 93, 134, 167, 21, 0 },
+        { 41, 68, 51, 177, 205, 100, 0 }, },
+      { { 87, 120, 188, 172, 178, 210, 1 },
+        { 175, 233, 174, 166, 17, 87, 0 },
+        { 165, 166, 154, 158, 143, 117, 0 },
+        { 117, 68, 50, 186, 203, 250, 1 }, },
+      { { 85, 178, 111, 85, 255, 238, 1 },
+        { 63, 25, 255, 113, 123, 157, 1 },
+        { 187, 255, 213, 123, 38, 213, 0 },
+        { 220, 239, 71, 127, 204, 126, 0 }, },
+      { { 87, 215, 193, 128, 15, 12, 1 },
+        { 195, 1, 21, 183, 124, 152, 0 },
+        { 152, 120, 0, 193, 245, 245, 0 },
+        { 12, 159, 118, 212, 64, 97, 1 }, },
+      { { 85, 243, 37, 159, 247, 53, 0 },
+        { 25, 21, 182, 245, 221, 95, 1 },
+        { 86, 119, 252, 210, 103, 213, 0 },
+        { 253, 93, 215, 182, 212, 76, 0 }, },
+      { { 90, 0, 169, 237, 210, 158, 0 },
+        { 160, 58, 236, 243, 49, 67, 0 },
+        { 60, 165, 219, 202, 128, 45, 0 },
+        { 97, 70, 103, 155, 174, 2, 1 }, },
+      { { 89, 39, 61, 104, 89, 78, 1 },
+        { 102, 114, 222, 17, 52, 159, 0 },
+        { 185, 77, 11, 94, 114, 77, 0 },
+        { 124, 150, 68, 61, 167, 51, 0 }, },
+      { { 89, 73, 179, 211, 30, 79, 0 },
+        { 20, 198, 204, 247, 246, 145, 0 },
+        { 121, 60, 101, 230, 201, 77, 0 },
+        { 68, 183, 247, 153, 177, 148, 0 }, },
+      { { 91, 92, 30, 37, 185, 241, 1 },
+        { 238, 239, 52, 68, 19, 213, 1 },
+        { 199, 206, 210, 60, 29, 109, 0 },
+        { 213, 228, 17, 22, 123, 187, 1 }, },
+      { { 89, 81, 133, 145, 139, 249, 0 },
+        { 20, 15, 52, 231, 52, 212, 1 },
+        { 79, 232, 196, 208, 197, 77, 0 },
+        { 149, 150, 115, 150, 120, 20, 0 }, },
+      { { 91, 156, 92, 115, 202, 248, 1 },
+        { 246, 251, 101, 96, 184, 212, 1 },
+        { 143, 169, 231, 29, 28, 237, 0 },
+        { 149, 142, 131, 83, 111, 183, 1 }, },
+      { { 90, 148, 209, 233, 34, 152, 1 },
+        { 202, 107, 69, 227, 56, 66, 0 },
+        { 140, 162, 75, 197, 148, 173, 0 },
+        { 33, 14, 99, 209, 107, 41, 1 }, },
+      { { 88, 170, 155, 107, 27, 52, 0 },
+        { 32, 226, 86, 115, 154, 203, 1 },
+        { 22, 108, 107, 108, 170, 141, 0 },
+        { 233, 172, 231, 53, 35, 130, 0 }, },
+      { { 90, 202, 163, 22, 250, 87, 1 },
+        { 158, 150, 172, 55, 155, 201, 0 },
+        { 245, 47, 180, 98, 169, 173, 0 },
+        { 73, 236, 246, 26, 180, 188, 1 }, },
+      { { 88, 216, 190, 3, 241, 57, 0 },
+        { 40, 215, 180, 70, 186, 69, 1 },
+        { 78, 71, 224, 62, 141, 141, 0 },
+        { 209, 46, 177, 22, 245, 138, 0 }, },
+      { { 90, 253, 27, 96, 216, 252, 0 },
+        { 228, 251, 102, 21, 62, 193, 1 },
+        { 31, 141, 131, 108, 95, 173, 0 },
+        { 193, 190, 84, 51, 111, 147, 1 }, },
+      { { 93, 40, 12, 244, 83, 170, 1 },
+        { 51, 186, 94, 160, 49, 21, 1 },
+        { 170, 229, 23, 152, 10, 93, 0 },
+        { 212, 70, 2, 189, 46, 230, 0 }, },
+      { { 94, 52, 215, 24, 145, 91, 0 },
+        { 213, 71, 63, 3, 50, 71, 0 },
+        { 109, 68, 140, 117, 150, 61, 0 },
+        { 113, 38, 96, 126, 113, 85, 1 }, },
+      { { 94, 140, 231, 129, 51, 103, 0 },
+        { 205, 134, 157, 243, 26, 5, 1 },
+        { 115, 102, 64, 243, 152, 189, 0 },
+        { 208, 44, 103, 220, 176, 217, 1 }, },
+      { { 92, 240, 52, 170, 32, 5, 0 },
+        { 9, 103, 134, 148, 152, 6, 0 },
+        { 80, 2, 42, 150, 7, 157, 0 },
+        { 48, 12, 148, 176, 243, 72, 0 }, },
+      { { 99, 47, 8, 198, 1, 227, 0 },
+        { 228, 140, 90, 136, 149, 24, 1 },
+        { 99, 192, 49, 136, 122, 99, 0 },
+        { 140, 84, 136, 173, 24, 147, 1 }, },
+      { { 97, 34, 240, 131, 154, 222, 0 },
+        { 4, 72, 171, 250, 176, 217, 0 },
+        { 61, 172, 224, 135, 162, 67, 0 },
+        { 77, 134, 175, 234, 137, 16, 0 }, },
+      { { 97, 64, 6, 28, 66, 91, 1 },
+        { 22, 20, 8, 44, 51, 86, 0 },
+        { 237, 33, 28, 48, 1, 67, 0 },
+        { 53, 102, 26, 8, 20, 52, 0 }, },
+      { { 99, 104, 252, 248, 31, 16, 0 },
+        { 176, 224, 211, 174, 80, 215, 0 },
+        { 4, 124, 15, 159, 139, 99, 0 },
+        { 117, 133, 58, 229, 131, 134, 1 }, },
+      { { 98, 163, 80, 160, 5, 206, 1 },
+        { 134, 104, 27, 152, 124, 8, 0 },
+        { 185, 208, 2, 133, 98, 163, 0 },
+        { 8, 31, 12, 236, 11, 48, 1 }, },
+      { { 96, 207, 8, 137, 207, 134, 1 },
+        { 98, 152, 56, 252, 92, 138, 0 },
+        { 176, 249, 200, 136, 121, 131, 0 },
+        { 40, 157, 31, 142, 12, 163, 0 }, },
+      { { 100, 31, 102, 147, 38, 250, 0 },
+        { 93, 137, 137, 232, 246, 76, 1 },
+        { 47, 178, 100, 179, 124, 19, 0 },
+        { 153, 55, 139, 200, 200, 221, 0 }, },
+      { { 103, 84, 36, 66, 155, 194, 1 },
+        { 199, 9, 248, 44, 144, 149, 0 },
+        { 161, 236, 161, 18, 21, 115, 0 },
+        { 84, 132, 154, 15, 200, 113, 1 }, },
+      { { 103, 94, 109, 245, 161, 167, 0 },
+        { 249, 173, 249, 221, 17, 28, 1 },
+        { 114, 194, 215, 219, 61, 115, 0 },
+        { 156, 68, 93, 207, 218, 207, 1 }, },
+      { { 100, 112, 128, 63, 112, 33, 0 },
+        { 25, 53, 2, 78, 145, 3, 1 },
+        { 66, 7, 126, 0, 135, 19, 0 },
+        { 224, 68, 185, 32, 86, 76, 0 }, },
+      { { 101, 113, 143, 62, 145, 182, 1 },
+        { 51, 41, 58, 31, 151, 87, 1 },
+        { 182, 196, 190, 120, 199, 83, 0 },
+        { 245, 116, 252, 46, 74, 102, 0 }, },
+      { { 103, 153, 192, 236, 194, 232, 1 },
+        { 135, 185, 97, 170, 61, 18, 1 },
+        { 139, 161, 155, 129, 204, 243, 0 },
+        { 164, 94, 42, 195, 78, 240, 1 }, },
+      { { 102, 181, 191, 1, 79, 214, 0 },
+        { 229, 89, 154, 123, 94, 196, 0 },
+        { 53, 249, 64, 126, 214, 179, 0 },
+        { 17, 189, 111, 44, 205, 83, 1 }, },
+      { { 103, 209, 57, 91, 135, 184, 0 },
+        { 177, 73, 240, 109, 252, 82, 1 },
+        { 14, 240, 237, 78, 69, 243, 0 },
+        { 165, 31, 219, 7, 201, 70, 1 }, },
+      { { 101, 214, 185, 83, 116, 18, 0 },
+        { 121, 81, 200, 79, 216, 89, 0 },
+        { 36, 23, 101, 78, 181, 211, 0 },
+        { 77, 13, 249, 9, 197, 79, 0 }, },
+      { { 107, 53, 69, 174, 190, 183, 0 },
+        { 200, 47, 43, 185, 213, 215, 1 },
+        { 118, 190, 186, 209, 86, 107, 0 },
+        { 245, 213, 206, 234, 122, 9, 1 }, },
+      { { 106, 85, 31, 116, 156, 15, 1 },
+        { 242, 103, 104, 29, 119, 133, 0 },
+        { 248, 28, 151, 124, 85, 43, 0 },
+        { 80, 247, 92, 11, 115, 39, 1 }, },
+      { { 105, 214, 240, 35, 1, 52, 0 },
+        { 64, 99, 145, 94, 152, 88, 1 },
+        { 22, 64, 98, 7, 181, 203, 0 },
+        { 141, 12, 189, 68, 227, 1, 0 }, },
+      { { 107, 214, 206, 166, 84, 232, 1 },
+        { 230, 59, 1, 142, 251, 29, 1 },
+        { 139, 149, 50, 185, 181, 235, 0 },
+        { 220, 111, 184, 192, 110, 51, 1 }, },
+      { { 108, 83, 126, 168, 65, 235, 0 },
+        { 37, 127, 153, 140, 54, 14, 1 },
+        { 107, 193, 10, 191, 101, 27, 0 },
+        { 184, 54, 24, 204, 255, 82, 0 }, },
+      { { 110, 99, 164, 20, 64, 36, 1 },
+        { 147, 18, 130, 30, 21, 12, 1 },
+        { 146, 1, 20, 18, 227, 59, 0 },
+        { 152, 84, 60, 32, 164, 100, 1 }, },
+      { { 108, 120, 204, 22, 132, 88, 1 },
+        { 55, 131, 35, 14, 241, 68, 0 },
+        { 141, 16, 180, 25, 143, 27, 0 },
+        { 17, 71, 184, 98, 96, 246, 0 }, },
+      { { 108, 206, 226, 122, 51, 47, 0 },
+        { 89, 166, 217, 62, 186, 11, 1 },
+        { 122, 102, 47, 35, 185, 155, 0 },
+        { 232, 46, 190, 77, 178, 205, 0 }, },
+      { { 111, 226, 98, 8, 71, 155, 0 },
+        { 129, 30, 155, 44, 122, 90, 0 },
+        { 108, 241, 8, 35, 35, 251, 0 },
+        { 45, 47, 26, 108, 188, 64, 1 }, },
+      { { 113, 2, 15, 225, 198, 243, 0 },
+        { 36, 60, 108, 233, 82, 92, 1 },
+        { 103, 177, 195, 248, 32, 71, 0 },
+        { 157, 37, 75, 155, 30, 18, 0 }, },
+      { { 113, 1, 66, 223, 219, 44, 0 },
+        { 16, 16, 117, 248, 183, 147, 1 },
+        { 26, 109, 253, 161, 64, 71, 0 },
+        { 228, 246, 143, 215, 4, 4, 0 }, },
+      { { 114, 10, 186, 206, 130, 96, 0 },
+        { 164, 192, 228, 170, 147, 10, 1 },
+        { 3, 32, 185, 174, 168, 39, 0 },
+        { 168, 100, 170, 147, 129, 146, 1 }, },
+      { { 114, 76, 255, 13, 215, 153, 0 },
+        { 224, 220, 181, 111, 115, 71, 0 },
+        { 76, 245, 216, 127, 153, 39, 0 },
+        { 113, 103, 123, 86, 157, 131, 1 }, },
+      { { 112, 148, 200, 167, 175, 228, 0 },
+        { 108, 41, 53, 250, 217, 128, 1 },
+        { 19, 250, 242, 137, 148, 135, 0 },
+        { 128, 205, 175, 214, 74, 27, 0 }, },
+      { { 115, 219, 92, 88, 31, 37, 1 },
+        { 178, 197, 85, 60, 92, 159, 1 },
+        { 210, 124, 13, 29, 109, 231, 0 },
+        { 252, 157, 30, 85, 81, 166, 1 }, },
+      { { 113, 220, 240, 226, 63, 213, 1 },
+        { 78, 237, 213, 190, 216, 209, 0 },
+        { 213, 254, 35, 135, 157, 199, 0 },
+        { 69, 141, 190, 213, 219, 185, 0 }, },
+      { { 115, 240, 217, 222, 113, 35, 1 },
+        { 186, 85, 95, 143, 153, 19, 1 },
+        { 226, 71, 61, 205, 135, 231, 0 },
+        { 228, 76, 248, 253, 85, 46, 1 }, },
+      { { 117, 16, 178, 106, 60, 109, 0 },
+        { 13, 101, 196, 26, 242, 147, 1 },
+        { 91, 30, 43, 38, 132, 87, 0 },
+        { 228, 167, 172, 17, 211, 88, 0 }, },
+      { { 117, 125, 232, 146, 6, 63, 0 },
+        { 113, 133, 143, 190, 244, 80, 1 },
+        { 126, 48, 36, 139, 223, 87, 0 },
+        { 133, 23, 190, 248, 208, 199, 0 }, },
+      { { 116, 159, 153, 133, 17, 253, 0 },
+        { 101, 205, 20, 219, 61, 73, 1 },
+        { 95, 196, 80, 204, 252, 151, 0 },
+        { 201, 94, 109, 148, 89, 211, 0 }, },
+      { { 122, 14, 219, 24, 154, 237, 0 },
+        { 244, 206, 37, 59, 50, 139, 1 },
+        { 91, 172, 140, 109, 184, 47, 0 },
+        { 232, 166, 110, 82, 57, 151, 1 }, },
+      { { 121, 22, 143, 58, 72, 165, 1 },
+        { 114, 63, 4, 27, 146, 158, 1 },
+        { 210, 137, 46, 120, 180, 79, 0 },
+        { 188, 164, 236, 16, 126, 39, 0 }, },
+      { { 121, 188, 129, 6, 112, 53, 0 },
+        { 72, 151, 6, 27, 153, 81, 1 },
+        { 86, 7, 48, 64, 158, 207, 0 },
+        { 197, 76, 236, 48, 116, 137, 0 }, },
+      { { 125, 77, 194, 163, 143, 129, 1 },
+        { 67, 174, 53, 238, 214, 144, 0 },
+        { 192, 248, 226, 161, 217, 95, 0 },
+        { 4, 181, 187, 214, 58, 225, 0 }, },
+      { { 124, 135, 26, 99, 181, 78, 0 },
+        { 109, 98, 124, 88, 254, 9, 0 },
+        { 57, 86, 227, 44, 112, 159, 0 },
+        { 72, 63, 141, 31, 35, 91, 0 }, },
+      { { 127, 162, 123, 214, 2, 146, 1 },
+        { 179, 74, 207, 169, 155, 88, 0 },
+        { 164, 160, 53, 239, 34, 255, 0 },
+        { 13, 108, 202, 249, 169, 102, 1 }, },
+      { { 125, 171, 223, 59, 221, 197, 1 },
+        { 55, 254, 55, 91, 222, 159, 0 },
+        { 209, 221, 238, 125, 234, 223, 0 },
+        { 124, 189, 237, 118, 63, 246, 0 }, },
+      { { 125, 187, 65, 173, 85, 124, 1 },
+        { 7, 179, 23, 217, 125, 91, 1 },
+        { 159, 85, 90, 193, 110, 223, 0 },
+        { 237, 95, 77, 244, 102, 240, 0 }, },
+      { { 131, 4, 66, 138, 233, 199, 0 },
+        { 204, 28, 57, 144, 130, 178, 0 },
+        { 113, 203, 168, 161, 16, 96, 1 },
+        { 38, 160, 132, 206, 28, 25, 1 }, },
+      { { 131, 43, 42, 216, 218, 107, 1 },
+        { 182, 148, 234, 160, 38, 187, 1 },
+        { 235, 45, 141, 170, 106, 96, 1 },
+        { 238, 178, 2, 171, 148, 182, 1 }, },
+      { { 129, 42, 82, 146, 228, 127, 0 },
+        { 28, 212, 43, 144, 226, 120, 1 },
+        { 127, 19, 164, 165, 42, 64, 1 },
+        { 143, 35, 132, 234, 21, 156, 0 }, },
+      { { 129, 56, 22, 164, 149, 242, 0 },
+        { 4, 233, 58, 128, 67, 117, 1 },
+        { 39, 212, 146, 180, 14, 64, 1 },
+        { 215, 97, 0, 174, 75, 144, 0 }, },
+      { { 129, 100, 221, 191, 156, 110, 1 },
+        { 118, 96, 43, 215, 225, 183, 1 },
+        { 187, 28, 254, 221, 147, 64, 1 },
+        { 246, 195, 245, 234, 3, 55, 0 }, },
+      { { 129, 123, 93, 252, 187, 253, 1 },
+        { 62, 237, 115, 181, 37, 255, 1 },
+        { 223, 238, 159, 221, 111, 64, 1 },
+        { 255, 210, 86, 231, 91, 190, 0 }, },
+      { { 130, 178, 225, 68, 80, 78, 0 },
+        { 132, 17, 203, 19, 41, 41, 0 },
+        { 57, 5, 17, 67, 166, 160, 1 },
+        { 74, 74, 100, 105, 196, 16, 1 }, },
+      { { 128, 247, 188, 97, 25, 21, 0 },
+        { 96, 101, 210, 86, 12, 237, 0 },
+        { 84, 76, 67, 30, 247, 128, 1 },
+        { 91, 152, 53, 37, 211, 3, 0 }, },
+      { { 135, 52, 106, 165, 125, 200, 0 },
+        { 237, 57, 147, 192, 99, 177, 0 },
+        { 9, 223, 82, 171, 22, 112, 1 },
+        { 70, 227, 1, 228, 206, 91, 1 }, },
+      { { 132, 140, 23, 210, 149, 239, 1 },
+        { 87, 204, 120, 145, 234, 37, 1 },
+        { 251, 212, 165, 244, 24, 144, 1 },
+        { 210, 43, 196, 143, 25, 245, 0 }, },
+      { { 132, 150, 182, 186, 170, 44, 0 },
+        { 89, 97, 160, 178, 170, 174, 1 },
+        { 26, 42, 174, 182, 180, 144, 1 },
+        { 186, 170, 166, 130, 195, 77, 0 }, },
+      { { 135, 156, 185, 242, 219, 180, 0 },
+        { 241, 249, 240, 179, 136, 241, 1 },
+        { 22, 237, 167, 206, 156, 240, 1 },
+        { 199, 136, 230, 135, 207, 199, 1 }, },
+      { { 132, 196, 118, 79, 240, 21, 1 },
+        { 75, 84, 225, 84, 139, 103, 0 },
+        { 212, 7, 249, 55, 17, 144, 1 },
+        { 115, 104, 149, 67, 149, 105, 0 }, },
+      { { 135, 196, 142, 129, 238, 18, 1 },
+        { 235, 16, 40, 230, 74, 244, 0 },
+        { 164, 59, 192, 184, 145, 240, 1 },
+        { 23, 169, 51, 138, 4, 107, 1 }, },
+      { { 133, 225, 245, 45, 64, 89, 1 },
+        { 7, 116, 131, 71, 45, 118, 0 },
+        { 205, 1, 90, 87, 195, 208, 1 },
+        { 55, 90, 113, 96, 151, 112, 0 }, },
+      { { 137, 14, 35, 66, 210, 193, 1 },
+        { 70, 158, 224, 33, 130, 57, 0 },
+        { 193, 165, 161, 98, 56, 72, 1 },
+        { 78, 32, 194, 3, 188, 177, 0 }, },
+      { { 138, 56, 218, 197, 237, 134, 1 },
+        { 170, 219, 123, 210, 67, 160, 0 },
+        { 176, 219, 209, 173, 142, 40, 1 },
+        { 2, 225, 37, 239, 109, 170, 1 }, },
+      { { 138, 149, 152, 168, 110, 21, 0 },
+        { 232, 119, 0, 178, 76, 226, 0 },
+        { 84, 59, 10, 140, 212, 168, 1 },
+        { 35, 153, 38, 128, 119, 11, 1 }, },
+      { { 141, 29, 47, 20, 46, 123, 1 },
+        { 127, 135, 136, 33, 103, 244, 1 },
+        { 239, 58, 20, 122, 92, 88, 1 },
+        { 151, 243, 66, 8, 240, 255, 0 }, },
+      { { 141, 111, 99, 41, 14, 170, 1 },
+        { 67, 170, 139, 101, 102, 186, 1 },
+        { 170, 184, 74, 99, 123, 88, 1 },
+        { 174, 179, 83, 104, 170, 225, 0 }, },
+      { { 142, 178, 140, 83, 176, 124, 1 },
+        { 191, 3, 98, 82, 168, 109, 1 },
+        { 159, 6, 229, 24, 166, 184, 1 },
+        { 219, 10, 165, 35, 96, 126, 1 }, },
+      { { 142, 222, 235, 43, 219, 30, 1 },
+        { 227, 179, 185, 119, 170, 235, 0 },
+        { 188, 109, 234, 107, 189, 184, 1 },
+        { 107, 170, 247, 78, 230, 227, 1 }, },
+      { { 141, 245, 6, 243, 158, 250, 0 },
+        { 85, 43, 106, 228, 238, 245, 1 },
+        { 47, 188, 231, 176, 87, 216, 1 },
+        { 215, 187, 147, 171, 106, 85, 0 }, },
+      { { 144, 23, 149, 47, 152, 143, 0 },
+        { 64, 109, 44, 83, 165, 175, 0 },
+        { 120, 140, 250, 84, 244, 4, 1 },
+        { 122, 210, 229, 26, 91, 1, 0 }, },
+      { { 145, 35, 7, 27, 254, 232, 0 },
+        { 28, 24, 38, 97, 230, 191, 1 },
+        { 11, 191, 236, 112, 98, 68, 1 },
+        { 254, 179, 195, 50, 12, 28, 0 }, },
+      { { 144, 37, 85, 177, 206, 2, 1 },
+        { 82, 112, 47, 225, 68, 164, 0 },
+        { 160, 57, 198, 213, 82, 4, 1 },
+        { 18, 145, 67, 250, 7, 37, 0 }, },
+      { { 144, 40, 188, 66, 77, 232, 0 },
+        { 36, 216, 214, 2, 224, 164, 1 },
+        { 11, 217, 33, 30, 138, 4, 1 },
+        { 146, 131, 160, 53, 141, 146, 0 }, },
+      { { 144, 57, 208, 138, 32, 54, 1 },
+        { 10, 193, 15, 146, 132, 98, 1 },
+        { 182, 2, 40, 133, 206, 4, 1 },
+        { 163, 16, 164, 248, 65, 168, 0 }, },
+      { { 147, 79, 149, 211, 130, 90, 0 },
+        { 212, 192, 108, 231, 164, 124, 0 },
+        { 45, 32, 229, 212, 249, 100, 1 },
+        { 31, 18, 243, 155, 1, 149, 1 }, },
+      { { 146, 164, 210, 234, 226, 74, 0 },
+        { 204, 112, 111, 162, 170, 34, 0 },
+        { 41, 35, 171, 165, 146, 164, 1 },
+        { 34, 42, 162, 251, 7, 25, 1 }, },
+      { { 145, 180, 112, 9, 138, 92, 1 },
+        { 70, 65, 167, 112, 40, 242, 0 },
+        { 157, 40, 200, 7, 22, 196, 1 },
+        { 39, 138, 7, 114, 193, 49, 0 }, },
+      { { 147, 222, 25, 219, 41, 219, 1 },
+        { 254, 205, 92, 197, 168, 250, 0 },
+        { 237, 202, 109, 204, 61, 228, 1 },
+        { 47, 138, 209, 157, 89, 191, 1 }, },
+      { { 145, 229, 150, 87, 118, 92, 0 },
+        { 92, 80, 70, 118, 239, 117, 0 },
+        { 29, 55, 117, 52, 211, 196, 1 },
+        { 87, 123, 183, 49, 5, 29, 0 }, },
+      { { 146, 236, 144, 218, 63, 135, 0 },
+        { 216, 204, 94, 182, 200, 163, 0 },
+        { 112, 254, 45, 132, 155, 164, 1 },
+        { 98, 137, 182, 189, 25, 141, 1 }, },
+      { { 146, 252, 112, 168, 201, 176, 0 },
+        { 192, 249, 183, 132, 8, 226, 1 },
+        { 6, 201, 138, 135, 31, 164, 1 },
+        { 163, 136, 16, 246, 207, 129, 1 }, },
+      { { 149, 25, 170, 136, 106, 158, 1 },
+        { 43, 153, 140, 178, 38, 242, 0 },
+        { 188, 171, 8, 170, 204, 84, 1 },
+        { 39, 178, 38, 152, 204, 234, 0 }, },
+      { { 148, 82, 41, 183, 65, 127, 0 },
+        { 53, 53, 156, 213, 161, 104, 1 },
+        { 127, 65, 118, 202, 37, 20, 1 },
+        { 139, 66, 213, 156, 214, 86, 0 }, },
+      { { 148, 87, 59, 92, 68, 38, 1 },
+        { 115, 81, 204, 21, 71, 42, 1 },
+        { 178, 17, 29, 110, 117, 20, 1 },
+        { 170, 113, 84, 25, 197, 103, 0 }, },
+      { { 151, 82, 5, 249, 168, 20, 0 },
+        { 153, 33, 100, 213, 0, 254, 0 },
+        { 20, 10, 207, 208, 37, 116, 1 },
+        { 63, 128, 85, 147, 66, 76, 1 }, },
+      { { 150, 156, 251, 61, 143, 160, 1 },
+        { 243, 233, 181, 99, 75, 162, 1 },
+        { 130, 248, 222, 111, 156, 180, 1 },
+        { 162, 233, 99, 86, 203, 231, 1 }, },
+      { { 151, 163, 111, 26, 69, 144, 1 },
+        { 179, 24, 151, 1, 206, 126, 0 },
+        { 132, 209, 44, 123, 98, 244, 1 },
+        { 63, 57, 192, 116, 140, 102, 1 }, },
+      { { 151, 170, 229, 229, 236, 98, 0 },
+        { 141, 176, 239, 195, 73, 188, 1 },
+        { 35, 27, 211, 211, 170, 244, 1 },
+        { 158, 201, 97, 251, 134, 216, 1 }, },
+      { { 151, 229, 170, 59, 113, 88, 1 },
+        { 255, 48, 150, 70, 174, 115, 0 },
+        { 141, 71, 110, 42, 211, 244, 1 },
+        { 103, 58, 177, 52, 134, 127, 1 }, },
+      { { 154, 32, 49, 130, 105, 146, 1 },
+        { 138, 90, 158, 129, 128, 224, 0 },
+        { 164, 203, 32, 198, 2, 44, 1 },
+        { 3, 128, 192, 188, 173, 40, 1 }, },
+      { { 153, 69, 56, 75, 61, 53, 1 },
+        { 106, 70, 212, 84, 196, 243, 1 },
+        { 214, 94, 105, 14, 81, 76, 1 },
+        { 231, 145, 149, 21, 177, 43, 0 }, },
+      { { 154, 177, 236, 143, 208, 111, 1 },
+        { 166, 23, 175, 210, 173, 39, 1 },
+        { 251, 5, 248, 155, 198, 172, 1 },
+        { 242, 90, 165, 250, 244, 50, 1 }, },
+      { { 154, 213, 151, 178, 63, 108, 1 },
+        { 222, 99, 20, 183, 238, 165, 1 },
+        { 155, 126, 38, 244, 213, 172, 1 },
+        { 210, 187, 246, 148, 99, 61, 1 }, },
+      { { 153, 249, 19, 79, 121, 230, 0 },
+        { 12, 219, 94, 85, 143, 179, 1 },
+        { 51, 207, 121, 100, 79, 204, 1 },
+        { 230, 248, 213, 61, 109, 152, 0 }, },
+      { { 158, 24, 232, 0, 191, 106, 1 },
+        { 175, 131, 189, 34, 96, 161, 1 },
+        { 171, 126, 128, 11, 140, 60, 1 },
+        { 194, 131, 34, 94, 224, 250, 1 }, },
+      { { 159, 72, 93, 163, 29, 40, 1 },
+        { 163, 226, 21, 197, 224, 181, 1 },
+        { 138, 92, 98, 221, 9, 124, 1 },
+        { 214, 131, 209, 212, 35, 226, 1 }, },
+      { { 159, 84, 21, 142, 137, 140, 0 },
+        { 193, 75, 52, 149, 161, 182, 0 },
+        { 24, 200, 184, 212, 21, 124, 1 },
+        { 54, 194, 212, 150, 105, 65, 1 }, },
+      { { 157, 106, 155, 82, 57, 78, 1 },
+        { 63, 194, 94, 23, 162, 185, 0 },
+        { 185, 78, 37, 108, 171, 92, 1 },
+        { 78, 162, 244, 61, 33, 254, 0 }, },
+      { { 158, 111, 156, 10, 159, 118, 0 },
+        { 229, 194, 62, 54, 196, 239, 1 },
+        { 55, 124, 168, 28, 251, 60, 1 },
+        { 251, 145, 182, 62, 33, 211, 1 }, },
+      { { 160, 9, 100, 5, 91, 91, 0 },
+        { 4, 148, 153, 104, 37, 229, 0 },
+        { 109, 109, 80, 19, 72, 2, 1 },
+        { 83, 210, 11, 76, 148, 144, 0 }, },
+      { { 162, 60, 219, 252, 54, 178, 0 },
+        { 248, 233, 75, 171, 67, 99, 1 },
+        { 38, 182, 31, 237, 158, 34, 1 },
+        { 227, 97, 106, 233, 75, 143, 1 }, },
+      { { 163, 91, 247, 118, 247, 143, 0 },
+        { 152, 253, 249, 63, 231, 61, 0 },
+        { 120, 247, 183, 119, 237, 98, 1 },
+        { 94, 115, 254, 79, 223, 140, 1 }, },
+      { { 162, 157, 115, 18, 132, 59, 0 },
+        { 208, 197, 169, 9, 238, 96, 1 },
+        { 110, 16, 164, 103, 92, 162, 1 },
+        { 131, 59, 200, 74, 209, 133, 1 }, },
+      { { 160, 206, 10, 169, 116, 87, 0 },
+        { 108, 180, 8, 220, 74, 107, 0 },
+        { 117, 23, 74, 168, 57, 130, 1 },
+        { 107, 41, 29, 136, 22, 155, 0 }, },
+      { { 160, 220, 172, 38, 43, 179, 1 },
+        { 106, 173, 152, 46, 137, 228, 1 },
+        { 230, 234, 50, 26, 157, 130, 1 },
+        { 147, 200, 186, 12, 218, 171, 0 }, },
+      { { 162, 245, 118, 116, 106, 43, 1 },
+        { 218, 117, 203, 44, 47, 164, 1 },
+        { 234, 43, 23, 55, 87, 162, 1 },
+        { 146, 250, 26, 105, 215, 45, 1 }, },
+      { { 166, 47, 214, 238, 159, 142, 1 },
+        { 195, 232, 123, 186, 231, 175, 0 },
+        { 184, 252, 187, 181, 250, 50, 1 },
+        { 122, 243, 174, 239, 11, 225, 1 }, },
+      { { 165, 56, 116, 248, 96, 115, 1 },
+        { 31, 245, 203, 136, 0, 118, 1 },
+        { 231, 3, 15, 151, 14, 82, 1 },
+        { 183, 0, 8, 233, 215, 252, 0 }, },
+      { { 164, 94, 71, 141, 231, 74, 0 },
+        { 77, 145, 57, 237, 99, 46, 0 },
+        { 41, 115, 216, 241, 61, 18, 1 },
+        { 58, 99, 91, 206, 68, 217, 0 }, },
+      { { 167, 93, 87, 124, 48, 116, 1 },
+        { 223, 225, 65, 29, 7, 119, 1 },
+        { 151, 6, 31, 117, 93, 114, 1 },
+        { 247, 112, 92, 65, 67, 253, 1 }, },
+      { { 166, 114, 149, 34, 69, 134, 0 },
+        { 129, 121, 26, 31, 192, 44, 0 },
+        { 48, 209, 34, 84, 167, 50, 1 },
+        { 26, 1, 252, 44, 79, 64, 1 }, },
+      { { 165, 131, 104, 82, 20, 90, 0 },
+        { 53, 0, 201, 8, 236, 121, 0 },
+        { 45, 20, 37, 11, 96, 210, 1 },
+        { 79, 27, 136, 73, 128, 86, 0 }, },
+      { { 164, 155, 84, 147, 194, 3, 0 },
+        { 17, 213, 41, 232, 140, 44, 0 },
+        { 96, 33, 228, 149, 108, 146, 1 },
+        { 26, 24, 139, 202, 85, 196, 0 }, },
+      { { 166, 189, 42, 131, 213, 14, 0 },
+        { 225, 145, 186, 216, 238, 33, 0 },
+        { 56, 85, 224, 170, 94, 178, 1 },
+        { 66, 59, 141, 174, 196, 195, 1 }, },
+      { { 169, 7, 89, 5, 251, 125, 0 },
+        { 108, 86, 49, 121, 37, 249, 1 },
+        { 95, 111, 208, 77, 112, 74, 1 },
+        { 207, 210, 79, 70, 53, 27, 0 }, },
+      { { 169, 21, 217, 154, 37, 235, 1 },
+        { 126, 79, 25, 139, 228, 50, 1 },
+        { 235, 210, 44, 205, 212, 74, 1 },
+        { 166, 19, 232, 204, 121, 63, 0 }, },
+      { { 171, 34, 146, 112, 50, 2, 0 },
+        { 152, 98, 74, 42, 2, 57, 0 },
+        { 32, 38, 7, 36, 162, 106, 1 },
+        { 78, 32, 42, 41, 35, 12, 1 }, },
+      { { 169, 55, 228, 166, 33, 245, 1 },
+        { 78, 47, 147, 154, 133, 124, 1 },
+        { 215, 194, 50, 147, 246, 74, 1 },
+        { 159, 80, 172, 228, 250, 57, 0 }, },
+      { { 170, 114, 189, 81, 74, 123, 0 },
+        { 180, 87, 202, 111, 32, 236, 1 },
+        { 111, 41, 69, 94, 167, 42, 1 },
+        { 155, 130, 123, 41, 245, 22, 1 }, },
+      { { 168, 137, 199, 107, 240, 9, 0 },
+        { 8, 182, 97, 75, 174, 39, 0 },
+        { 72, 7, 235, 113, 200, 138, 1 },
+        { 114, 58, 233, 67, 54, 136, 0 }, },
+      { { 170, 213, 171, 110, 131, 212, 1 },
+        { 230, 43, 240, 63, 143, 98, 0 },
+        { 149, 224, 187, 106, 213, 170, 1 },
+        { 35, 120, 254, 7, 234, 51, 1 }, },
+      { { 168, 211, 200, 181, 190, 175, 0 },
+        { 56, 47, 41, 254, 109, 169, 1 },
+        { 122, 190, 214, 137, 229, 138, 1 },
+        { 202, 219, 63, 202, 122, 14, 0 }, },
+      { { 174, 20, 19, 54, 167, 164, 0 },
+        { 217, 107, 48, 57, 195, 32, 1 },
+        { 18, 242, 182, 100, 20, 58, 1 },
+        { 130, 97, 206, 6, 107, 77, 1 }, },
+      { { 173, 100, 135, 249, 112, 220, 1 },
+        { 95, 58, 66, 223, 34, 119, 0 },
+        { 157, 135, 79, 240, 147, 90, 1 },
+        { 119, 34, 125, 161, 46, 125, 0 }, },
+      { { 175, 121, 76, 217, 234, 209, 1 },
+        { 191, 159, 99, 236, 4, 246, 0 },
+        { 197, 171, 205, 153, 79, 122, 1 },
+        { 55, 144, 27, 227, 124, 254, 1 }, },
+      { { 173, 154, 157, 184, 0, 254, 1 },
+        { 55, 235, 8, 155, 40, 126, 1 },
+        { 191, 128, 14, 220, 172, 218, 1 },
+        { 191, 10, 108, 136, 107, 246, 0 }, },
+      { { 175, 156, 136, 245, 213, 82, 0 },
+        { 245, 179, 120, 202, 73, 113, 0 },
+        { 37, 85, 215, 136, 156, 250, 1 },
+        { 71, 73, 41, 143, 102, 215, 1 }, },
+      { { 173, 207, 238, 79, 108, 35, 0 },
+        { 105, 150, 201, 78, 207, 190, 1 },
+        { 98, 27, 121, 59, 249, 218, 1 },
+        { 190, 249, 185, 73, 180, 203, 0 }, },
+      { { 173, 247, 163, 231, 58, 61, 1 },
+        { 75, 39, 194, 255, 175, 249, 1 },
+        { 222, 46, 115, 226, 247, 218, 1 },
+        { 207, 250, 255, 161, 242, 105, 0 }, },
+      { { 178, 65, 252, 215, 31, 187, 0 },
+        { 176, 76, 221, 238, 229, 229, 1 },
+        { 110, 252, 117, 159, 193, 38, 1 },
+        { 211, 211, 187, 221, 153, 6, 1 }, },
+      { { 179, 66, 216, 120, 217, 241, 1 },
+        { 182, 124, 117, 14, 0, 251, 1 },
+        { 199, 205, 143, 13, 161, 102, 1 },
+        { 239, 128, 56, 87, 31, 54, 1 }, },
+      { { 178, 97, 81, 226, 141, 99, 0 },
+        { 132, 100, 127, 141, 196, 160, 1 },
+        { 99, 88, 163, 197, 67, 38, 1 },
+        { 130, 145, 216, 255, 19, 16, 1 }, },
+      { { 179, 99, 173, 194, 60, 10, 1 },
+        { 170, 0, 206, 143, 228, 189, 0 },
+        { 168, 30, 33, 218, 227, 102, 1 },
+        { 94, 147, 248, 185, 128, 42, 1 }, },
+      { { 179, 122, 143, 78, 111, 189, 1 },
+        { 170, 157, 86, 63, 227, 254, 1 },
+        { 222, 251, 57, 120, 175, 102, 1 },
+        { 191, 227, 254, 53, 92, 170, 1 }, },
+      { { 176, 177, 13, 218, 203, 9, 1 },
+        { 50, 21, 118, 169, 172, 166, 0 },
+        { 200, 105, 173, 216, 70, 134, 1 },
+        { 50, 154, 202, 183, 84, 38, 0 }, },
+      { { 176, 187, 235, 133, 79, 183, 0 },
+        { 32, 157, 159, 251, 79, 232, 1 },
+        { 118, 249, 80, 235, 238, 134, 1 },
+        { 139, 249, 111, 252, 220, 130, 0 }, },
+      { { 177, 195, 46, 176, 79, 2, 0 },
+        { 48, 48, 156, 172, 78, 188, 0 },
+        { 32, 121, 6, 186, 97, 198, 1 },
+        { 30, 185, 26, 156, 134, 6, 0 }, },
+      { { 177, 202, 162, 122, 198, 206, 0 },
+        { 20, 184, 236, 62, 234, 58, 0 },
+        { 57, 177, 175, 34, 169, 198, 1 },
+        { 46, 43, 190, 27, 142, 148, 0 }, },
+      { { 180, 119, 47, 73, 43, 245, 0 },
+        { 109, 13, 214, 125, 6, 238, 1 },
+        { 87, 234, 73, 122, 119, 22, 1 },
+        { 187, 176, 95, 53, 216, 91, 0 }, },
+      { { 181, 174, 77, 39, 89, 131, 1 },
+        { 99, 188, 31, 73, 137, 189, 0 },
+        { 224, 205, 114, 89, 58, 214, 1 },
+        { 94, 200, 201, 124, 30, 227, 0 }, },
+      { { 183, 210, 205, 142, 206, 219, 0 },
+        { 165, 29, 45, 175, 233, 254, 0 },
+        { 109, 185, 184, 217, 165, 246, 1 },
+        { 63, 203, 250, 218, 92, 82, 1 }, },
+      { { 182, 235, 156, 93, 104, 151, 0 },
+        { 185, 220, 78, 94, 13, 238, 0 },
+        { 116, 139, 93, 28, 235, 182, 1 },
+        { 59, 216, 61, 57, 29, 206, 1 }, },
+      { { 180, 244, 103, 243, 78, 87, 0 },
+        { 85, 53, 207, 253, 202, 228, 0 },
+        { 117, 57, 103, 243, 23, 150, 1 },
+        { 19, 169, 223, 249, 214, 85, 0 }, },
+      { { 184, 15, 212, 222, 49, 7, 1 },
+        { 90, 198, 93, 154, 133, 47, 0 },
+        { 240, 70, 61, 149, 248, 14, 1 },
+        { 122, 80, 172, 221, 49, 173, 0 }, },
+      { { 184, 57, 126, 65, 128, 2, 0 },
+        { 32, 195, 239, 72, 6, 36, 0 },
+        { 32, 0, 193, 63, 78, 14, 1 },
+        { 18, 48, 9, 123, 225, 130, 0 }, },
+      { { 184, 56, 131, 182, 233, 190, 0 },
+        { 24, 187, 62, 155, 163, 224, 1 },
+        { 62, 203, 182, 224, 142, 14, 1 },
+        { 131, 226, 236, 190, 110, 140, 0 }, },
+      { { 184, 108, 6, 172, 40, 232, 0 },
+        { 76, 170, 6, 140, 35, 166, 1 },
+        { 11, 138, 26, 176, 27, 14, 1 },
+        { 178, 226, 24, 176, 42, 153, 0 }, },
+      { { 185, 136, 183, 154, 126, 192, 1 },
+        { 30, 218, 132, 171, 202, 183, 0 },
+        { 129, 191, 44, 246, 136, 206, 1 },
+        { 118, 169, 234, 144, 173, 188, 0 }, },
+      { { 184, 156, 165, 183, 60, 206, 0 },
+        { 92, 171, 140, 219, 233, 165, 0 },
+        { 57, 158, 118, 210, 156, 142, 1 },
+        { 82, 203, 237, 152, 234, 157, 0 }, },
+      { { 186, 207, 131, 167, 229, 28, 1 },
+        { 202, 178, 52, 223, 239, 104, 0 },
+        { 156, 83, 242, 224, 249, 174, 1 },
+        { 11, 123, 253, 150, 38, 169, 1 }, },
+      { { 184, 231, 17, 147, 88, 172, 1 },
+        { 82, 90, 6, 221, 172, 169, 1 },
+        { 154, 141, 100, 196, 115, 142, 1 },
+        { 202, 154, 221, 176, 45, 37, 0 }, },
+      { { 189, 114, 116, 100, 13, 206, 1 },
+        { 7, 107, 223, 28, 97, 188, 0 },
+        { 185, 216, 19, 23, 39, 94, 1 },
+        { 30, 195, 28, 125, 235, 112, 0 }, },
+      { { 188, 125, 134, 57, 75, 186, 1 },
+        { 83, 187, 30, 110, 38, 230, 1 },
+        { 174, 233, 78, 48, 223, 30, 1 },
+        { 179, 178, 59, 60, 110, 229, 0 }, },
+      { { 195, 30, 73, 175, 1, 169, 1 },
+        { 226, 173, 17, 193, 177, 58, 1 },
+        { 202, 192, 122, 201, 60, 97, 1 },
+        { 174, 70, 193, 196, 90, 163, 1 }, },
+      { { 192, 46, 91, 239, 41, 95, 0 },
+        { 108, 228, 91, 209, 179, 234, 0 },
+        { 125, 74, 123, 237, 58, 1, 1 },
+        { 43, 230, 197, 237, 19, 155, 0 }, },
+      { { 193, 78, 242, 15, 34, 121, 1 },
+        { 78, 196, 129, 102, 179, 122, 1 },
+        { 207, 34, 120, 39, 185, 65, 1 },
+        { 175, 102, 179, 64, 145, 185, 0 }, },
+      { { 193, 129, 72, 108, 154, 70, 1 },
+        { 38, 32, 105, 48, 29, 179, 0 },
+        { 177, 44, 155, 9, 64, 193, 1 },
+        { 102, 220, 6, 75, 2, 50, 0 }, },
+      { { 193, 153, 177, 237, 205, 191, 1 },
+        { 2, 253, 248, 211, 125, 242, 1 },
+        { 254, 217, 219, 198, 204, 193, 1 },
+        { 167, 223, 101, 143, 223, 160, 0 }, },
+      { { 193, 146, 177, 38, 19, 223, 1 },
+        { 6, 109, 152, 51, 185, 121, 0 },
+        { 253, 228, 50, 70, 164, 193, 1 },
+        { 79, 78, 230, 12, 219, 48, 0 }, },
+      { { 195, 183, 213, 56, 210, 51, 1 },
+        { 210, 117, 43, 35, 28, 127, 1 },
+        { 230, 37, 142, 85, 246, 225, 1 },
+        { 255, 28, 98, 106, 87, 37, 1 }, },
+      { { 193, 215, 25, 188, 235, 129, 1 },
+        { 122, 125, 48, 165, 29, 186, 0 },
+        { 192, 235, 158, 204, 117, 193, 1 },
+        { 46, 220, 82, 134, 95, 47, 0 }, },
+      { { 193, 246, 67, 78, 186, 232, 1 },
+        { 78, 9, 99, 37, 187, 187, 1 },
+        { 139, 174, 185, 97, 55, 193, 1 },
+        { 238, 238, 210, 99, 72, 57, 0 }, },
+      { { 196, 56, 145, 7, 35, 108, 1 },
+        { 15, 193, 18, 115, 177, 32, 1 },
+        { 155, 98, 112, 68, 142, 17, 1 },
+        { 130, 70, 231, 36, 65, 248, 0 }, },
+      { { 198, 77, 74, 227, 205, 183, 0 },
+        { 225, 188, 121, 212, 214, 224, 1 },
+        { 118, 217, 227, 169, 89, 49, 1 },
+        { 131, 181, 149, 207, 30, 195, 1 }, },
+      { { 199, 83, 172, 246, 95, 75, 1 },
+        { 183, 53, 216, 166, 245, 189, 0 },
+        { 233, 125, 55, 154, 229, 113, 1 },
+        { 94, 215, 178, 141, 214, 118, 1 }, },
+      { { 197, 126, 74, 113, 2, 75, 0 },
+        { 117, 165, 75, 100, 50, 56, 0 },
+        { 105, 32, 71, 41, 63, 81, 1 },
+        { 14, 38, 19, 105, 82, 215, 0 }, },
+      { { 198, 116, 217, 128, 138, 199, 1 },
+        { 231, 77, 43, 183, 16, 160, 0 },
+        { 241, 168, 128, 205, 151, 49, 1 },
+        { 2, 132, 118, 234, 89, 115, 1 }, },
+      { { 197, 136, 152, 47, 230, 202, 1 },
+        { 47, 248, 40, 98, 249, 50, 0 },
+        { 169, 179, 250, 12, 136, 209, 1 },
+        { 38, 79, 163, 10, 15, 250, 0 }, },
+      { { 197, 174, 39, 8, 53, 94, 1 },
+        { 79, 128, 154, 17, 122, 127, 0 },
+        { 189, 86, 8, 114, 58, 209, 1 },
+        { 127, 47, 68, 44, 128, 249, 0 }, },
+      { { 199, 188, 103, 248, 187, 33, 1 },
+        { 219, 165, 243, 161, 26, 183, 1 },
+        { 194, 110, 143, 243, 30, 241, 1 },
+        { 246, 172, 66, 231, 210, 237, 1 }, },
+      { { 196, 190, 140, 164, 243, 99, 0 },
+        { 109, 181, 58, 162, 25, 45, 1 },
+        { 99, 103, 146, 152, 190, 145, 1 },
+        { 218, 76, 34, 174, 86, 219, 0 }, },
+      { { 203, 15, 36, 114, 82, 53, 0 },
+        { 208, 182, 192, 48, 148, 125, 1 },
+        { 86, 37, 39, 18, 120, 105, 1 },
+        { 223, 20, 134, 1, 182, 133, 1 }, },
+      { { 201, 72, 89, 111, 111, 39, 1 },
+        { 42, 246, 89, 117, 209, 178, 1 },
+        { 242, 123, 123, 77, 9, 73, 1 },
+        { 166, 197, 215, 77, 55, 170, 0 }, },
+      { { 200, 85, 15, 64, 161, 129, 0 },
+        { 104, 15, 112, 5, 22, 36, 0 },
+        { 64, 194, 129, 120, 85, 9, 1 },
+        { 18, 52, 80, 7, 120, 11, 0 }, },
+      { { 203, 90, 139, 223, 86, 169, 0 },
+        { 176, 159, 64, 231, 243, 59, 1 },
+        { 74, 181, 125, 232, 173, 105, 1 },
+        { 238, 103, 243, 129, 124, 134, 1 }, },
+      { { 200, 115, 24, 175, 214, 16, 0 },
+        { 32, 115, 34, 228, 213, 107, 0 },
+        { 4, 53, 250, 140, 103, 9, 1 },
+        { 107, 85, 147, 162, 103, 2, 0 }, },
+      { { 201, 159, 158, 95, 56, 56, 0 },
+        { 120, 195, 64, 66, 191, 255, 1 },
+        { 14, 14, 125, 60, 252, 201, 1 },
+        { 255, 254, 161, 1, 97, 143, 0 }, },
+      { { 202, 191, 51, 44, 49, 240, 0 },
+        { 204, 235, 146, 1, 31, 107, 1 },
+        { 7, 198, 26, 102, 126, 169, 1 },
+        { 235, 124, 64, 36, 235, 153, 1 }, },
+      { { 201, 233, 181, 7, 221, 84, 0 },
+        { 4, 210, 178, 87, 221, 245, 0 },
+        { 21, 93, 240, 86, 203, 201, 1 },
+        { 87, 221, 245, 38, 165, 144, 0 }, },
+      { { 203, 240, 30, 59, 146, 129, 0 },
+        { 176, 111, 34, 100, 154, 55, 0 },
+        { 64, 164, 238, 60, 7, 233, 1 },
+        { 118, 44, 147, 34, 123, 6, 1 }, },
+      { { 204, 2, 72, 129, 217, 10, 0 },
+        { 33, 18, 57, 192, 48, 169, 0 },
+        { 40, 77, 192, 137, 32, 25, 1 },
+        { 74, 134, 1, 206, 36, 66, 0 }, },
+      { { 206, 44, 78, 124, 45, 3, 1 },
+        { 251, 166, 91, 0, 83, 166, 0 },
+        { 224, 90, 31, 57, 26, 57, 1 },
+        { 50, 229, 0, 109, 50, 239, 1 }, },
+      { { 205, 131, 179, 65, 153, 204, 1 },
+        { 7, 74, 240, 83, 62, 185, 0 },
+        { 153, 204, 193, 102, 224, 217, 1 },
+        { 78, 190, 101, 7, 169, 112, 0 }, },
+      { { 206, 128, 171, 157, 219, 17, 1 },
+        { 179, 22, 176, 227, 27, 227, 0 },
+        { 196, 109, 220, 234, 128, 185, 1 },
+        { 99, 236, 99, 134, 180, 102, 1 }, },
+      { { 204, 183, 70, 234, 75, 14, 1 },
+        { 67, 51, 91, 176, 190, 174, 0 },
+        { 184, 105, 43, 177, 118, 153, 1 },
+        { 58, 190, 134, 237, 102, 97, 0 }, },
+      { { 207, 228, 35, 113, 192, 123, 1 },
+        { 215, 54, 234, 69, 58, 112, 1 },
+        { 239, 1, 199, 98, 19, 249, 1 },
+        { 135, 46, 81, 43, 182, 117, 1 }, },
+      { { 205, 246, 59, 148, 188, 171, 1 },
+        { 123, 79, 170, 133, 123, 185, 1 },
+        { 234, 158, 148, 238, 55, 217, 1 },
+        { 206, 239, 80, 170, 249, 111, 0 }, },
+      { { 211, 23, 149, 186, 69, 222, 1 },
+        { 214, 121, 28, 147, 244, 126, 0 },
+        { 189, 209, 46, 212, 244, 101, 1 },
+        { 63, 23, 228, 156, 79, 53, 1 }, },
+      { { 208, 58, 34, 105, 80, 179, 0 },
+        { 0, 189, 206, 64, 18, 107, 1 },
+        { 102, 133, 75, 34, 46, 5, 1 },
+        { 235, 36, 1, 57, 222, 128, 0 }, },
+      { { 211, 54, 150, 219, 2, 36, 1 },
+        { 210, 65, 70, 242, 146, 62, 1 },
+        { 146, 32, 109, 180, 182, 101, 1 },
+        { 190, 36, 167, 177, 65, 37, 1 }, },
+      { { 210, 86, 224, 221, 145, 27, 0 },
+        { 208, 5, 253, 198, 49, 107, 0 },
+        { 108, 68, 221, 131, 181, 37, 1 },
+        { 107, 70, 49, 223, 208, 5, 1 }, },
+      { { 210, 188, 170, 228, 3, 129, 0 },
+        { 224, 173, 214, 162, 27, 32, 0 },
+        { 64, 224, 19, 170, 158, 165, 1 },
+        { 2, 108, 34, 181, 218, 131, 1 }, },
+      { { 211, 196, 238, 80, 249, 166, 0 },
+        { 248, 24, 253, 22, 26, 181, 1 },
+        { 50, 207, 133, 59, 145, 229, 1 },
+        { 214, 172, 52, 95, 140, 15, 1 }, },
+      { { 211, 228, 7, 252, 5, 226, 1 },
+        { 214, 40, 94, 133, 91, 54, 1 },
+        { 163, 208, 31, 240, 19, 229, 1 },
+        { 182, 109, 80, 189, 10, 53, 1 }, },
+      { { 211, 252, 28, 167, 191, 2, 0 },
+        { 232, 225, 62, 228, 217, 181, 0 },
+        { 32, 126, 242, 156, 31, 229, 1 },
+        { 86, 205, 147, 190, 67, 139, 1 }, },
+      { { 215, 68, 167, 168, 172, 223, 0 },
+        { 205, 44, 172, 151, 114, 246, 0 },
+        { 125, 154, 138, 242, 145, 117, 1 },
+        { 55, 167, 116, 154, 154, 89, 1 }, },
+      { { 214, 159, 244, 68, 89, 83, 0 },
+        { 197, 213, 221, 2, 29, 237, 0 },
+        { 101, 77, 17, 23, 252, 181, 1 },
+        { 91, 220, 32, 93, 213, 209, 1 }, },
+      { { 212, 175, 147, 230, 193, 68, 0 },
+        { 69, 240, 118, 147, 159, 40, 0 },
+        { 17, 65, 179, 228, 250, 149, 1 },
+        { 10, 124, 228, 183, 7, 209, 0 }, },
+      { { 217, 18, 102, 139, 15, 210, 1 },
+        { 6, 11, 157, 224, 210, 254, 0 },
+        { 165, 248, 104, 179, 36, 77, 1 },
+        { 63, 165, 131, 220, 232, 48, 0 }, },
+      { { 216, 81, 88, 45, 224, 190, 1 },
+        { 42, 123, 45, 84, 53, 98, 1 },
+        { 190, 131, 218, 13, 69, 13, 1 },
+        { 163, 86, 21, 90, 111, 42, 0 }, },
+      { { 216, 99, 102, 115, 129, 229, 0 },
+        { 20, 46, 247, 84, 150, 44, 1 },
+        { 83, 192, 231, 51, 99, 13, 1 },
+        { 154, 52, 149, 119, 186, 20, 0 }, },
+      { { 219, 108, 88, 112, 132, 206, 1 },
+        { 246, 234, 111, 20, 112, 48, 0 },
+        { 185, 144, 135, 13, 27, 109, 1 },
+        { 6, 7, 20, 123, 43, 183, 1 }, },
+      { { 217, 99, 155, 60, 255, 211, 0 },
+        { 60, 126, 62, 39, 87, 251, 0 },
+        { 101, 255, 158, 108, 227, 77, 1 },
+        { 111, 245, 114, 62, 63, 30, 0 }, },
+      { { 216, 138, 98, 229, 71, 244, 0 },
+        { 4, 186, 213, 240, 91, 104, 1 },
+        { 23, 241, 83, 163, 40, 141, 1 },
+        { 139, 109, 7, 213, 174, 144, 0 }, },
+      { { 217, 153, 210, 99, 213, 126, 1 },
+        { 6, 243, 125, 82, 254, 113, 1 },
+        { 191, 85, 227, 37, 204, 205, 1 },
+        { 199, 63, 165, 95, 103, 176, 0 }, },
+      { { 217, 162, 40, 145, 224, 209, 0 },
+        { 60, 30, 166, 192, 24, 120, 0 },
+        { 69, 131, 196, 138, 34, 205, 1 },
+        { 15, 12, 1, 178, 188, 30, 0 }, },
+      { { 219, 244, 50, 154, 65, 205, 0 },
+        { 212, 95, 150, 148, 186, 50, 0 },
+        { 89, 193, 44, 166, 23, 237, 1 },
+        { 38, 46, 148, 180, 253, 21, 1 }, },
+      { { 220, 29, 107, 96, 189, 237, 0 },
+        { 109, 175, 245, 17, 118, 161, 1 },
+        { 91, 222, 131, 107, 92, 29, 1 },
+        { 194, 183, 68, 87, 250, 219, 0 }, },
+      { { 222, 26, 217, 103, 197, 109, 0 },
+        { 165, 247, 117, 83, 241, 40, 1 },
+        { 91, 81, 243, 77, 172, 61, 1 },
+        { 138, 71, 229, 87, 119, 210, 1 }, },
+      { { 221, 114, 161, 214, 214, 204, 1 },
+        { 23, 27, 230, 183, 241, 57, 0 },
+        { 153, 181, 181, 194, 167, 93, 1 },
+        { 78, 71, 246, 179, 236, 116, 0 }, },
+      { { 221, 116, 213, 91, 237, 200, 1 },
+        { 95, 91, 119, 71, 240, 182, 0 },
+        { 137, 219, 237, 85, 151, 93, 1 },
+        { 54, 135, 241, 119, 109, 125, 0 }, },
+      { { 221, 134, 26, 161, 4, 19, 1 },
+        { 99, 102, 12, 192, 90, 120, 0 },
+        { 228, 16, 66, 172, 48, 221, 1 },
+        { 15, 45, 1, 152, 51, 99, 0 }, },
+      { { 223, 175, 27, 5, 181, 189, 1 },
+        { 235, 206, 54, 81, 127, 121, 1 },
+        { 222, 214, 208, 108, 122, 253, 1 },
+        { 207, 127, 69, 54, 57, 235, 1 }, },
+      { { 222, 176, 237, 214, 204, 22, 1 },
+        { 179, 19, 239, 147, 217, 228, 0 },
+        { 180, 25, 181, 219, 134, 189, 1 },
+        { 19, 205, 228, 251, 228, 102, 1 }, },
+      { { 223, 230, 10, 66, 93, 241, 0 },
+        { 229, 30, 86, 4, 218, 249, 1 },
+        { 71, 221, 33, 40, 51, 253, 1 },
+        { 207, 173, 144, 53, 60, 83, 1 }, },
+      { { 221, 251, 88, 81, 243, 143, 0 },
+        { 57, 223, 127, 116, 60, 57, 0 },
+        { 120, 231, 197, 13, 111, 221, 1 },
+        { 78, 30, 23, 127, 125, 206, 0 }, },
+      { { 227, 22, 68, 69, 140, 160, 0 },
+        { 192, 9, 97, 72, 81, 188, 1 },
+        { 2, 152, 209, 17, 52, 99, 1 },
+        { 158, 197, 9, 67, 72, 1, 1 }, },
+      { { 226, 26, 171, 99, 248, 21, 1 },
+        { 170, 181, 224, 91, 146, 233, 0 },
+        { 212, 15, 227, 106, 172, 35, 1 },
+        { 75, 164, 237, 3, 214, 170, 1 }, },
+      { { 226, 90, 168, 144, 16, 221, 1 },
+        { 182, 141, 128, 158, 48, 105, 0 },
+        { 221, 132, 4, 138, 173, 35, 1 },
+        { 75, 6, 60, 128, 216, 182, 1 }, },
+      { { 224, 126, 198, 224, 106, 118, 1 },
+        { 78, 177, 75, 190, 18, 236, 1 },
+        { 183, 43, 3, 177, 191, 3, 1 },
+        { 155, 164, 62, 233, 70, 185, 0 }, },
+      { { 225, 117, 204, 107, 230, 146, 0 },
+        { 104, 57, 107, 110, 212, 118, 0 },
+        { 36, 179, 235, 25, 215, 67, 1 },
+        { 55, 21, 187, 107, 78, 11, 0 }, },
+      { { 224, 221, 231, 62, 185, 106, 0 },
+        { 92, 161, 185, 15, 191, 167, 1 },
+        { 43, 78, 190, 115, 221, 131, 1 },
+        { 242, 254, 248, 78, 194, 157, 0 }, },
+      { { 231, 26, 89, 61, 43, 68, 0 },
+        { 189, 225, 17, 121, 17, 186, 0 },
+        { 17, 106, 94, 77, 44, 115, 1 },
+        { 46, 196, 79, 68, 67, 222, 1 }, },
+      { { 230, 61, 186, 78, 33, 23, 0 },
+        { 233, 197, 218, 26, 151, 98, 0 },
+        { 116, 66, 57, 46, 222, 51, 1 },
+        { 35, 116, 172, 45, 209, 203, 1 }, },
+      { { 231, 80, 110, 107, 241, 111, 0 },
+        { 173, 53, 249, 92, 178, 55, 1 },
+        { 123, 71, 235, 59, 5, 115, 1 },
+        { 246, 38, 157, 79, 214, 90, 1 }, },
+      { { 229, 83, 212, 72, 59, 179, 0 },
+        { 9, 77, 89, 46, 20, 255, 1 },
+        { 102, 238, 9, 21, 229, 83, 1 },
+        { 255, 148, 58, 77, 89, 72, 0 }, },
+      { { 228, 120, 9, 177, 15, 166, 1 },
+        { 51, 169, 26, 253, 80, 160, 1 },
+        { 178, 248, 70, 200, 15, 19, 1 },
+        { 130, 133, 95, 172, 74, 230, 0 }, },
+      { { 229, 122, 161, 185, 186, 74, 1 },
+        { 31, 161, 170, 239, 48, 187, 0 },
+        { 169, 46, 206, 194, 175, 83, 1 },
+        { 110, 134, 123, 170, 194, 252, 0 }, },
+      { { 231, 124, 180, 146, 88, 174, 1 },
+        { 211, 217, 138, 158, 176, 181, 1 },
+        { 186, 141, 36, 150, 159, 115, 1 },
+        { 214, 134, 188, 168, 205, 229, 1 }, },
+      { { 230, 164, 245, 240, 132, 66, 1 },
+        { 215, 96, 235, 139, 88, 36, 0 },
+        { 161, 16, 135, 215, 146, 179, 1 },
+        { 18, 13, 104, 235, 131, 117, 1 }, },
+      { { 229, 213, 42, 118, 142, 25, 1 },
+        { 115, 37, 224, 44, 255, 240, 0 },
+        { 204, 56, 183, 42, 85, 211, 1 },
+        { 7, 255, 154, 3, 210, 103, 0 }, },
+      { { 231, 215, 202, 210, 228, 123, 1 },
+        { 255, 21, 105, 142, 254, 120, 1 },
+        { 239, 19, 165, 169, 245, 243, 1 },
+        { 143, 63, 184, 203, 84, 127, 1 }, },
+      { { 228, 239, 89, 211, 239, 61, 1 },
+        { 123, 212, 115, 253, 252, 232, 1 },
+        { 222, 123, 229, 205, 123, 147, 1 },
+        { 139, 159, 223, 231, 21, 239, 0 }, },
+      { { 235, 27, 228, 239, 142, 205, 0 },
+        { 132, 175, 225, 250, 245, 190, 0 },
+        { 89, 184, 251, 147, 236, 107, 1 },
+        { 62, 215, 175, 195, 250, 144, 1 }, },
+      { { 233, 50, 9, 4, 85, 129, 1 },
+        { 34, 31, 18, 9, 81, 57, 0 },
+        { 192, 213, 16, 72, 38, 75, 1 },
+        { 78, 69, 72, 36, 124, 34, 0 }, },
+      { { 235, 52, 254, 217, 172, 58, 1 },
+        { 250, 67, 235, 202, 114, 246, 1 },
+        { 174, 26, 205, 191, 150, 107, 1 },
+        { 183, 167, 41, 235, 225, 47, 1 }, },
+      { { 234, 78, 19, 245, 78, 30, 0 },
+        { 208, 242, 72, 253, 115, 232, 0 },
+        { 60, 57, 87, 228, 57, 43, 1 },
+        { 11, 231, 95, 137, 39, 133, 1 }, },
+      { { 233, 176, 103, 32, 6, 254, 0 },
+        { 4, 43, 139, 57, 122, 116, 1 },
+        { 63, 176, 2, 115, 6, 203, 1 },
+        { 151, 47, 78, 104, 234, 16, 0 }, },
+      { { 234, 213, 177, 80, 109, 191, 0 },
+        { 216, 95, 216, 31, 124, 224, 1 },
+        { 126, 219, 5, 70, 213, 171, 1 },
+        { 131, 159, 124, 13, 253, 13, 1 }, },
+      { { 239, 10, 161, 134, 54, 174, 0 },
+        { 137, 138, 136, 187, 241, 57, 1 },
+        { 58, 182, 48, 194, 168, 123, 1 },
+        { 206, 71, 238, 136, 168, 200, 1 }, },
+      { { 237, 54, 239, 15, 39, 238, 1 },
+        { 111, 11, 155, 123, 243, 62, 1 },
+        { 187, 242, 120, 123, 182, 91, 1 },
+        { 190, 103, 239, 108, 232, 123, 0 }, },
+      { { 237, 74, 130, 29, 33, 213, 0 },
+        { 29, 142, 16, 94, 19, 122, 0 },
+        { 85, 194, 92, 32, 169, 91, 1 },
+        { 47, 100, 61, 4, 56, 220, 0 }, },
+      { { 236, 96, 189, 109, 140, 6, 0 },
+        { 33, 98, 234, 95, 81, 166, 0 },
+        { 48, 24, 219, 94, 131, 27, 1 },
+        { 50, 197, 125, 43, 163, 66, 0 }, },
+      { { 239, 130, 202, 100, 252, 71, 0 },
+        { 173, 54, 105, 26, 91, 185, 0 },
+        { 113, 31, 147, 41, 160, 251, 1 },
+        { 78, 237, 44, 75, 54, 90, 1 }, },
+      { { 238, 161, 127, 189, 151, 92, 0 },
+        { 181, 98, 179, 249, 127, 103, 0 },
+        { 29, 116, 222, 255, 66, 187, 1 },
+        { 115, 127, 79, 230, 163, 86, 1 }, },
+      { { 238, 209, 152, 137, 82, 229, 1 },
+        { 167, 95, 0, 254, 28, 35, 1 },
+        { 211, 165, 72, 140, 197, 187, 1 },
+        { 226, 28, 63, 128, 125, 114, 1 }, },
+      { { 241, 9, 85, 233, 4, 138, 1 },
+        { 2, 232, 77, 201, 116, 54, 0 },
+        { 168, 144, 75, 213, 72, 71, 1 },
+        { 54, 23, 73, 217, 11, 160, 0 }, },
+      { { 243, 42, 138, 178, 12, 104, 1 },
+        { 182, 160, 6, 138, 242, 184, 1 },
+        { 139, 24, 38, 168, 170, 103, 1 },
+        { 142, 167, 168, 176, 2, 182, 1 }, },
+      { { 243, 71, 148, 129, 100, 1, 1 },
+        { 202, 84, 4, 206, 84, 60, 0 },
+        { 192, 19, 64, 148, 241, 103, 1 },
+        { 30, 21, 57, 144, 21, 41, 1 }, },
+      { { 243, 136, 79, 37, 132, 41, 1 },
+        { 162, 164, 37, 73, 123, 52, 1 },
+        { 202, 16, 210, 121, 8, 231, 1 },
+        { 150, 111, 73, 82, 18, 162, 1 }, },
+      { { 240, 162, 31, 6, 126, 77, 1 },
+        { 46, 84, 6, 57, 251, 173, 0 },
+        { 217, 63, 48, 124, 34, 135, 1 },
+        { 90, 239, 206, 48, 21, 58, 0 }, },
+      { { 243, 170, 11, 255, 165, 205, 0 },
+        { 188, 172, 118, 217, 251, 58, 0 },
+        { 89, 210, 255, 232, 42, 231, 1 },
+        { 46, 111, 205, 183, 26, 158, 1 }, },
+      { { 240, 175, 124, 121, 142, 228, 0 },
+        { 116, 232, 231, 120, 92, 174, 1 },
+        { 19, 184, 207, 31, 122, 135, 1 },
+        { 186, 157, 15, 115, 139, 151, 0 }, },
+      { { 240, 217, 16, 212, 202, 31, 1 },
+        { 18, 213, 108, 188, 61, 224, 0 },
+        { 252, 41, 149, 132, 77, 135, 1 },
+        { 3, 222, 30, 155, 85, 164, 0 }, },
+      { { 245, 75, 179, 178, 85, 245, 1 },
+        { 23, 252, 148, 159, 214, 121, 1 },
+        { 215, 213, 38, 230, 233, 87, 1 },
+        { 207, 53, 252, 148, 159, 244, 0 }, },
+      { { 246, 81, 96, 41, 26, 234, 1 },
+        { 135, 41, 141, 108, 52, 163, 1 },
+        { 171, 172, 74, 3, 69, 55, 1 },
+        { 226, 150, 27, 88, 202, 112, 1 }, },
+      { { 246, 117, 82, 145, 217, 185, 1 },
+        { 211, 93, 55, 204, 54, 225, 1 },
+        { 206, 205, 196, 165, 87, 55, 1 },
+        { 195, 182, 25, 246, 93, 101, 1 }, },
+      { { 245, 114, 198, 173, 192, 65, 0 },
+        { 5, 53, 39, 206, 19, 62, 0 },
+        { 65, 1, 218, 177, 167, 87, 1 },
+        { 62, 100, 57, 242, 86, 80, 0 }, },
+      { { 247, 124, 210, 85, 227, 70, 0 },
+        { 221, 209, 127, 126, 19, 48, 0 },
+        { 49, 99, 213, 37, 159, 119, 1 },
+        { 6, 100, 63, 127, 69, 221, 1 }, },
+      { { 246, 132, 78, 31, 171, 28, 0 },
+        { 249, 0, 53, 120, 187, 230, 0 },
+        { 28, 106, 252, 57, 16, 183, 1 },
+        { 51, 238, 143, 86, 0, 79, 1 }, },
+      { { 248, 61, 136, 57, 165, 1, 1 },
+        { 122, 167, 54, 74, 84, 34, 0 },
+        { 192, 82, 206, 8, 222, 15, 1 },
+        { 34, 21, 41, 54, 114, 175, 0 }, },
+      { { 251, 54, 195, 223, 220, 215, 1 },
+        { 214, 31, 111, 219, 211, 251, 0 },
+        { 245, 157, 253, 225, 182, 111, 1 },
+        { 111, 229, 237, 251, 124, 53, 1 }, },
+      { { 248, 76, 172, 3, 76, 20, 1 },
+        { 98, 146, 132, 94, 208, 228, 0 },
+        { 148, 25, 96, 26, 153, 15, 1 },
+        { 19, 133, 189, 16, 164, 163, 0 }, },
+      { { 251, 160, 208, 185, 211, 75, 1 },
+        { 150, 118, 63, 234, 56, 51, 0 },
+        { 233, 101, 206, 133, 130, 239, 1 },
+        { 102, 14, 43, 254, 55, 52, 1 }, },
+      { { 250, 195, 132, 204, 125, 54, 1 },
+        { 138, 18, 92, 158, 93, 239, 1 },
+        { 182, 95, 25, 144, 225, 175, 1 },
+        { 251, 221, 60, 157, 36, 40, 1 }, },
+      { { 249, 231, 61, 60, 30, 97, 1 },
+        { 118, 102, 134, 45, 93, 191, 1 },
+        { 195, 60, 30, 94, 115, 207, 1 },
+        { 254, 221, 90, 48, 179, 55, 0 }, },
+      { { 248, 255, 88, 101, 6, 119, 1 },
+        { 102, 231, 79, 124, 93, 104, 1 },
+        { 247, 48, 83, 13, 127, 143, 1 },
+        { 139, 93, 31, 121, 115, 179, 0 }, },
+      { { 253, 11, 219, 85, 100, 56, 1 },
+        { 59, 210, 69, 75, 119, 120, 1 },
+        { 142, 19, 85, 109, 232, 95, 1 },
+        { 143, 119, 105, 81, 37, 238, 0 }, },
+      { { 253, 22, 174, 228, 229, 62, 1 },
+        { 107, 51, 252, 154, 115, 124, 1 },
+        { 190, 83, 147, 186, 180, 95, 1 },
+        { 159, 103, 44, 159, 230, 107, 0 }, },
+      { { 254, 73, 163, 120, 194, 52, 0 },
+        { 145, 178, 228, 63, 22, 98, 1 },
+        { 22, 33, 143, 98, 201, 63, 1 },
+        { 163, 52, 126, 19, 166, 196, 1 }, },
+      { { 253, 132, 226, 198, 107, 168, 1 },
+        { 75, 26, 213, 170, 187, 176, 1 },
+        { 138, 235, 49, 163, 144, 223, 1 },
+        { 134, 238, 170, 213, 172, 105, 0 }, },
+      { { 252, 149, 79, 148, 230, 207, 0 },
+        { 125, 31, 45, 185, 127, 36, 0 },
+        { 121, 179, 148, 249, 84, 159, 1 },
+        { 18, 127, 78, 218, 124, 95, 0 }, },
+      { { 254, 165, 35, 88, 48, 164, 1 },
+        { 219, 10, 198, 25, 30, 35, 1 },
+        { 146, 134, 13, 98, 82, 191, 1 },
+        { 226, 60, 76, 49, 168, 109, 1 }, },
+      { { 254, 168, 217, 255, 176, 118, 0 },
+        { 189, 226, 111, 219, 153, 99, 1 },
+        { 55, 6, 255, 205, 138, 191, 1 },
+        { 227, 76, 237, 251, 35, 222, 1 }, },
+      { { 255, 195, 135, 255, 162, 252, 1 },
+        { 159, 42, 100, 255, 191, 126, 1 },
+        { 159, 162, 255, 240, 225, 255, 1 },
+        { 191, 126, 255, 147, 42, 124, 1 }, },
+      { { 95, 114, 124, 241, 17, 248, 0 },
+        { 181, 107, 215, 196, 48, 93, 1 },
+        { 15, 196, 71, 159, 39, 125, 0 },
+        { 221, 6, 17, 245, 235, 86, 1 }, },
+      { { 135, 81, 63, 164, 61, 190, 1 },
+        { 171, 105, 152, 149, 103, 245, 1 },
+        { 190, 222, 18, 254, 69, 112, 1 },
+        { 215, 243, 84, 140, 203, 106, 1 }, },
+      { { 198, 147, 77, 53, 31, 189, 0 },
+        { 177, 45, 17, 113, 125, 237, 1 },
+        { 94, 252, 86, 89, 100, 177, 1 },
+        { 219, 223, 71, 68, 90, 70, 1 }, },
+      { { 231, 230, 150, 226, 6, 159, 1 },
+        { 195, 108, 74, 190, 250, 124, 0 },
+        { 252, 176, 35, 180, 179, 243, 1 },
+        { 31, 47, 190, 169, 27, 97, 1 }, }, };
+}
diff --git a/modules/objdetect/test/test_arucodetection.cpp b/modules/objdetect/test/test_arucodetection.cpp
new file mode 100644 (file)
index 0000000..aee147c
--- /dev/null
@@ -0,0 +1,704 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+#include "test_precomp.hpp"
+#include "opencv2/objdetect/aruco_detector.hpp"
+#include "opencv2/calib3d.hpp"
+
+namespace opencv_test { namespace {
+
+/**
+ * @brief Draw 2D synthetic markers and detect them
+ */
+class CV_ArucoDetectionSimple : public cvtest::BaseTest {
+    public:
+    CV_ArucoDetectionSimple();
+
+    protected:
+    void run(int);
+};
+
+
+CV_ArucoDetectionSimple::CV_ArucoDetectionSimple() {}
+
+
+void CV_ArucoDetectionSimple::run(int) {
+    aruco::ArucoDetector detector(aruco::getPredefinedDictionary(aruco::DICT_6X6_250));
+
+    // 20 images
+    for(int i = 0; i < 20; i++) {
+
+        const int markerSidePixels = 100;
+        int imageSize = markerSidePixels * 2 + 3 * (markerSidePixels / 2);
+
+        // draw synthetic image and store marker corners and ids
+        vector<vector<Point2f> > groundTruthCorners;
+        vector<int> groundTruthIds;
+        Mat img = Mat(imageSize, imageSize, CV_8UC1, Scalar::all(255));
+        for(int y = 0; y < 2; y++) {
+            for(int x = 0; x < 2; x++) {
+                Mat marker;
+                int id = i * 4 + y * 2 + x;
+                aruco::generateImageMarker(detector.getDictionary(), id, markerSidePixels, marker);
+                Point2f firstCorner =
+                    Point2f(markerSidePixels / 2.f + x * (1.5f * markerSidePixels),
+                            markerSidePixels / 2.f + y * (1.5f * markerSidePixels));
+                Mat aux = img.colRange((int)firstCorner.x, (int)firstCorner.x + markerSidePixels)
+                              .rowRange((int)firstCorner.y, (int)firstCorner.y + markerSidePixels);
+                marker.copyTo(aux);
+                groundTruthIds.push_back(id);
+                groundTruthCorners.push_back(vector<Point2f>());
+                groundTruthCorners.back().push_back(firstCorner);
+                groundTruthCorners.back().push_back(firstCorner + Point2f(markerSidePixels - 1, 0));
+                groundTruthCorners.back().push_back(
+                    firstCorner + Point2f(markerSidePixels - 1, markerSidePixels - 1));
+                groundTruthCorners.back().push_back(firstCorner + Point2f(0, markerSidePixels - 1));
+            }
+        }
+        if(i % 2 == 1) img.convertTo(img, CV_8UC3);
+
+        // detect markers
+        vector<vector<Point2f> > corners;
+        vector<int> ids;
+
+        detector.detectMarkers(img, corners, ids);
+
+        // check detection results
+        for(unsigned int m = 0; m < groundTruthIds.size(); m++) {
+            int idx = -1;
+            for(unsigned int k = 0; k < ids.size(); k++) {
+                if(groundTruthIds[m] == ids[k]) {
+                    idx = (int)k;
+                    break;
+                }
+            }
+            if(idx == -1) {
+                ts->printf(cvtest::TS::LOG, "Marker not detected");
+                ts->set_failed_test_info(cvtest::TS::FAIL_MISMATCH);
+                return;
+            }
+
+            for(int c = 0; c < 4; c++) {
+                double dist = cv::norm(groundTruthCorners[m][c] - corners[idx][c]);  // TODO cvtest
+                if(dist > 0.001) {
+                    ts->printf(cvtest::TS::LOG, "Incorrect marker corners position");
+                    ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+                    return;
+                }
+            }
+        }
+    }
+}
+
+
+static double deg2rad(double deg) { return deg * CV_PI / 180.; }
+
+/**
+ * @brief Get rvec and tvec from yaw, pitch and distance
+ */
+static void getSyntheticRT(double yaw, double pitch, double distance, Mat &rvec, Mat &tvec) {
+
+    rvec = Mat(3, 1, CV_64FC1);
+    tvec = Mat(3, 1, CV_64FC1);
+
+    // Rvec
+    // first put the Z axis aiming to -X (like the camera axis system)
+    Mat rotZ(3, 1, CV_64FC1);
+    rotZ.ptr<double>(0)[0] = 0;
+    rotZ.ptr<double>(0)[1] = 0;
+    rotZ.ptr<double>(0)[2] = -0.5 * CV_PI;
+
+    Mat rotX(3, 1, CV_64FC1);
+    rotX.ptr<double>(0)[0] = 0.5 * CV_PI;
+    rotX.ptr<double>(0)[1] = 0;
+    rotX.ptr<double>(0)[2] = 0;
+
+    Mat camRvec, camTvec;
+    composeRT(rotZ, Mat(3, 1, CV_64FC1, Scalar::all(0)), rotX, Mat(3, 1, CV_64FC1, Scalar::all(0)),
+              camRvec, camTvec);
+
+    // now pitch and yaw angles
+    Mat rotPitch(3, 1, CV_64FC1);
+    rotPitch.ptr<double>(0)[0] = 0;
+    rotPitch.ptr<double>(0)[1] = pitch;
+    rotPitch.ptr<double>(0)[2] = 0;
+
+    Mat rotYaw(3, 1, CV_64FC1);
+    rotYaw.ptr<double>(0)[0] = yaw;
+    rotYaw.ptr<double>(0)[1] = 0;
+    rotYaw.ptr<double>(0)[2] = 0;
+
+    composeRT(rotPitch, Mat(3, 1, CV_64FC1, Scalar::all(0)), rotYaw,
+              Mat(3, 1, CV_64FC1, Scalar::all(0)), rvec, tvec);
+
+    // compose both rotations
+    composeRT(camRvec, Mat(3, 1, CV_64FC1, Scalar::all(0)), rvec,
+              Mat(3, 1, CV_64FC1, Scalar::all(0)), rvec, tvec);
+
+    // Tvec, just move in z (camera) direction the specific distance
+    tvec.ptr<double>(0)[0] = 0.;
+    tvec.ptr<double>(0)[1] = 0.;
+    tvec.ptr<double>(0)[2] = distance;
+}
+
+/**
+ * @brief Create a synthetic image of a marker with perspective
+ */
+static Mat projectMarker(const aruco::Dictionary &dictionary, int id, Mat cameraMatrix, double yaw,
+                         double pitch, double distance, Size imageSize, int markerBorder,
+                         vector<Point2f> &corners, int encloseMarker=0) {
+
+    // canonical image
+    Mat marker, markerImg;
+    const int markerSizePixels = 100;
+
+    aruco::generateImageMarker(dictionary, id, markerSizePixels, marker, markerBorder);
+    marker.copyTo(markerImg);
+
+    if(encloseMarker){ //to enclose the marker
+        int enclose = int(marker.rows/4);
+        markerImg = Mat::zeros(marker.rows+(2*enclose), marker.cols+(enclose*2), CV_8UC1);
+
+        Mat field= markerImg.rowRange(int(enclose), int(markerImg.rows-enclose))
+                            .colRange(int(0), int(markerImg.cols));
+        field.setTo(255);
+        field= markerImg.rowRange(int(0), int(markerImg.rows))
+                            .colRange(int(enclose), int(markerImg.cols-enclose));
+        field.setTo(255);
+
+        field = markerImg(Rect(enclose,enclose,marker.rows,marker.cols));
+        marker.copyTo(field);
+    }
+
+    // get rvec and tvec for the perspective
+    Mat rvec, tvec;
+    getSyntheticRT(yaw, pitch, distance, rvec, tvec);
+
+    const float markerLength = 0.05f;
+    vector<Point3f> markerObjPoints;
+    markerObjPoints.push_back(Point3f(-markerLength / 2.f, +markerLength / 2.f, 0));
+    markerObjPoints.push_back(markerObjPoints[0] + Point3f(markerLength, 0, 0));
+    markerObjPoints.push_back(markerObjPoints[0] + Point3f(markerLength, -markerLength, 0));
+    markerObjPoints.push_back(markerObjPoints[0] + Point3f(0, -markerLength, 0));
+
+    // project markers and draw them
+    Mat distCoeffs(5, 1, CV_64FC1, Scalar::all(0));
+    projectPoints(markerObjPoints, rvec, tvec, cameraMatrix, distCoeffs, corners);
+
+    vector<Point2f> originalCorners;
+    originalCorners.push_back(Point2f(0+float(encloseMarker*markerSizePixels/4), 0+float(encloseMarker*markerSizePixels/4)));
+    originalCorners.push_back(originalCorners[0]+Point2f((float)markerSizePixels, 0));
+    originalCorners.push_back(originalCorners[0]+Point2f((float)markerSizePixels, (float)markerSizePixels));
+    originalCorners.push_back(originalCorners[0]+Point2f(0, (float)markerSizePixels));
+
+    Mat transformation = getPerspectiveTransform(originalCorners, corners);
+
+    Mat img(imageSize, CV_8UC1, Scalar::all(255));
+    Mat aux;
+    const char borderValue = 127;
+    warpPerspective(markerImg, aux, transformation, imageSize, INTER_NEAREST, BORDER_CONSTANT,
+                    Scalar::all(borderValue));
+
+    // copy only not-border pixels
+    for(int y = 0; y < aux.rows; y++) {
+        for(int x = 0; x < aux.cols; x++) {
+            if(aux.at<unsigned char>(y, x) == borderValue) continue;
+            img.at<unsigned char>(y, x) = aux.at<unsigned char>(y, x);
+        }
+    }
+
+    return img;
+}
+
+enum class ArucoAlgParams
+{
+    USE_DEFAULT = 0,
+    USE_APRILTAG=1,             /// Detect marker candidates :: using AprilTag
+    DETECT_INVERTED_MARKER,     /// Check if there is a white marker
+    USE_ARUCO3                  /// Check if aruco3 should be used
+};
+
+
+/**
+ * @brief Draws markers in perspective and detect them
+ */
+class CV_ArucoDetectionPerspective : public cvtest::BaseTest {
+    public:
+    CV_ArucoDetectionPerspective(ArucoAlgParams arucoAlgParam) : arucoAlgParams(arucoAlgParam) {}
+
+    protected:
+    void run(int);
+    ArucoAlgParams arucoAlgParams;
+};
+
+
+void CV_ArucoDetectionPerspective::run(int) {
+
+    int iter = 0;
+    int szEnclosed = 0;
+    Mat cameraMatrix = Mat::eye(3, 3, CV_64FC1);
+    Size imgSize(500, 500);
+    cameraMatrix.at<double>(0, 0) = cameraMatrix.at<double>(1, 1) = 650;
+    cameraMatrix.at<double>(0, 2) = imgSize.width / 2;
+    cameraMatrix.at<double>(1, 2) = imgSize.height / 2;
+    aruco::DetectorParameters params;
+    params.minDistanceToBorder = 1;
+    aruco::ArucoDetector detector(aruco::getPredefinedDictionary(aruco::DICT_6X6_250), params);
+
+    // detect from different positions
+    for(double distance = 0.1; distance < 0.7; distance += 0.2) {
+        for(int pitch = 0; pitch < 360; pitch += (distance == 0.1? 60:180)) {
+            for(int yaw = 70; yaw <= 120; yaw += 40){
+                int currentId = iter % 250;
+                int markerBorder = iter % 2 + 1;
+                iter++;
+                vector<Point2f> groundTruthCorners;
+                aruco::DetectorParameters detectorParameters = params;
+                detectorParameters.markerBorderBits = markerBorder;
+
+                /// create synthetic image
+                Mat img=
+                    projectMarker(detector.getDictionary(), currentId, cameraMatrix, deg2rad(yaw), deg2rad(pitch),
+                                      distance, imgSize, markerBorder, groundTruthCorners, szEnclosed);
+                // marker :: Inverted
+                if(ArucoAlgParams::DETECT_INVERTED_MARKER == arucoAlgParams){
+                    img = ~img;
+                    detectorParameters.detectInvertedMarker = true;
+                }
+
+                if(ArucoAlgParams::USE_APRILTAG == arucoAlgParams){
+                    detectorParameters.cornerRefinementMethod = aruco::CORNER_REFINE_APRILTAG;
+                }
+
+                if (ArucoAlgParams::USE_ARUCO3 == arucoAlgParams) {
+                    detectorParameters.useAruco3Detection = true;
+                    detectorParameters.cornerRefinementMethod = aruco::CORNER_REFINE_SUBPIX;
+                }
+                detector.setDetectorParameters(detectorParameters);
+
+                // detect markers
+                vector<vector<Point2f> > corners;
+                vector<int> ids;
+                detector.detectMarkers(img, corners, ids);
+
+                // check results
+                if(ids.size() != 1 || (ids.size() == 1 && ids[0] != currentId)) {
+                    if(ids.size() != 1)
+                        ts->printf(cvtest::TS::LOG, "Incorrect number of detected markers");
+                    else
+                        ts->printf(cvtest::TS::LOG, "Incorrect marker id");
+                    ts->set_failed_test_info(cvtest::TS::FAIL_MISMATCH);
+                    return;
+                }
+                for(int c = 0; c < 4; c++) {
+                    double dist = cv::norm(groundTruthCorners[c] - corners[0][c]);  // TODO cvtest
+                    if(dist > 5) {
+                            ts->printf(cvtest::TS::LOG, "Incorrect marker corners position");
+                            ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+                            return;
+                    }
+                }
+            }
+        }
+        // change the state :: to detect an enclosed inverted marker
+        if(ArucoAlgParams::DETECT_INVERTED_MARKER == arucoAlgParams && distance == 0.1){
+            distance -= 0.1;
+            szEnclosed++;
+        }
+    }
+}
+
+
+/**
+ * @brief Check max and min size in marker detection parameters
+ */
+class CV_ArucoDetectionMarkerSize : public cvtest::BaseTest {
+    public:
+    CV_ArucoDetectionMarkerSize();
+
+    protected:
+    void run(int);
+};
+
+
+CV_ArucoDetectionMarkerSize::CV_ArucoDetectionMarkerSize() {}
+
+
+void CV_ArucoDetectionMarkerSize::run(int) {
+    aruco::DetectorParameters params;
+    aruco::ArucoDetector detector(aruco::getPredefinedDictionary(aruco::DICT_6X6_250), params);
+    int markerSide = 20;
+    int imageSize = 200;
+
+    // 10 cases
+    for(int i = 0; i < 10; i++) {
+        Mat marker;
+        int id = 10 + i * 20;
+
+        // create synthetic image
+        Mat img = Mat(imageSize, imageSize, CV_8UC1, Scalar::all(255));
+        aruco::generateImageMarker(detector.getDictionary(), id, markerSide, marker);
+        Mat aux = img.colRange(30, 30 + markerSide).rowRange(50, 50 + markerSide);
+        marker.copyTo(aux);
+
+        vector<vector<Point2f> > corners;
+        vector<int> ids;
+
+        // set a invalid minMarkerPerimeterRate
+        aruco::DetectorParameters detectorParameters = params;
+        detectorParameters.minMarkerPerimeterRate = min(4., (4. * markerSide) / float(imageSize) + 0.1);
+        detector.setDetectorParameters(detectorParameters);
+        detector.detectMarkers(img, corners, ids);
+        if(corners.size() != 0) {
+            ts->printf(cvtest::TS::LOG, "Error in DetectorParameters::minMarkerPerimeterRate");
+            ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+            return;
+        }
+
+        // set an valid minMarkerPerimeterRate
+        detectorParameters = params;
+        detectorParameters.minMarkerPerimeterRate = max(0., (4. * markerSide) / float(imageSize) - 0.1);
+        detector.setDetectorParameters(detectorParameters);
+        detector.detectMarkers(img, corners, ids);
+        if(corners.size() != 1 || (corners.size() == 1 && ids[0] != id)) {
+            ts->printf(cvtest::TS::LOG, "Error in DetectorParameters::minMarkerPerimeterRate");
+            ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+            return;
+        }
+
+        // set a invalid maxMarkerPerimeterRate
+        detectorParameters = params;
+        detectorParameters.maxMarkerPerimeterRate = min(4., (4. * markerSide) / float(imageSize) - 0.1);
+        detector.setDetectorParameters(detectorParameters);
+        detector.detectMarkers(img, corners, ids);
+        if(corners.size() != 0) {
+            ts->printf(cvtest::TS::LOG, "Error in DetectorParameters::maxMarkerPerimeterRate");
+            ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+            return;
+        }
+
+        // set an valid maxMarkerPerimeterRate
+        detectorParameters = params;
+        detectorParameters.maxMarkerPerimeterRate = max(0., (4. * markerSide) / float(imageSize) + 0.1);
+        detector.setDetectorParameters(detectorParameters);
+        detector.detectMarkers(img, corners, ids);
+        if(corners.size() != 1 || (corners.size() == 1 && ids[0] != id)) {
+            ts->printf(cvtest::TS::LOG, "Error in DetectorParameters::maxMarkerPerimeterRate");
+            ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+            return;
+        }
+    }
+}
+
+
+/**
+ * @brief Check error correction in marker bits
+ */
+class CV_ArucoBitCorrection : public cvtest::BaseTest {
+    public:
+    CV_ArucoBitCorrection();
+
+    protected:
+    void run(int);
+};
+
+
+CV_ArucoBitCorrection::CV_ArucoBitCorrection() {}
+
+
+void CV_ArucoBitCorrection::run(int) {
+
+    aruco::Dictionary dictionary1 = aruco::getPredefinedDictionary(aruco::DICT_6X6_250);
+    aruco::Dictionary dictionary2 = aruco::getPredefinedDictionary(aruco::DICT_6X6_250);
+    aruco::DetectorParameters params;
+    aruco::ArucoDetector detector1(dictionary1, params);
+    int markerSide = 50;
+    int imageSize = 150;
+
+    // 10 markers
+    for(int l = 0; l < 10; l++) {
+        Mat marker;
+        int id = 10 + l * 20;
+
+        Mat currentCodeBytes = dictionary1.bytesList.rowRange(id, id + 1);
+        aruco::DetectorParameters detectorParameters = detector1.getDetectorParameters();
+        // 5 valid cases
+        for(int i = 0; i < 5; i++) {
+            // how many bit errors (the error is low enough so it can be corrected)
+            detectorParameters.errorCorrectionRate = 0.2 + i * 0.1;
+            detector1.setDetectorParameters(detectorParameters);
+            int errors =
+                (int)std::floor(dictionary1.maxCorrectionBits * detector1.getDetectorParameters().errorCorrectionRate - 1.);
+
+            // create erroneous marker in currentCodeBits
+            Mat currentCodeBits =
+                aruco::Dictionary::getBitsFromByteList(currentCodeBytes, dictionary1.markerSize);
+            for(int e = 0; e < errors; e++) {
+                currentCodeBits.ptr<unsigned char>()[2 * e] =
+                    !currentCodeBits.ptr<unsigned char>()[2 * e];
+            }
+
+            // add erroneous marker to dictionary2 in order to create the erroneous marker image
+            Mat currentCodeBytesError = aruco::Dictionary::getByteListFromBits(currentCodeBits);
+            currentCodeBytesError.copyTo(dictionary2.bytesList.rowRange(id, id + 1));
+            Mat img = Mat(imageSize, imageSize, CV_8UC1, Scalar::all(255));
+            dictionary2.generateImageMarker(id, markerSide, marker);
+            Mat aux = img.colRange(30, 30 + markerSide).rowRange(50, 50 + markerSide);
+            marker.copyTo(aux);
+
+            // try to detect using original dictionary
+            vector<vector<Point2f> > corners;
+            vector<int> ids;
+            detector1.detectMarkers(img, corners, ids);
+            if(corners.size() != 1 || (corners.size() == 1 && ids[0] != id)) {
+                ts->printf(cvtest::TS::LOG, "Error in bit correction");
+                ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+                return;
+            }
+        }
+
+        // 5 invalid cases
+        for(int i = 0; i < 5; i++) {
+            // how many bit errors (the error is too high to be corrected)
+            detectorParameters.errorCorrectionRate = 0.2 + i * 0.1;
+            detector1.setDetectorParameters(detectorParameters);
+            int errors =
+                (int)std::floor(dictionary1.maxCorrectionBits * detector1.getDetectorParameters().errorCorrectionRate + 1.);
+
+            // create erroneous marker in currentCodeBits
+            Mat currentCodeBits =
+                aruco::Dictionary::getBitsFromByteList(currentCodeBytes, dictionary1.markerSize);
+            for(int e = 0; e < errors; e++) {
+                currentCodeBits.ptr<unsigned char>()[2 * e] =
+                    !currentCodeBits.ptr<unsigned char>()[2 * e];
+            }
+
+            // dictionary3 is only composed by the modified marker (in its original form)
+            aruco::Dictionary _dictionary3 = aruco::Dictionary(
+                    dictionary2.bytesList.rowRange(id, id + 1).clone(),
+                    dictionary1.markerSize,
+                    dictionary1.maxCorrectionBits);
+            aruco::ArucoDetector detector3(_dictionary3, detector1.getDetectorParameters());
+            // add erroneous marker to dictionary2 in order to create the erroneous marker image
+            Mat currentCodeBytesError = aruco::Dictionary::getByteListFromBits(currentCodeBits);
+            currentCodeBytesError.copyTo(dictionary2.bytesList.rowRange(id, id + 1));
+            Mat img = Mat(imageSize, imageSize, CV_8UC1, Scalar::all(255));
+            dictionary2.generateImageMarker(id, markerSide, marker);
+            Mat aux = img.colRange(30, 30 + markerSide).rowRange(50, 50 + markerSide);
+            marker.copyTo(aux);
+
+            // try to detect using dictionary3, it should fail
+            vector<vector<Point2f> > corners;
+            vector<int> ids;
+            detector3.detectMarkers(img, corners, ids);
+            if(corners.size() != 0) {
+                ts->printf(cvtest::TS::LOG, "Error in DetectorParameters::errorCorrectionRate");
+                ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
+                return;
+            }
+        }
+    }
+}
+
+typedef CV_ArucoDetectionPerspective CV_AprilTagDetectionPerspective;
+typedef CV_ArucoDetectionPerspective CV_InvertedArucoDetectionPerspective;
+typedef CV_ArucoDetectionPerspective CV_Aruco3DetectionPerspective;
+
+TEST(CV_InvertedArucoDetectionPerspective, algorithmic) {
+    CV_InvertedArucoDetectionPerspective test(ArucoAlgParams::DETECT_INVERTED_MARKER);
+    test.safe_run();
+}
+
+TEST(CV_AprilTagDetectionPerspective, algorithmic) {
+    CV_AprilTagDetectionPerspective test(ArucoAlgParams::USE_APRILTAG);
+    test.safe_run();
+}
+
+TEST(CV_Aruco3DetectionPerspective, algorithmic) {
+    CV_Aruco3DetectionPerspective test(ArucoAlgParams::USE_ARUCO3);
+    test.safe_run();
+}
+
+TEST(CV_ArucoDetectionSimple, algorithmic) {
+    CV_ArucoDetectionSimple test;
+    test.safe_run();
+}
+
+TEST(CV_ArucoDetectionPerspective, algorithmic) {
+    CV_ArucoDetectionPerspective test(ArucoAlgParams::USE_DEFAULT);
+    test.safe_run();
+}
+
+TEST(CV_ArucoDetectionMarkerSize, algorithmic) {
+    CV_ArucoDetectionMarkerSize test;
+    test.safe_run();
+}
+
+TEST(CV_ArucoBitCorrection, algorithmic) {
+    CV_ArucoBitCorrection test;
+    test.safe_run();
+}
+
+TEST(CV_ArucoDetectMarkers, regression_3192)
+{
+    aruco::ArucoDetector detector(aruco::getPredefinedDictionary(aruco::DICT_4X4_50));
+    vector<int> markerIds;
+    vector<vector<Point2f> > markerCorners;
+    string imgPath = cvtest::findDataFile("aruco/regression_3192.png");
+    Mat image = imread(imgPath);
+    const size_t N = 2ull;
+    const int goldCorners[N][8] = { {345,120, 520,120, 520,295, 345,295}, {101,114, 270,112, 276,287, 101,287} };
+    const int goldCornersIds[N] = { 6, 4 };
+    map<int, const int*> mapGoldCorners;
+    for (size_t i = 0; i < N; i++)
+        mapGoldCorners[goldCornersIds[i]] = goldCorners[i];
+
+    detector.detectMarkers(image, markerCorners, markerIds);
+
+    ASSERT_EQ(N, markerIds.size());
+    for (size_t i = 0; i < N; i++)
+    {
+        int arucoId = markerIds[i];
+        ASSERT_EQ(4ull, markerCorners[i].size());
+        ASSERT_TRUE(mapGoldCorners.find(arucoId) != mapGoldCorners.end());
+        for (int j = 0; j < 4; j++)
+        {
+            EXPECT_NEAR(static_cast<float>(mapGoldCorners[arucoId][j * 2]), markerCorners[i][j].x, 1.f);
+            EXPECT_NEAR(static_cast<float>(mapGoldCorners[arucoId][j * 2 + 1]), markerCorners[i][j].y, 1.f);
+        }
+    }
+}
+
+TEST(CV_ArucoDetectMarkers, regression_2492)
+{
+    aruco::ArucoDetector detector(aruco::getPredefinedDictionary(aruco::DICT_5X5_50));
+    aruco::DetectorParameters detectorParameters = detector.getDetectorParameters();
+    detectorParameters.minMarkerDistanceRate = 0.026;
+    detector.setDetectorParameters(detectorParameters);
+    vector<int> markerIds;
+    vector<vector<Point2f> > markerCorners;
+    string imgPath = cvtest::findDataFile("aruco/regression_2492.png");
+    Mat image = imread(imgPath);
+    const size_t N = 8ull;
+    const int goldCorners[N][8] = { {179,139, 179,95, 223,95, 223,139}, {99,139, 99,95, 143,95, 143,139},
+                                    {19,139, 19,95, 63,95, 63,139},     {256,140, 256,93, 303,93, 303,140},
+                                    {256,62, 259,21, 300,23, 297,64},   {99,21, 143,17, 147,60, 103,64},
+                                    {69,61, 28,61, 14,21, 58,17},       {174,62, 182,13, 230,19, 223,68} };
+    const int goldCornersIds[N] = {13, 13, 13, 13, 1, 15, 14, 4};
+    map<int, vector<const int*> > mapGoldCorners;
+    for (size_t i = 0; i < N; i++)
+        mapGoldCorners[goldCornersIds[i]].push_back(goldCorners[i]);
+
+    detector.detectMarkers(image, markerCorners, markerIds);
+
+    ASSERT_EQ(N, markerIds.size());
+    for (size_t i = 0; i < N; i++)
+    {
+        int arucoId = markerIds[i];
+        ASSERT_EQ(4ull, markerCorners[i].size());
+        ASSERT_TRUE(mapGoldCorners.find(arucoId) != mapGoldCorners.end());
+        float totalDist = 8.f;
+        for (size_t k = 0ull; k < mapGoldCorners[arucoId].size(); k++)
+        {
+            float dist = 0.f;
+            for (int j = 0; j < 4; j++) // total distance up to 4 points
+            {
+                dist += abs(mapGoldCorners[arucoId][k][j * 2] - markerCorners[i][j].x);
+                dist += abs(mapGoldCorners[arucoId][k][j * 2 + 1] - markerCorners[i][j].y);
+            }
+            totalDist = min(totalDist, dist);
+        }
+        EXPECT_LT(totalDist, 8.f);
+    }
+}
+
+struct ArucoThreading: public testing::TestWithParam<aruco::CornerRefineMethod>
+{
+    struct NumThreadsSetter {
+        NumThreadsSetter(const int num_threads)
+        : original_num_threads_(getNumThreads()) {
+            setNumThreads(num_threads);
+        }
+
+        ~NumThreadsSetter() {
+            setNumThreads(original_num_threads_);
+        }
+     private:
+        int original_num_threads_;
+    };
+};
+
+TEST_P(ArucoThreading, number_of_threads_does_not_change_results)
+{
+    // We are not testing against different dictionaries
+    // As we are interested mostly in small images, smaller
+    // markers is better -> 4x4
+    aruco::ArucoDetector detector(aruco::getPredefinedDictionary(aruco::DICT_4X4_50));
+
+    // Height of the test image can be chosen quite freely
+    // We aim to test against small images as in those the
+    // number of threads has most effect
+    const int height_img = 20;
+    // Just to get nice white boarder
+    const int shift = height_img > 10 ? 5 : 1;
+    const int height_marker = height_img-2*shift;
+
+    // Create a test image
+    Mat img_marker;
+    aruco::generateImageMarker(detector.getDictionary(), 23, height_marker, img_marker, 1);
+
+    // Copy to bigger image to get a white border
+    Mat img(height_img, height_img, CV_8UC1, Scalar(255));
+    img_marker.copyTo(img(Rect(shift, shift, height_marker, height_marker)));
+
+    aruco::DetectorParameters detectorParameters = detector.getDetectorParameters();
+    detectorParameters.cornerRefinementMethod = GetParam();
+    detector.setDetectorParameters(detectorParameters);
+
+    vector<vector<Point2f> > original_corners;
+    vector<int> original_ids;
+    {
+        NumThreadsSetter thread_num_setter(1);
+        detector.detectMarkers(img, original_corners, original_ids);
+    }
+
+    ASSERT_EQ(original_ids.size(), 1ull);
+    ASSERT_EQ(original_corners.size(), 1ull);
+
+    int num_threads_to_test[] = { 2, 8, 16, 32, height_img-1, height_img, height_img+1};
+
+    for (size_t i_num_threads = 0; i_num_threads < sizeof(num_threads_to_test)/sizeof(int); ++i_num_threads) {
+        NumThreadsSetter thread_num_setter(num_threads_to_test[i_num_threads]);
+
+        vector<vector<Point2f> > corners;
+        vector<int> ids;
+        detector.detectMarkers(img, corners, ids);
+
+        // If we don't find any markers, the test is broken
+        ASSERT_EQ(ids.size(), 1ull);
+
+        // Make sure we got the same result as the first time
+        ASSERT_EQ(corners.size(), original_corners.size());
+        ASSERT_EQ(ids.size(), original_ids.size());
+        ASSERT_EQ(ids.size(), corners.size());
+        for (size_t i = 0; i < corners.size(); ++i) {
+            EXPECT_EQ(ids[i], original_ids[i]);
+            for (size_t j = 0; j < corners[i].size(); ++j) {
+                EXPECT_NEAR(corners[i][j].x, original_corners[i][j].x, 0.1f);
+                EXPECT_NEAR(corners[i][j].y, original_corners[i][j].y, 0.1f);
+            }
+        }
+    }
+}
+
+INSTANTIATE_TEST_CASE_P(
+        CV_ArucoDetectMarkers, ArucoThreading,
+        ::testing::Values(
+            aruco::CORNER_REFINE_NONE,
+            aruco::CORNER_REFINE_SUBPIX,
+            aruco::CORNER_REFINE_CONTOUR,
+            aruco::CORNER_REFINE_APRILTAG
+        ));
+
+}} // namespace
diff --git a/modules/objdetect/tutorials/images/singlemarkersaxes.jpg b/modules/objdetect/tutorials/images/singlemarkersaxes.jpg
new file mode 100644 (file)
index 0000000..c7a1db4
Binary files /dev/null and b/modules/objdetect/tutorials/images/singlemarkersaxes.jpg differ
diff --git a/modules/objdetect/tutorials/images/singlemarkersaxes2.jpg b/modules/objdetect/tutorials/images/singlemarkersaxes2.jpg
new file mode 100644 (file)
index 0000000..dc8edee
Binary files /dev/null and b/modules/objdetect/tutorials/images/singlemarkersaxes2.jpg differ