diff --git a/.gitignore b/.gitignore
index ccf2efe..30dc95b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ proguard/
# Log Files
*.log
+*.iml
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..03ed9c3
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,27 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 23
+ buildToolsVersion "23.0.2"
+
+ defaultConfig {
+ applicationId "master.sudoku"
+ minSdkVersion 21
+ targetSdkVersion 23
+ versionCode 1
+ versionName "1.0"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+ }
+ }
+}
+
+dependencies {
+ compile 'com.android.support:appcompat-v7:23.3.0'
+ compile 'com.android.support:support-v4:23.3.0'
+ compile files('libs/opencv library - 2.4.5.jar')
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..e571220
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/master/sudoku/activities/LoadPuzzleActivity.java b/app/src/main/java/master/sudoku/activities/LoadPuzzleActivity.java
new file mode 100644
index 0000000..e86e036
--- /dev/null
+++ b/app/src/main/java/master/sudoku/activities/LoadPuzzleActivity.java
@@ -0,0 +1,107 @@
+package master.sudoku.activities;
+
+import android.os.Bundle;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import master.sudoku.R;
+import master.sudoku.adapters.LoadPuzzlePagerAdapter;
+import master.sudoku.fragments.LoadPuzzleFragment;
+import master.sudoku.fragments.MainGameFragment;
+import master.sudoku.model.Sudoku;
+
+public class LoadPuzzleActivity extends AppCompatActivity implements LoadPuzzleFragment.Callback {
+
+ /**
+ * The {@link android.support.v4.view.PagerAdapter} that will provide
+ * fragments for each of the sections. We use a {@link FragmentPagerAdapter}
+ * derivative, which will keep every loaded fragment in memory. If this
+ * becomes too memory intensive, it may be best to switch to a
+ * {@link android.support.v4.app.FragmentStatePagerAdapter}.
+ */
+ LoadPuzzlePagerAdapter mSectionsPagerAdapter;
+
+ /**
+ * The {@link ViewPager} that will host the section contents.
+ */
+ ViewPager mViewPager;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_load_puzzle);
+
+ // Set up the action bar.
+ final ActionBar actionBar = getSupportActionBar();
+// actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
+
+ // Create the adapter that will return a fragment for each of the three
+ // primary sections of the activity.
+ mSectionsPagerAdapter = new LoadPuzzlePagerAdapter(
+ getSupportFragmentManager(), this);
+
+ // Set up the ViewPager with the sections adapter.
+ mViewPager = (ViewPager) findViewById(R.id.pager);
+ mViewPager.setAdapter(mSectionsPagerAdapter);
+
+ // When swiping between different sections, select the corresponding
+ // tab. We can also use ActionBar.Tab#select() to do this if we have
+ // a reference to the Tab.
+// mViewPager
+// .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
+// @Override
+// public void onPageSelected(int position) {
+// actionBar.setSelectedNavigationItem(position);
+// }
+// });
+
+ // For each of the sections in the app, add a tab to the action bar.
+// for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
+// // Create a tab with text corresponding to the page title defined by
+// // the adapter. Also specify this Activity object, which implements
+// // the TabListener interface, as the callback (listener) for when
+// // this tab is selected.
+// actionBar.addTab(actionBar.newTab()
+// .setText(mSectionsPagerAdapter.getPageTitle(i))
+// .setTabListener(this));
+// }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.load_puzzle, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+ if (id == R.id.action_edit) {
+ editPuzzle();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void loadPuzzleDone(Sudoku model) {
+ MainGameFragment fragment = (MainGameFragment)mSectionsPagerAdapter.getItem(2);
+ fragment.setModel(model);
+ mViewPager.setCurrentItem(2);
+ }
+
+ private void editPuzzle() {
+ MainGameFragment fragment = (MainGameFragment)mSectionsPagerAdapter.getItem(2);
+ fragment.editModel();
+ mViewPager.setCurrentItem(2);
+ }
+}
diff --git a/app/src/main/java/master/sudoku/activities/MainActivity.java b/app/src/main/java/master/sudoku/activities/MainActivity.java
new file mode 100644
index 0000000..3b45faf
--- /dev/null
+++ b/app/src/main/java/master/sudoku/activities/MainActivity.java
@@ -0,0 +1,60 @@
+package master.sudoku.activities;
+
+import android.content.Intent;
+import android.graphics.Point;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.Display;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import master.sudoku.R;
+import master.sudoku.config.DeviceConfig;
+import master.sudoku.fragments.MainGameFragment;
+
+public class MainActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Display display = this.getWindowManager().getDefaultDisplay();
+ Point size = new Point();
+ display.getSize(size);
+ DeviceConfig.mWidth = size.x;
+ DeviceConfig.mHeight = size.y;
+ DeviceConfig.mFontSize = 48;
+
+ setContentView(R.layout.activity_main);
+
+ if (savedInstanceState == null) {
+ getSupportFragmentManager().beginTransaction()
+ .add(R.id.container, new MainGameFragment()).commit();
+ }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.main, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+ if (id == R.id.action_settings) {
+ return true;
+ } else if (id == R.id.load_puzzle) {
+ final Intent intent = new Intent(this.getBaseContext(), LoadPuzzleActivity.class);
+ this.startActivity(intent);
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+}
diff --git a/app/src/main/java/master/sudoku/adapters/LoadPuzzlePagerAdapter.java b/app/src/main/java/master/sudoku/adapters/LoadPuzzlePagerAdapter.java
new file mode 100644
index 0000000..94dcc80
--- /dev/null
+++ b/app/src/main/java/master/sudoku/adapters/LoadPuzzlePagerAdapter.java
@@ -0,0 +1,63 @@
+package master.sudoku.adapters;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+
+import master.sudoku.activities.LoadPuzzleActivity;
+import master.sudoku.fragments.CapturePuzzleFragment;
+import master.sudoku.fragments.LoadPuzzleFragment;
+import master.sudoku.fragments.MainGameFragment;
+import master.sudoku.views.MainGameView;
+
+/**
+ * Created by zhangle on 03/01/2017.
+ */
+public class LoadPuzzlePagerAdapter extends FragmentPagerAdapter {
+
+ private static final int sCount = 3;
+ private LoadPuzzleActivity mActivity;
+ private Fragment[] mFragments;
+
+ public LoadPuzzlePagerAdapter(FragmentManager fm, LoadPuzzleActivity activity) {
+ super(fm);
+ if (mFragments == null) {
+ mFragments = new Fragment[sCount];
+ }
+ mActivity = activity;
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ if (mFragments[position] != null) {
+ return mFragments[position];
+ }
+ Fragment f = null;
+ switch (position) {
+ case 0:
+ f = new CapturePuzzleFragment();
+ break;
+ case 1:
+ f = new LoadPuzzleFragment();
+ ((LoadPuzzleFragment)f).setCallback(mActivity);
+ break;
+ case 2:
+ f = new MainGameFragment();
+ Bundle bundle = new Bundle();
+ bundle.putInt("style", MainGameView.STYLE_LOAD);
+ f.setArguments(bundle);
+ break;
+ }
+ if (f != null) {
+ mFragments[position] = f;
+ }
+ return f;
+ }
+
+ @Override
+ public int getCount() {
+ // Show 3 total pages.
+ return sCount;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/master/sudoku/application/PuzzleMasterApp.java b/app/src/main/java/master/sudoku/application/PuzzleMasterApp.java
new file mode 100644
index 0000000..3cfe79f
--- /dev/null
+++ b/app/src/main/java/master/sudoku/application/PuzzleMasterApp.java
@@ -0,0 +1,117 @@
+package master.sudoku.application;
+
+import android.app.Application;
+import android.content.SharedPreferences;
+import android.content.pm.PackageInfo;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import master.sudoku.utils.AppUtil;
+
+/**
+ * Created by zhangle on 03/01/2017.
+ */
+public class PuzzleMasterApp extends Application {
+ private static PuzzleMasterApp sInstance;
+
+
+ private int mVersionCode;
+ private String mVersionName;
+ private String mDeviceId;
+ private Application mApp;
+
+ private SharedPreferences mPreferences;
+
+ public static PuzzleMasterApp getInstance() {
+ return sInstance;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ sInstance = this;
+ }
+
+ public void setApplication(Application app) {
+ this.mApp = app;
+ }
+
+ public Application getApplication() {
+ return mApp;
+ }
+
+ public SharedPreferences getPreferences() {
+ if (mPreferences == null) {
+ mPreferences = getSharedPreferences(getPreferencesName(), MODE_PRIVATE);
+ }
+ return mPreferences;
+ }
+
+ /**
+ * @return app shared preference name.
+ */
+ protected String getPreferencesName() {
+ return mApp.getPackageName();
+ }
+
+ /**
+ * @return the application's version name set in the manifest.
+ */
+ public String getVersionName() {
+ checkVersionInfo();
+ return mVersionName;
+ }
+
+ /**
+ * @return The unique device id.
+ */
+ public String getDeviceId() {
+ if (mDeviceId == null) {
+ mDeviceId = generateDeviceId();
+ }
+ return mDeviceId;
+ }
+
+ /**
+ * @return true if the device is tablet, otherwise false.
+ */
+ public boolean isTablet() {
+ final TelephonyManager tm = (TelephonyManager) mApp.getSystemService(Application.TELEPHONY_SERVICE);
+ return tm.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
+ }
+
+ private void checkVersionInfo() {
+ if (mVersionName == null || mVersionCode == 0) {
+ try {
+ final PackageInfo packageInfo = mApp.getPackageManager()
+ .getPackageInfo(mApp.getApplicationInfo().packageName, 0);
+ if (packageInfo != null) {
+ mVersionName = packageInfo.versionName;
+ mVersionCode = packageInfo.versionCode;
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ }
+
+ private String generateDeviceId() {
+ final SharedPreferences sp = getPreferences();
+ String result = sp.getString("device_id", null);
+ if (!TextUtils.isEmpty(result)) {
+ return result;
+ }
+
+ if (TextUtils.isEmpty(result)) {
+ final TelephonyManager tm = (TelephonyManager) mApp.getSystemService(Application.TELEPHONY_SERVICE);
+ result = tm.getDeviceId();
+ if (TextUtils.isEmpty(result)) {
+ result = tm.getSimSerialNumber();
+ }
+ }
+
+ result = AppUtil.getMd5(result);
+ sp.edit().putString("device_id", result).apply();
+
+ return result;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/camera/CameraCallback.java b/app/src/main/java/master/sudoku/camera/CameraCallback.java
new file mode 100644
index 0000000..b5fa51f
--- /dev/null
+++ b/app/src/main/java/master/sudoku/camera/CameraCallback.java
@@ -0,0 +1,139 @@
+package master.sudoku.camera;
+
+import android.content.Context;
+import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraCaptureSession;
+import android.hardware.camera2.CameraDevice;
+import android.hardware.camera2.CameraMetadata;
+import android.hardware.camera2.CaptureRequest;
+import android.view.Surface;
+import android.view.SurfaceHolder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by zhangle on 11/01/2017.
+ */
+public class CameraCallback extends CameraDevice.StateCallback implements SurfaceHolder.Callback {
+ public static final String TAG = "CameraCallback";
+ private final Context mContext;
+
+ private android.hardware.camera2.CameraDevice mCamera;
+ private CaptureRequest.Builder mCptureRequestBuilder;
+ private CameraCaptureSession mCameraCaptureSession;
+
+ private SurfaceHolder mHolder;
+
+ private CameraCaptureSession.StateCallback mSessionCallback = new CameraCaptureSession.StateCallback() {
+
+ @Override
+ public void onConfigured(CameraCaptureSession session) {
+ mCameraCaptureSession = session;
+ updatePreview();
+ }
+
+ @Override
+ public void onConfigureFailed(CameraCaptureSession session) {
+ mCameraCaptureSession = null;
+ }
+ };
+
+ public CameraCallback(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ public void surfaceCreated(SurfaceHolder holder) {
+ try {
+ if (mCamera == null) {
+ mHolder = holder;
+ return;
+ }
+ List surfaceList = new ArrayList();
+ surfaceList.add(holder.getSurface());
+ mCptureRequestBuilder = mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
+ mCptureRequestBuilder.addTarget(holder.getSurface());
+ mCamera.createCaptureSession(surfaceList, mSessionCallback, null);
+ } catch (Exception ex) {
+ if (mCamera != null) {
+ mCamera = null;
+ }
+ }
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder holder, int format, int width,
+ int height) {
+ if (mCamera == null) {
+ return;
+ }
+// mParameters = mCamera.getParameters();
+// mParameters.setPictureFormat(ImageFormat.JPEG);
+// setPictureSize(mParameters);
+// Point previewSizePt;
+// if (mFoundCommonSize) {
+// previewSizePt = new Point(mParameters.getPictureSize().width,
+// mParameters.getPictureSize().height);
+// } else {
+// previewSizePt = getPreviewSize(mParameters,
+// mParameters.getPictureSize());
+// }
+//
+// if (previewSizePt.x * previewSizePt.y < SharedConstants.MIN_PICTURE_SIZE) {
+// Camera.Size size = getBestFitSize(mParameters.getSupportedPreviewSizes());
+// mParameters.setPreviewSize(size.width, size.height);
+// } else {
+// mParameters.setPreviewSize(previewSizePt.x, previewSizePt.y);
+// }
+// if (mContext.getPackageManager().hasSystemFeature(
+// PackageManager.FEATURE_CAMERA_AUTOFOCUS)) {
+// mParameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
+// }
+// mCamera.setParameters(mParameters);
+// mCamera.startPreview();
+ }
+
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder holder) {
+ if (mCamera != null) {
+ mCamera = null;
+ }
+ }
+
+ public void setFlashLight(boolean isOn) {
+ if (mCamera == null) {
+ return;
+ }
+ }
+
+ public void updatePreview() {
+ if(null == mCamera || null == mCameraCaptureSession) {
+ return;
+ }
+ mCptureRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
+ try {
+ mCameraCaptureSession.setRepeatingRequest(mCptureRequestBuilder.build(), null, null);
+ } catch (CameraAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ @Override
+ public void onOpened(CameraDevice camera) {
+ this.mCamera = camera;
+ if (mHolder != null) {
+ surfaceCreated(mHolder);
+ }
+ }
+
+ @Override
+ public void onDisconnected(CameraDevice camera) {
+ this.mCamera = null;
+ }
+
+ @Override
+ public void onError(CameraDevice camera, int error) {
+ this.mCamera = null;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/config/DeviceConfig.java b/app/src/main/java/master/sudoku/config/DeviceConfig.java
new file mode 100644
index 0000000..3b0c088
--- /dev/null
+++ b/app/src/main/java/master/sudoku/config/DeviceConfig.java
@@ -0,0 +1,14 @@
+package master.sudoku.config;
+
+public class DeviceConfig {
+ public static int mHeight;
+ public static int mWidth;
+ public static float mFontSize;
+ /**
+ * 0: no error hint
+ * 1: hint once
+ * 2: hint kept all through the game
+ * 3: block game if error found
+ */
+ public static int mErrorHintLevel = 1;
+}
diff --git a/app/src/main/java/master/sudoku/event/EventArgs.java b/app/src/main/java/master/sudoku/event/EventArgs.java
new file mode 100644
index 0000000..54f9fef
--- /dev/null
+++ b/app/src/main/java/master/sudoku/event/EventArgs.java
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package master.sudoku.event;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class EventArgs {
+
+ public static final int INPUT_PANEL_SELECT = 0;
+
+ private int mEventType;
+
+ private Object mEventData;
+
+ /**
+ * Constructor
+ * @param eventType
+ * @param eventData
+ */
+ public EventArgs(int eventType, Object eventData) {
+ this.mEventType = eventType;
+ this.mEventData = eventData;
+ }
+
+ public int getEventType() {
+ return mEventType;
+ }
+
+ public Object getEventData() {
+ return mEventData;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/event/EventListener.java b/app/src/main/java/master/sudoku/event/EventListener.java
new file mode 100644
index 0000000..3f7003e
--- /dev/null
+++ b/app/src/main/java/master/sudoku/event/EventListener.java
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package master.sudoku.event;
+
+/**
+ * @author dannyzha
+ *
+ */
+public interface EventListener {
+ /**
+ * handle event generated from an event source
+ * @param args the event arguments
+ * @return whether the event is handled properly
+ */
+ boolean handleEvent(EventArgs args);
+}
diff --git a/app/src/main/java/master/sudoku/event/EventSource.java b/app/src/main/java/master/sudoku/event/EventSource.java
new file mode 100644
index 0000000..f8bdee9
--- /dev/null
+++ b/app/src/main/java/master/sudoku/event/EventSource.java
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package master.sudoku.event;
+
+import java.util.Vector;
+
+/**
+ * @author dannyzha
+ *
+ */
+public abstract class EventSource {
+
+ protected Vector mListeners = new Vector();
+
+ public void addEventListener(EventListener listener) {
+ if(!mListeners.contains(listener)) {
+ mListeners.addElement(listener);
+ }
+ }
+
+ public void removeEventListener(EventListener listener) {
+ if(mListeners.contains(listener)) {
+ mListeners.removeElement(listener);
+ }
+ }
+
+ protected void triggerEvent(int eventType, Object eventData) {
+ triggerEvent(new EventArgs(eventType, eventData));
+ }
+
+ protected void triggerEvent(EventArgs args) {
+ for(int i=0; i 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ openCamera();
+ } else {
+
+ // permission denied, boo! Disable the
+ // functionality that depends on this permission.
+ }
+ return;
+ }
+ }
+ }
+
+ private void openCamera() {
+ if (!checkPermission(Manifest.permission.CAMERA, REQUEST_CAMERA_OPEN)) {
+ return;
+ }
+ CameraManager mgr = (CameraManager) this.getContext().getSystemService(Context.CAMERA_SERVICE);
+ try {
+ String[] idList = mgr.getCameraIdList();
+ mgr.openCamera(idList[0], mCameraCallback, null);
+ mSurfaceHolder.addCallback(mCameraCallback);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private boolean checkPermission(String permission, int requestCode) {
+ if (ContextCompat.checkSelfPermission(this.getActivity(), permission)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ // Should we show an explanation?
+ if (shouldShowRequestPermissionRationale(permission)) {
+ // Explain to the user why we need to read the contacts
+ }
+
+ requestPermissions(new String[]{permission}, requestCode);
+ return false;
+ }
+ return true;
+ }
+
+
+}
diff --git a/app/src/main/java/master/sudoku/fragments/LoadPuzzleFragment.java b/app/src/main/java/master/sudoku/fragments/LoadPuzzleFragment.java
new file mode 100644
index 0000000..433a138
--- /dev/null
+++ b/app/src/main/java/master/sudoku/fragments/LoadPuzzleFragment.java
@@ -0,0 +1,320 @@
+package master.sudoku.fragments;
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+
+import java.io.File;
+import java.io.InputStream;
+
+import master.sudoku.R;
+import master.sudoku.model.Sudoku;
+import master.sudoku.ocr.ImageCutter;
+import master.sudoku.ocr.RecognizerNN;
+import master.sudoku.utils.FileUtils;
+
+/**
+ * Created by zhangle on 03/01/2017.
+ */
+public class LoadPuzzleFragment extends Fragment {
+
+ public static final int PICK_IMAGE = 1;
+ public static final int REQUEST_EXTERNAL_STORAGE_READ = 2;
+ public static final int REQUEST_EXTERNAL_STORAGE_WRITE = 3;
+ private ImageView mImgView = null;
+ private Button mLoadBtn = null;
+ private Bitmap mImageBitmap = null;
+ private Callback mCallback = null;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.fragment_load_puzzle, container,
+ false);
+ mImgView = (ImageView)rootView.findViewById(R.id.load_puzzle_image);
+ if (mImageBitmap != null) {
+ mImgView.setImageBitmap(mImageBitmap);
+ }
+ mImgView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ selectImage();
+ }
+ });
+ mLoadBtn = (Button)rootView.findViewById(R.id.load_puzzle_button);
+ mLoadBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ loadPuzzle();
+ }
+ });
+ return rootView;
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode,
+ String permissions[], int[] grantResults) {
+ switch (requestCode) {
+ case REQUEST_EXTERNAL_STORAGE_READ: {
+ // If request is cancelled, the result arrays are empty.
+ if (grantResults.length > 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ selectImage();
+ } else {
+
+ // permission denied, boo! Disable the
+ // functionality that depends on this permission.
+ }
+ return;
+ }
+ case REQUEST_EXTERNAL_STORAGE_WRITE: {
+ // If request is cancelled, the result arrays are empty.
+ if (grantResults.length > 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ loadPuzzle();
+ } else {
+
+ // permission denied, boo! Disable the
+ // functionality that depends on this permission.
+ }
+ return;
+ }
+ // other 'case' lines to check for other
+ // permissions this app might request
+ }
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK) {
+ if (data == null) {
+ //Display an error
+ return;
+ }
+// InputStream inputStream = context.getContentResolver().openInputStream(data.getData());
+ //Now you can do whatever you want with your inpustream, save it as file, upload to a server, decode a bitmap...
+
+ Uri uri = data.getData();
+ if (uri != null) {
+ final String path = FileUtils.getFilePathFromUri(uri, this.getActivity());
+ final File file = new File(path);
+ if (!file.exists()) {
+ return;
+ }
+ mImageBitmap = decodeBitmapFromFile(path);
+ mImgView.setImageBitmap(mImageBitmap);
+ } else {
+// mImageBitmap = decodeBitmapFromByte(data);
+ }
+ }
+ }
+
+ public void setCallback(Callback callback) {
+ mCallback = callback;
+ }
+
+ private boolean checkPermission(String permission, int requestCode) {
+ if (ContextCompat.checkSelfPermission(this.getActivity(), permission)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ // Should we show an explanation?
+ if (shouldShowRequestPermissionRationale(permission)) {
+ // Explain to the user why we need to read the contacts
+ }
+
+ requestPermissions(new String[]{permission}, requestCode);
+ return false;
+ }
+ return true;
+ }
+
+ private void selectImage() {
+ if (!checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE, REQUEST_EXTERNAL_STORAGE_READ)) {
+ return;
+ }
+ Intent intent = new Intent();
+ intent.setType("image/*");
+ intent.setAction(Intent.ACTION_GET_CONTENT);
+ startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
+ }
+
+ private void loadPuzzle() {
+ try {
+ if (!checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_EXTERNAL_STORAGE_WRITE)) {
+ return;
+ }
+ ImageCutter ic = new ImageCutter(mImageBitmap);
+ ic.saveImages();
+ Sudoku model = parseModel(ic);
+ if (mCallback != null) {
+ mCallback.loadPuzzleDone(model);
+ }
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private Sudoku parseModel(ImageCutter ic) {
+ Sudoku model = new Sudoku();
+ Resources res = getResources();
+ InputStream is = res.openRawResource(R.raw.nn_weights_printed);
+ RecognizerNN rec = new RecognizerNN(is);
+ for (int i = 0; i < 9; i++) {
+ for (int j = 0; j < 9; j++) {
+ Bitmap img = ic.getImage(i, j);
+// Recognizer rec = new Recognizer(img);
+ int num = rec.determine(img);
+ model.setInitValue(i, j, num);
+ }
+ }
+ return model;
+ }
+
+ Bitmap decodeBitmapFromFile(String filename) {
+ final int maxWidth = getResources().getDisplayMetrics().widthPixels;
+ final int maxHeight = getResources().getDisplayMetrics().heightPixels;
+
+ final BitmapFactory.Options decodeOptions = new BitmapFactory.Options();
+ decodeOptions.inJustDecodeBounds = true;
+ BitmapFactory.decodeFile(filename, decodeOptions);
+ final int actualWidth = decodeOptions.outWidth;
+ final int actualHeight = decodeOptions.outHeight;
+
+ // Then compute the dimensions we would ideally like to decode to.
+ final int desiredWidth = getResizedDimension(maxWidth, maxHeight, actualWidth, actualHeight);
+ final int desiredHeight = getResizedDimension(maxHeight, maxWidth, actualHeight, actualWidth);
+
+ // Decode to the nearest power of two scaling factor.
+ decodeOptions.inJustDecodeBounds = false;
+ decodeOptions.inSampleSize = findBestSampleSize(actualWidth, actualHeight, desiredWidth, desiredHeight);
+
+ Bitmap bitmap;
+ final Bitmap tempBitmap = BitmapFactory.decodeFile(filename, decodeOptions);
+ // If necessary, scale down to the maximal acceptable size.
+ if (tempBitmap != null && (tempBitmap.getWidth() > desiredWidth ||
+ tempBitmap.getHeight() > desiredHeight)) {
+ bitmap = Bitmap.createScaledBitmap(tempBitmap, desiredWidth, desiredHeight, true);
+ tempBitmap.recycle();
+
+ } else {
+ bitmap = tempBitmap;
+ }
+
+// mSampleSize = decodeOptions.inSampleSize;
+ if (!bitmap.isMutable()) {
+ Bitmap.Config config = Bitmap.Config.ARGB_8888;
+ bitmap = bitmap.copy(config , true);
+ }
+ return bitmap;
+ }
+
+ Bitmap decodeBitmapFromByte(byte[] data) {
+ final int maxWidth = getResources().getDisplayMetrics().widthPixels;
+ final int maxHeight = getResources().getDisplayMetrics().heightPixels;
+
+ final BitmapFactory.Options decodeOptions = new BitmapFactory.Options();
+ decodeOptions.inJustDecodeBounds = true;
+ BitmapFactory.decodeByteArray(data, 0, data.length, decodeOptions);
+ final int actualWidth = decodeOptions.outWidth;
+ final int actualHeight = decodeOptions.outHeight;
+
+ // Then compute the dimensions we would ideally like to decode to.
+ final int desiredWidth = getResizedDimension(maxWidth, maxHeight, actualWidth, actualHeight);
+ final int desiredHeight = getResizedDimension(maxHeight, maxWidth, actualHeight, actualWidth);
+
+ // Decode to the nearest power of two scaling factor.
+ decodeOptions.inJustDecodeBounds = false;
+ decodeOptions.inSampleSize = findBestSampleSize(actualWidth, actualHeight, desiredWidth, desiredHeight);
+
+ final Bitmap bitmap;
+ final Bitmap tempBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, decodeOptions);
+ // If necessary, scale down to the maximal acceptable size.
+ if (tempBitmap != null && (tempBitmap.getWidth() > desiredWidth ||
+ tempBitmap.getHeight() > desiredHeight)) {
+ bitmap = Bitmap.createScaledBitmap(tempBitmap, desiredWidth, desiredHeight, true);
+ tempBitmap.recycle();
+
+ } else {
+ bitmap = tempBitmap;
+ }
+
+// mSampleSize = decodeOptions.inSampleSize;
+ return bitmap;
+ }
+
+ /**
+ * Scales one side of a rectangle to fit aspect ratio.
+ *
+ * @param maxPrimary Maximum size of the primary dimension (i.e. mWidth for
+ * max mWidth), or zero to maintain aspect ratio with secondary
+ * dimension
+ * @param maxSecondary Maximum size of the secondary dimension, or zero to
+ * maintain aspect ratio with primary dimension
+ * @param actualPrimary Actual size of the primary dimension
+ * @param actualSecondary Actual size of the secondary dimension
+ */
+ private static int getResizedDimension(int maxPrimary, int maxSecondary, int actualPrimary,
+ int actualSecondary) {
+ // If no dominant value at all, just return the actual.
+ if (maxPrimary == 0 && maxSecondary == 0) {
+ return actualPrimary;
+ }
+
+ // If primary is unspecified, scale primary to match secondary scaling ratio.
+ if (maxPrimary == 0) {
+ double ratio = (double) maxSecondary / (double) actualSecondary;
+ return (int) (actualPrimary * ratio);
+ }
+
+ if (maxSecondary == 0) {
+ return maxPrimary;
+ }
+
+ double ratio = (double) actualSecondary / (double) actualPrimary;
+ int resized = maxPrimary;
+ if (resized * ratio > maxSecondary) {
+ resized = (int) (maxSecondary / ratio);
+ }
+ return resized;
+ }
+
+ /**
+ * Returns the largest power-of-two divisor for use in downscaling a bitmap
+ * that will not result in the scaling past the desired dimensions.
+ *
+ * @param actualWidth Actual mWidth of the bitmap
+ * @param actualHeight Actual mHeight of the bitmap
+ * @param desiredWidth Desired mWidth of the bitmap
+ * @param desiredHeight Desired mHeight of the bitmap
+ */
+ private static int findBestSampleSize(int actualWidth, int actualHeight,
+ int desiredWidth, int desiredHeight) {
+ final double wr = (double) actualWidth / desiredWidth;
+ final double hr = (double) actualHeight / desiredHeight;
+ final double ratio = Math.min(wr, hr);
+ float n = 1.0f;
+ while ((n * 2) <= ratio) {
+ n *= 2;
+ }
+
+ return (int) n;
+ }
+
+ public interface Callback {
+ void loadPuzzleDone(Sudoku model);
+ }
+}
diff --git a/app/src/main/java/master/sudoku/fragments/MainGameFragment.java b/app/src/main/java/master/sudoku/fragments/MainGameFragment.java
new file mode 100644
index 0000000..f97e25f
--- /dev/null
+++ b/app/src/main/java/master/sudoku/fragments/MainGameFragment.java
@@ -0,0 +1,61 @@
+package master.sudoku.fragments;
+
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import master.sudoku.R;
+import master.sudoku.config.DeviceConfig;
+import master.sudoku.model.Sudoku;
+import master.sudoku.model.SudokuGame;
+import master.sudoku.views.MainGameView;
+import master.sudoku.views.SolveSudokuView;
+
+/**
+ * Created by zhangle on 03/01/2017.
+ */
+public class MainGameFragment extends Fragment {
+
+ private int mStyle = MainGameView.STYLE_PLAY;
+
+ private SolveSudokuView mGameView;
+
+ public MainGameFragment() {
+ this.mStyle = MainGameView.STYLE_PLAY;
+ }
+
+ public void setArguments(Bundle args) {
+ super.setArguments(args);
+ mStyle = args.getInt("style");
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.fragment_sudoku_main, container,
+ false);
+
+ mGameView = (SolveSudokuView) rootView.findViewById(R.id.solve_sudoku_view);
+ SudokuGame game = new SudokuGame();
+ mGameView.setBound(new Rect(0,0, DeviceConfig.mWidth - 100, DeviceConfig.mHeight - 500));
+ if (mStyle == MainGameView.STYLE_PLAY) {
+ mGameView.setModel(game.getModel1());
+ } else if (mStyle == MainGameView.STYLE_LOAD) {
+ mGameView.setModel(new Sudoku());
+ }
+ mGameView.setStyle(mStyle);
+ return rootView;
+ }
+
+ public void setModel(Sudoku model) {
+ mGameView.setModel(model);
+ mGameView.invalidate();
+ }
+
+ public void editModel() {
+ mGameView.editModel(true);
+ }
+}
diff --git a/app/src/main/java/master/sudoku/logs/Logger.java b/app/src/main/java/master/sudoku/logs/Logger.java
new file mode 100644
index 0000000..c14be69
--- /dev/null
+++ b/app/src/main/java/master/sudoku/logs/Logger.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package master.sudoku.logs;
+
+/**
+ * @author dannyzha
+ *
+ */
+public final class Logger {
+
+ public static boolean ON = true;
+
+ private static Logger sInstance;
+
+ public static Logger getLogger() {
+ if(sInstance == null) {
+ sInstance = new Logger();
+ }
+ return sInstance;
+ }
+
+ public void debug(String log) {
+ System.out.println(log);
+ }
+}
diff --git a/app/src/main/java/master/sudoku/model/Index.java b/app/src/main/java/master/sudoku/model/Index.java
new file mode 100644
index 0000000..50af653
--- /dev/null
+++ b/app/src/main/java/master/sudoku/model/Index.java
@@ -0,0 +1,64 @@
+/**
+ *
+ */
+package master.sudoku.model;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class Index {
+ public static final int INVALID_INDEX = -1;
+
+ private int i = INVALID_INDEX;
+ private int j = INVALID_INDEX;
+
+ /**
+ * Constructor
+ * @param i
+ * @param j
+ */
+ public Index(int i, int j) {
+ this.i = i;
+ this.j = j;
+ }
+
+ public boolean equals(int i, int j) {
+ return this.i == i && this.j == j;
+ }
+
+ public boolean equals(Object o) {
+ if(!(o instanceof Index)) {
+ return false;
+ }
+ Index other = (Index)o;
+ return other.equals(this.i, this.j);
+ }
+
+ public int hashCode() {
+ int tmpI = i;
+ int tmpJ = j;
+ while(tmpJ > 0) {
+ tmpI *= 10;
+ tmpJ /= 10;
+ }
+ return tmpI + j;
+ }
+
+ public int getI() {
+ return i;
+ }
+
+ public void setI(int i) {
+ this.i = i;
+ }
+
+ public int getJ() {
+ return j;
+ }
+
+ public void setJ(int j) {
+ this.j = j;
+ }
+
+}
diff --git a/app/src/main/java/master/sudoku/model/Sudoku.java b/app/src/main/java/master/sudoku/model/Sudoku.java
new file mode 100644
index 0000000..9654a81
--- /dev/null
+++ b/app/src/main/java/master/sudoku/model/Sudoku.java
@@ -0,0 +1,186 @@
+/**
+ *
+ */
+package master.sudoku.model;
+
+import java.util.Vector;
+
+import master.sudoku.exception.SolutionException;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class Sudoku {
+ public static final int SUDOKU_SIZE = 9;
+
+ private static final int BLANK_VALUE = 0;
+ // matrix to store the values
+ private int[][] mInitMatrix;
+ private int[][] mResultMatrix;
+
+ /**
+ *
+ */
+ public Sudoku() {
+ mInitMatrix = new int[SUDOKU_SIZE][SUDOKU_SIZE];
+ mResultMatrix = new int[SUDOKU_SIZE][SUDOKU_SIZE];
+ initMatrix(mInitMatrix);
+ initMatrix(mResultMatrix);
+ }
+
+ public boolean isBlank(int i, int j) {
+ return mResultMatrix[i][j] == BLANK_VALUE;
+ }
+
+ public int getBlankSize() {
+ int size = 0;
+ for(int i=0; i idxList = getSquareIndexList(i, j);
+ for(int k=0; k getConflicts(int i, int j, int value) {
+ Vector result = new Vector();
+ // check value in the row and column
+ for(int k=0; k idxList = getSquareIndexList(i, j);
+ for(int k=0; k getSquareIndexList(int i, int j) {
+ Vector result = new Vector();
+ int iStart = i / 3 * 3;
+ int jStart = j / 3 * 3;
+ for(i=iStart; i 0) {
+ result.setInitValue(i, j, testValue[m]);
+ }
+ }
+ return result;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/master/sudoku/ocr/ImageCutter.java b/app/src/main/java/master/sudoku/ocr/ImageCutter.java
new file mode 100644
index 0000000..b0b3117
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/ImageCutter.java
@@ -0,0 +1,466 @@
+/**
+ *
+ */
+package master.sudoku.ocr;
+
+import android.graphics.Bitmap;
+import android.graphics.Bitmap.Config;
+import android.graphics.Color;
+import android.graphics.Rect;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+
+import master.sudoku.ocr.matrix.BoundaryMatrix;
+import master.sudoku.ocr.matrix.ImageMatrix;
+import master.sudoku.ocr.util.MatrixUtil;
+import master.sudoku.ocr.util.ThresholdUtil;
+import master.sudoku.utils.FileUtils;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class ImageCutter
+{
+ ///
+ /// key: Index
+ /// value: Bitmap
+ ///
+ private Hashtable mImageTable;
+
+ ///
+ /// Constructor
+ ///
+ ///
+ public ImageCutter(Bitmap orgImage) throws Exception
+ {
+ int bgColor = binarization(orgImage);
+ ThresholdUtil.BG_COLOR = bgColor;
+ ImageMatrix imgMatrix = new ImageMatrix(orgImage);
+
+ BoundaryMatrix boundary = MatrixUtil.detectBoundary(imgMatrix);
+ if (!boundary.isValid())
+ {
+ throw new Exception("Invalid image.");
+ }
+ buildImageTable(orgImage, boundary);
+ }
+
+ ///
+ /// Another constructor
+ ///
+ ///
+ ///
+ public ImageCutter(Bitmap orgImage, BoundaryMatrix boundary) throws Exception
+ {
+ if (!boundary.isValid())
+ {
+ throw new Exception("Invalid image.");
+ }
+
+ buildImageTable(orgImage, boundary);
+ }
+
+ public Bitmap get(Index index)
+ {
+ return mImageTable.get(index);
+ }
+
+ public Bitmap getImage(int i, int j)
+ {
+ Enumeration enu = mImageTable.keys();
+ while (enu.hasMoreElements())
+ {
+ Index idx = enu.nextElement();
+ if (idx.Equals(i, j))
+ {
+ return (Bitmap)mImageTable.get(idx);
+ }
+ }
+ return null;
+ }
+
+ ///
+ /// binaryzation an image, global threshold
+ ///
+ ///
+ /// the BG color of the image
+ private int binarization(Bitmap image)
+ {
+ int dimensionX = image.getWidth();
+ int dimensionY = image.getHeight();
+ int whitePixelCnt = 0, blackPixelCnt = 0;
+
+ for (int x = 0; x < dimensionX; x++)
+ {
+ for (int y = 0; y < dimensionY; y++)
+ {
+ int value = ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+ if (value > ThresholdUtil.DARK_THRESHOLD)
+ {
+ image.setPixel(x, y, Color.argb(255, 255, 255, 255));
+ whitePixelCnt++;
+ }
+ else
+ {
+ image.setPixel(x, y, Color.argb(255, 0, 0, 0));
+ blackPixelCnt++;
+ }
+ }
+ }
+ // save the image to see the binarization result
+ saveImage(image, "binaryzation.jpg");
+
+ if (whitePixelCnt >= blackPixelCnt)
+ {
+ return Color.WHITE;
+ }
+ else
+ {
+ return Color.BLACK;
+ }
+ }
+
+ ///
+ /// Adaptive Thresholding Using the Integral Image
+ /// http://people.scs.carleton.ca/~roth/iit-publications-iti/docs/gerh-50002.pdf
+ ///
+ ///
+ ///
+ private int binarization2(Bitmap image)
+ {
+ int dimensionX = image.getWidth();
+ int dimensionY = image.getHeight();
+ int whitePixelCnt = 0, blackPixelCnt = 0;
+
+ // create integral table
+ int[] integralTable = new int[dimensionX * dimensionY];
+ for (int x = 0; x < dimensionX; x++)
+ {
+ // reset this column sum
+ int sum = 0;
+ for (int y = 0; y < dimensionY; y++)
+ {
+ int index = y * dimensionX + x;
+ sum += ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+ if (x == 0)
+ integralTable[index] = sum;
+ else
+ integralTable[index] = integralTable[index - 1] + sum;
+ }
+ }
+
+ int S = dimensionX >> 3;
+ int T = 8;
+ int S2 = S / 2;
+
+ for (int x = 0; x < dimensionX; x++)
+ {
+ for (int y = 0; y < dimensionY; y++)
+ {
+ int x1=x-S2, x2=x+S2;
+ int y1=y-S2, y2=y+S2;
+ // check the border
+ if (x1 < 0) x1 = 0;
+ if (x2 >= dimensionX) x2 = dimensionX-1;
+ if (y1 < 0) y1 = 0;
+ if (y2 >= dimensionY) y2 = dimensionY-1;
+
+ int count = (x2 - x1) * (y2 - y1);
+ int sum = integralTable[y2 * dimensionX + x2] -
+ integralTable[y1 * dimensionX + x2] -
+ integralTable[y2 * dimensionX + x1] +
+ integralTable[y1 * dimensionX + x1];
+
+
+ int value = ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+ if (value * count > sum * (100 - T) / 100)
+ {
+ image.setPixel(x, y, Color.WHITE);
+ whitePixelCnt++;
+ }
+ else
+ {
+ image.setPixel(x, y, Color.BLACK);
+ blackPixelCnt++;
+ }
+ }
+ }
+ // save the image to see the binarization result
+ saveImage(image, "binaryzation.jpg");
+
+ if (whitePixelCnt >= blackPixelCnt)
+ {
+ return Color.WHITE;
+ }
+ else
+ {
+ return Color.BLACK;
+ }
+ }
+
+ private Bitmap CropImage(Bitmap image, Rect area)
+ {
+ Bitmap cropped = Bitmap.createBitmap(image, area.left, area.top, area.width(), area.height());
+ return cropped;
+ }
+
+ private void buildImageTable(Bitmap orgImage, BoundaryMatrix boundary)
+ {
+ List xBoundary = boundary.getBoundaryXList();
+ List yBoundary = boundary.getBoundaryYList();
+ List xBoundaryWidth = boundary.getBoundaryWidthXList();
+ List yBoundaryWidth = boundary.getBoundaryWidthYList();
+ mImageTable = new Hashtable();
+ for (int i = 0; i < 9; i++)
+ {
+ for (int j = 0; j < 9; j++)
+ {
+ int left = xBoundary.get(i)+xBoundaryWidth.get(i);
+ int top = yBoundary.get(j)+yBoundaryWidth.get(j);
+ int right = xBoundary.get(i + 1) - xBoundaryWidth.get(i + 1);
+ int bottom = yBoundary.get(j + 1) - yBoundaryWidth.get(j + 1);
+ // shrink the rect area
+ int xMargin = (int)((right - left) * 0.1);
+ int yMargin = (int)((bottom - top) * 0.1);
+ left += xMargin;
+ right -= xMargin;
+ top += yMargin;
+ bottom -= yMargin;
+ // remove margins
+ while (getForePixelSum(orgImage, left, top, bottom, true) == (bottom - top) && (left < right - 1)) {
+ left ++;
+ }
+ while (getForePixelSum(orgImage, right, top, bottom, true) == (bottom - top) && (right > left + 1)) {
+ right --;
+ }
+ while (getForePixelSum(orgImage, top, left, right, false) == (right - left) && (top < bottom - 1)) {
+ top ++;
+ }
+ while (getForePixelSum(orgImage, bottom, left, right, false) == (right - left) && (bottom > top + 1)) {
+ bottom --;
+ }
+
+ while (getForePixelSum(orgImage, left, top, bottom, true) <= 1 && (left < right - 1)) {
+ left ++;
+ }
+ while (getForePixelSum(orgImage, right, top, bottom, true) <= 1 && (right > left + 1)) {
+ right --;
+ }
+ while (getForePixelSum(orgImage, top, left, right, false) <= 1 && (top < bottom - 1)) {
+ top ++;
+ }
+ while (getForePixelSum(orgImage, bottom, left, right, false) <= 1 && (bottom > top + 1)) {
+ bottom --;
+ }
+ Rect area = new Rect(left, top, right, bottom);
+ Bitmap crop = CropImage(orgImage, area);
+ //crop = removeMargin(crop);
+ mImageTable.put(new Index(i, j), crop);
+ }
+ }
+ }
+
+ private int getForePixelSum(Bitmap image, int index, int lower, int upper, boolean isVertical) {
+ int sum = 0;
+ for (int i = lower; i < upper; i++) {
+ int color = isVertical ? image.getPixel(index, i) : image.getPixel(i, index);
+ if (color != ThresholdUtil.BG_COLOR) {
+ sum ++;
+ }
+ }
+ return sum;
+ }
+
+// private Bitmap removeMargin(Bitmap image)
+// {
+// image = denoise(image);
+// int left = 0, right = image.getWidth(), top = 0, bottom = image.getHeight();
+// boolean changed = false;
+// for (int x = 0; x < image.getWidth(); x++)
+// {
+// for (int y = 0; y < image.getHeight(); y++)
+// {
+// int value = ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+// if (value <= ThresholdUtil.DARK_THRESHOLD)
+// {
+// left = x;
+// break;
+// }
+// }
+// if (left > 0)
+// {
+// changed = true;
+// break;
+// }
+// }
+// for (int x = image.getWidth() - 1; x >= 0; x--)
+// {
+// for (int y = 0; y < image.getHeight(); y++)
+// {
+// int value = ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+// if (value <= ThresholdUtil.DARK_THRESHOLD)
+// {
+// right = x;
+// break;
+// }
+// }
+// if (right < image.getWidth())
+// {
+// changed = true;
+// break;
+// }
+// }
+// for (int y = 0; y < image.getHeight(); y++)
+// {
+// for (int x = 0; x < image.getWidth(); x++)
+// {
+// int value = ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+// if (value <= ThresholdUtil.DARK_THRESHOLD)
+// {
+// top = y;
+// break;
+// }
+// }
+// if (top > 0)
+// {
+// changed = true;
+// break;
+// }
+// }
+// for (int y = image.getHeight() - 1; y >= 0; y--)
+// {
+// for (int x = 0; x < image.getWidth(); x++)
+// {
+// int value = ThresholdUtil.GetDarkValue(image.getPixel(x, y));
+// if (value <= ThresholdUtil.DARK_THRESHOLD)
+// {
+// bottom = y;
+// break;
+// }
+// }
+// if (bottom < image.getHeight())
+// {
+// changed = true;
+// break;
+// }
+// }
+// if(changed)
+// {
+// Logger.getLogger().debug("changed: " + "left:" + left + ", right:" + right + ", top:" + top + ", bottom:" + bottom);
+// return CropImage(image, new Rect(left, top, right, bottom));
+// }
+// return image;
+// }
+
+ private Bitmap denoise(Bitmap image)
+ {
+ Bitmap result = Bitmap.createBitmap(image.getWidth(), image.getHeight(), Config.ALPHA_8);
+ for (int x = 0; x < image.getWidth(); x++)
+ {
+ for (int y = 0; y < image.getHeight(); y++)
+ {
+ if (ThresholdUtil.IsDark(image.getPixel(x, y)))
+ {
+ int neighborPixel = 0;
+ int x1 = x - 1, x2 = x + 1;
+ int y1 = y - 1, y2 = y + 1;
+ if (x1 < 0) x1 = 0;
+ if (y1 < 0) y1 = 0;
+ if (x2 > image.getWidth() - 1) x2 = image.getWidth() - 1;
+ if (y2 > image.getHeight() - 1) y2 = image.getHeight() - 1;
+
+ if (ThresholdUtil.IsDark(image.getPixel(x, y1)))
+ {
+ neighborPixel++;
+ }
+ if (ThresholdUtil.IsDark(image.getPixel(x, y2)))
+ {
+ neighborPixel++;
+ }
+ if (ThresholdUtil.IsDark(image.getPixel(x1, y)))
+ {
+ neighborPixel++;
+ }
+ if (ThresholdUtil.IsDark(image.getPixel(x2, y)))
+ {
+ neighborPixel++;
+ }
+
+
+ //if (ThresholdUtil.IsDark(image.GetPixel(x1, y1)))
+ //{
+ // neighborPixel++;
+ //}
+
+ //if (ThresholdUtil.IsDark(image.GetPixel(x2, y1)))
+ //{
+ // neighborPixel++;
+ //}
+
+ //if (ThresholdUtil.IsDark(image.GetPixel(x2, y2)))
+ //{
+ // neighborPixel++;
+ //}
+
+ //if (ThresholdUtil.IsDark(image.GetPixel(x1, y2)))
+ //{
+ // neighborPixel++;
+ //}
+
+
+ if (neighborPixel > 2)
+ {
+ result.setPixel(x, y, Color.BLACK);
+ continue;
+ }
+ }
+ result.setPixel(x, y, Color.WHITE);
+ }
+ }
+ return result;
+ }
+
+ public void saveImages()
+ {
+ Enumeration indexEnum = mImageTable.keys();
+ while (indexEnum.hasMoreElements())
+ {
+ Index idx = indexEnum.nextElement();
+ Bitmap image = mImageTable.get(idx);
+ saveImage(image, idx.getI() + "_" + idx.getJ() + ".jpg");
+ }
+ }
+
+ public void saveImage(Bitmap img, String fileName) {
+ String path = FileUtils.getCachePath();
+ OutputStream fOut = null;
+ File file = new File(path, fileName);
+ try {
+ if (!file.exists()) {
+ file.createNewFile();
+ }
+ fOut = new FileOutputStream(file);
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+
+ img.compress(Bitmap.CompressFormat.JPEG, 85, bytes);
+ bytes.flush();
+ fOut.write(bytes.toByteArray());
+ bytes.close();
+ fOut.flush();
+ fOut.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/master/sudoku/ocr/Index.java b/app/src/main/java/master/sudoku/ocr/Index.java
new file mode 100644
index 0000000..c4ec876
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/Index.java
@@ -0,0 +1,54 @@
+/**
+ *
+ */
+package master.sudoku.ocr;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class Index {
+ public static int INVALID_INDEX = -1;
+
+ private int i = INVALID_INDEX;
+ private int j = INVALID_INDEX;
+
+ /**
+ * Constructor
+ * @param i
+ * @param j
+ */
+ public Index(int i, int j) {
+ this.i = i;
+ this.j = j;
+ }
+
+ public boolean Equals(int i, int j) {
+ return this.i == i && this.j == j;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if(!(o instanceof Index)) {
+ return false;
+ }
+ Index other = (Index)o;
+ return other.Equals(this.i, this.j);
+ }
+
+ public int getI() {
+ return i;
+ }
+
+ public void setI(int i) {
+ this.i = i;
+ }
+
+ public int getJ() {
+ return j;
+ }
+
+ public void setJ(int j) {
+ this.j = j;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/ocr/Recognizer.java b/app/src/main/java/master/sudoku/ocr/Recognizer.java
new file mode 100644
index 0000000..534d6e1
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/Recognizer.java
@@ -0,0 +1,140 @@
+/**
+ *
+ */
+package master.sudoku.ocr;
+
+import android.graphics.Bitmap;
+
+import java.util.List;
+
+import master.sudoku.ocr.matrix.ImageMatrix;
+
+
+/**
+ * @author dannyzha
+ *
+ */
+public class Recognizer
+{
+ private Bitmap mImage;
+
+// private static final String BASE_FOLDER = FileUtils.getCachePath() + "\\Sudoku\\training\\";
+ ///
+ /// key: Integer
+ /// value: List of ImageMatrix with the standard images
+ ///
+// private static Hashtable> s_StandardTable;
+
+ ///
+ /// static initializer
+ ///
+// static
+// {
+// buildStandardTable();
+// printStandardTable();
+// }
+
+ ///
+ /// Constructor
+ ///
+ ///
+ public Recognizer(Bitmap image)
+ {
+ this.mImage = image;
+ }
+
+ public int determine()
+ {
+ ImageMatrix target = new ImageMatrix(mImage);
+ int result = 0;
+ if (target.isBlank())
+ {
+ return 0;
+ }
+ int featureValue = target.getFeature().getFeatureValue();
+ if (featureValue > 0)
+ {
+ return featureValue;
+ }
+// double maxSimilarity = Double.MIN_VALUE;
+// while(enu.hasMoreElements())
+// {
+// int i = enu.nextElement();
+// List standards = s_StandardTable.get(i);
+// for (int j = 0; j < standards.size(); j++)
+// {
+// //System.Console.WriteLine("Determine " + i + "," + j);
+// double similarity = target.getFeature().getSimilarity(standards.get(j));
+// //System.Console.WriteLine("Similarity is:" + similarity);
+// if (similarity > maxSimilarity)
+// {
+// maxSimilarity = similarity;
+// result = i;
+// }
+// }
+// }
+// System.Console.WriteLine("Max similarity is:" + maxSimilarity);
+// System.Console.WriteLine("Result is:" + result);
+ return result;
+ }
+
+// private static void buildStandardTable()
+// {
+// s_StandardTable = new Hashtable>();
+// for (int i = 0; i <= 9; i++)
+// {
+// String folder = BASE_FOLDER + i;
+// File dic = new File(folder);
+// File[] files = dic.listFiles();
+// List imgMatrixList = new ArrayList();
+// for (int j = 0; j < files.length; j++)
+// {
+// try
+// {
+// Bitmap img = BitmapFactory.decodeFile(files[i].getAbsolutePath());
+// ImageMatrix matrix = new ImageMatrix(img);
+// imgMatrixList.add(matrix);
+// }
+// catch (Exception ex)
+// {
+// ex.printStackTrace();
+// }
+// }
+// s_StandardTable.put(i, imgMatrixList);
+// }
+// }
+
+// private static void printStandardTable()
+// {
+// Enumeration enu = s_StandardTable.keys();
+// while (enu.hasMoreElements())
+// {
+// int i = (int)enu.nextElement();
+// List standards = (List)s_StandardTable.get(i);
+// for (int j = 0; j < standards.size(); j++)
+// {
+// MatrixFeature2 feature = standards.get(j).getFeature();
+// System.out.println("Feature of " + i + ":");
+// System.out.print("Density X:");
+// printList(feature.mDensityX);
+// System.out.print("Density Y:");
+// printList(feature.mDensityY);
+// System.out.print("Segment X:");
+// printList(feature.mSegmentX);
+// System.out.println("Segment Y:");
+// printList(feature.mSegmentY);
+// System.out.println("============================");
+// }
+// }
+// }
+
+ private static void printList(List list)
+ {
+ for(int i=0; i ThresholdUtil.DARK_THRESHOLD) {
+ result[i][j] = 1;
+ } else {
+ result[i][j] = 0;
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/ocr/matrix/BoundaryMatrix.java b/app/src/main/java/master/sudoku/ocr/matrix/BoundaryMatrix.java
new file mode 100644
index 0000000..bb0e481
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/matrix/BoundaryMatrix.java
@@ -0,0 +1,226 @@
+/**
+ *
+ */
+package master.sudoku.ocr.matrix;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import master.sudoku.logs.Logger;
+import master.sudoku.ocr.util.ThresholdUtil;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class BoundaryMatrix extends MatrixBase {
+
+ private int mLeft;
+ private int mRight;
+ private int mTop;
+ private int mBottom;
+
+ private List mBoundaryXList;
+ private List mBoundaryYList;
+
+ private List mBoundaryWidthXList;
+ private List mBoundaryWidthYList;
+
+ ///
+ /// average interval between boundaries
+ ///
+ private int mAveIntervalX = 0;
+ private int mAveIntervalY = 0;
+
+ ///
+ /// Constructor
+ ///
+ ///
+ ///
+ public BoundaryMatrix(int dimensionX, int dimensionY)
+ {
+ super(dimensionX, dimensionY);
+ mBoundaryXList = new ArrayList();
+ mBoundaryYList = new ArrayList();
+ mBoundaryWidthXList = new ArrayList();
+ mBoundaryWidthYList = new ArrayList();
+ }
+
+
+ public int getLeft() {
+ return mLeft;
+ }
+
+ public void setLeft(int left) {
+ mLeft = left;
+ }
+
+ public int getRight() {
+ return mRight;
+ }
+
+ public void setRight(int right) {
+ mRight = right;
+ }
+
+ public int getTop() {
+ return mTop;
+ }
+
+ public void setTop(int top) {
+ mTop = top;
+ }
+
+ public int getBottom() {
+ return mBottom;
+ }
+
+ public void setBottom(int bottom) {
+ mBottom = bottom;
+ }
+
+ ///
+ ///
+ ///
+ public List getBoundaryXList()
+ {
+ return new ArrayList(mBoundaryXList);
+ }
+
+ public List getBoundaryYList()
+ {
+ return new ArrayList(mBoundaryYList);
+ }
+
+ public List getBoundaryWidthXList()
+ {
+ return new ArrayList(mBoundaryWidthXList);
+ }
+
+ public List getBoundaryWidthYList()
+ {
+ return new ArrayList(mBoundaryWidthYList);
+ }
+
+ /* (non-Javadoc)
+ * @see com.skyway.pandora.digitsrecognizer.matrix.MatrixBase#getValue(int, int)
+ */
+ @Override
+ public int getValue(int x, int y)
+ {
+ if(x < 0 || x > mDimensionX || y < 0 || y > mDimensionY)
+ {
+ return -1;
+ }
+ for (int i = 0; i < mBoundaryXList.size(); i++)
+ {
+ if (mBoundaryXList.get(i) == x)
+ {
+ return ThresholdUtil.DARK_VALUE;
+ }
+ }
+ for (int i = 0; i < mBoundaryYList.size(); i++)
+ {
+ if (mBoundaryYList.get(i) == y)
+ {
+ return ThresholdUtil.DARK_VALUE;
+ }
+ }
+ return ThresholdUtil.SHALLOW_VALUE;
+ }
+//
+// public void addBoundaryX(int x)
+// {
+// if (mBoundaryXList.size() > 0)
+// {
+// int interval = Math.abs(x - mBoundaryXList.get(mBoundaryXList.size() - 1));
+// if (interval <= mBoundaryWidthXList.get(mBoundaryXList.size() - 1)
+// || interval < mAveIntervalX / 2)
+// {
+// mBoundaryWidthXList.set(mBoundaryXList.size() - 1, interval + 1);
+// return;
+// }
+// mAveIntervalX = ((mAveIntervalX * mBoundaryXList.size()) + interval) / (mBoundaryXList.size() + 1);
+// }
+// mBoundaryXList.add(x);
+// mBoundaryWidthXList.add(1);
+// }
+//
+// public void addBoundaryY(int y)
+// {
+// if (mBoundaryYList.size() > 0)
+// {
+// int interval = Math.abs(y - mBoundaryYList.get(mBoundaryYList.size() - 1));
+// if (interval <= mBoundaryWidthYList.get(mBoundaryYList.size() - 1)
+// || interval < mAveIntervalY / 2)
+// {
+// mBoundaryWidthYList.set(mBoundaryYList.size() - 1, interval + 1);
+// return;
+// }
+// mAveIntervalY = ((mAveIntervalY * mBoundaryYList.size()) + interval) / (mBoundaryYList.size() + 1);
+// }
+// mBoundaryYList.add(y);
+// mBoundaryWidthYList.add(1);
+// }
+
+ public void clear()
+ {
+ mBoundaryXList.clear();
+ mBoundaryYList.clear();
+ }
+
+ public void generateBoundarys() {
+ this.clear();
+ Logger.getLogger().debug("left:" + mLeft + ", right:" + mRight + ", top:" + mTop + ", bottom:" + mBottom);
+ int mAveIntervalX = (mRight - mLeft) / 9;
+ int mAveIntervalY = (mBottom - mTop) / 9;
+ Logger.getLogger().debug("interval X:" + mAveIntervalX + ", interval Y:" + mAveIntervalY);
+ for (int i = 0; i < 10; i++) {
+ int x = mLeft + i * mAveIntervalX;
+ int y = mTop + i * mAveIntervalY;
+ Logger.getLogger().debug("boundary X" + i + ":" + x + ", boundary Y" + i + ":" + y);
+ mBoundaryXList.add(x);
+ mBoundaryYList.add(y);
+ mBoundaryWidthXList.add(1); // consider boundary line width 1px
+ mBoundaryWidthYList.add(1);
+ }
+ }
+
+ public boolean isValid()
+ {
+ return mBoundaryXList.size() == 10 && mBoundaryYList.size() == 10;
+ }
+
+ @Override
+ public void setValue(int x, int y, int value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isSimilar(MatrixBase another) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void justifyBoundaries(List xBoundaryList, List yBoundaryList) {
+ if (xBoundaryList.size() == 8) {
+ for (int i = 0; i < 8; i++) {
+ int idealX = mBoundaryXList.get(i + 1);
+ int lineX = xBoundaryList.get(i);
+ if (Math.abs(lineX - idealX) <= 5) {
+ mBoundaryXList.set(i + 1, lineX);
+ }
+ }
+ }
+ if (yBoundaryList.size() == 8) {
+ for (int i = 0; i < 8; i++) {
+ int idealY = mBoundaryYList.get(i + 1);
+ int lineY = yBoundaryList.get(i);
+ if (Math.abs(lineY - idealY) <= 5) {
+ mBoundaryYList.set(i + 1, lineY);
+ }
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/master/sudoku/ocr/matrix/ImageMatrix.java b/app/src/main/java/master/sudoku/ocr/matrix/ImageMatrix.java
new file mode 100644
index 0000000..2a13a4c
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/matrix/ImageMatrix.java
@@ -0,0 +1,133 @@
+/**
+ *
+ */
+//using System.Windows.Controls;
+//using System.Windows.Media;
+//using System.Windows.Media.Imaging;
+package master.sudoku.ocr.matrix;
+
+import master.sudoku.ocr.util.ThresholdUtil;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class ImageMatrix extends MatrixBase
+{
+ private Bitmap mImage;
+ private MatrixFeature2 mFeature;
+
+ public ImageMatrix(Bitmap image)
+ {
+ super(image.getWidth(), image.getHeight());
+ mImage = image;
+
+ mFeature = new MatrixFeature2(this);
+ //Image img = new Image();
+ //img.source = bi;
+
+ //img.Measure(new Size(100, 100));
+ //img.Arrange(new Rect(0, 0, 100, 100));
+
+ //ScaleTransform scaleTrans = new ScaleTransform();
+ //double scale = (double)500 / (double)Math.Max(bi.PixelHeight, bi.PixelWidth);
+ //scaleTrans.CenterX = 0;
+ //scaleTrans.CenterY = 0;
+ //scaleTrans.ScaleX = scale;
+ //scaleTrans.ScaleY = scale;
+
+ //WriteableBitmap writeableBitmap = new WriteableBitmap(500, 500);
+ //writeableBitmap.Render(img, scaleTrans);
+
+ //int[] pixelData = writeableBitmap.Pixels;
+ }
+
+ public MatrixFeature2 getFeature()
+ {
+ return mFeature;
+ }
+
+ public boolean isBlank()
+ {
+ return mFeature.isBlank();
+ }
+
+ public int getColor(int x, int y)
+ {
+ if (x < 0 || x > mDimensionX || y < 0 || y > mDimensionY)
+ {
+ return Color.WHITE;
+ }
+ return mImage.getPixel(x, y);
+ }
+
+ /* (non-Javadoc)
+ * @see com.skyway.pandora.digitsrecognizer.matrix.MatrixBase#getValue(int, int)
+ */
+ @Override
+ public int getValue(int x, int y)
+ {
+ if (x < 0 || x > mDimensionX || y < 0 || y > mDimensionY)
+ {
+ return -1;
+ }
+ int c = mImage.getPixel(x, y);
+ return ThresholdUtil.GetDarkValue(c);
+ }
+
+ /* (non-Javadoc)
+ * @see com.skyway.pandora.digitsrecognizer.matrix.MatrixBase#setValue(int, int, int)
+ */
+ @Override
+ public void setValue(int x, int y, int value)
+ {
+ // intended do nothing
+ }
+
+ @Override
+ public boolean isSimilar(MatrixBase another)
+ {
+ return false;
+ //if (!(another is ImageMatrix))
+ //{
+ // return false;
+ //}
+ //double similarity = this.mFeature.getSimilarity(((ImageMatrix)another).Feature);
+ //System.Console.WriteLine("Similarity is:" + similarity);
+ //if (similarity > 90)
+ //{
+ // return true;
+ //}
+ //return false;
+ }
+
+ //public double getSimilarity(MatrixBase another)
+ //{
+ // if (!(another is ImageMatrix))
+ // {
+ // return 0;
+ // }
+ // return this.mFeature.getSimilarity(((ImageMatrix)another).Feature);
+ //}
+
+ //private void buildColorTable()
+ //{
+ // for (int x = 0; x < mDimensionX; x++)
+ // {
+ // for (int y = 0; y < mDimensionY; y++)
+ // {
+ // Color c = mImage.GetPixel(x, y);
+ // if (mColorTable.ContainsKey(c))
+ // {
+ // mColorTable[c] = (int)mColorTable[c] + 1;
+ // }
+ // else
+ // {
+ // mColorTable.Add(c, 1);
+ // }
+ // }
+ // }
+ //}
+}
\ No newline at end of file
diff --git a/app/src/main/java/master/sudoku/ocr/matrix/MatrixBase.java b/app/src/main/java/master/sudoku/ocr/matrix/MatrixBase.java
new file mode 100644
index 0000000..6904702
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/matrix/MatrixBase.java
@@ -0,0 +1,40 @@
+/**
+ *
+ */
+package master.sudoku.ocr.matrix;
+
+/**
+ * @author dannyzha
+ *
+ */
+abstract public class MatrixBase
+{
+ protected int mDimensionX;
+ protected int mDimensionY;
+
+ public int getDimensionX()
+ {
+ return mDimensionX;
+ }
+
+ public int getDimensionY()
+ {
+ return mDimensionY;
+
+ }
+
+ /**
+ * Constructor
+ * @param dimensionX
+ * @param dimensionY
+ */
+ public MatrixBase(int dimensionX, int dimensionY)
+ {
+ mDimensionX = dimensionX;
+ mDimensionY = dimensionY;
+ }
+
+ public abstract int getValue(int x, int y);
+ public abstract void setValue(int x, int y, int value);
+ public abstract boolean isSimilar(MatrixBase another);
+}
diff --git a/app/src/main/java/master/sudoku/ocr/matrix/MatrixFeature.java b/app/src/main/java/master/sudoku/ocr/matrix/MatrixFeature.java
new file mode 100644
index 0000000..0471a1f
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/matrix/MatrixFeature.java
@@ -0,0 +1,438 @@
+package master.sudoku.ocr.matrix;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import master.sudoku.ocr.util.MatrixUtil;
+import master.sudoku.ocr.util.ThresholdUtil;
+
+class CountArray
+{
+ public int count1 = 0;
+ public int count2 = 0;
+ public int count3 = 0;
+ public int count4 = 0;
+ public int countN = 0;
+}
+
+public class MatrixFeature
+{
+ ///
+ /// density of dark pixels, in persentage
+ ///
+ public List mDensityX = new ArrayList(); // indexed by X
+ public List mDensityY = new ArrayList(); // indexed by Y
+
+ ///
+ /// the number of segments with dark pixels
+ ///
+ public List mSegmentX = new ArrayList(); // indexed by X
+ public List mSegmentY = new ArrayList(); // indexed by Y
+
+ public List mPossibleValue = new ArrayList();
+
+ ///
+ /// Constructor
+ ///
+ ///
+ public MatrixFeature(MatrixBase matrix)
+ {
+ generateFeature(matrix);
+ checkMode();
+ if (mSegmentX.size() > 0)
+ MaxSegmentX = MatrixUtil.getMax(mSegmentX);
+ if (mSegmentY.size() > 0)
+ MaxSegmentY = MatrixUtil.getMax(mSegmentY);
+ }
+
+ public int SegmentModeX;
+ public int SegmentModeY;
+ public int MaxSegmentX;
+ public int MaxSegmentY;
+
+ public List getDensityX()
+ {
+ return new ArrayList(mDensityX);
+ }
+
+ public List getDensityY()
+ {
+ return new ArrayList(mDensityY);
+ }
+
+ public List getSegmentX()
+ {
+ return new ArrayList(mSegmentX);
+ }
+
+ public List getSegmentY()
+ {
+ return new ArrayList(mSegmentY);
+ }
+
+ public int getDensitySumX()
+ {
+ return getListSum(mDensityX);
+ }
+
+ public int getDensitySumY()
+ {
+ return getListSum(mDensityY);
+ }
+
+ public int getSegmentSumX()
+ {
+ return getListSum(mSegmentX);
+ }
+
+ public int getSegmentSumY()
+ {
+ return getListSum(mSegmentY);
+ }
+
+ private int getListSum(List list)
+ {
+ int sum = 0;
+ for (int i = 0; i < list.size(); i++)
+ {
+ sum += list.get(i);
+ }
+ return sum;
+ }
+
+ public boolean IsBlank()
+ {
+ return mDensityX.size() == 0 && mDensityY.size() == 0 && mSegmentX.size() == 0 && mSegmentY.size() == 0;
+ }
+
+ public int GetResampleDensityX(int x, int dimensionX)
+ {
+ return resample(mDensityX, x, dimensionX);
+ }
+
+ public int GetResampleDensityY(int y, int dimensionY)
+ {
+ return resample(mDensityY, y, dimensionY);
+ }
+
+ public int GetResampleSegmentX(int x, int dimensionX)
+ {
+ return resample(mSegmentX, x, dimensionX);
+ }
+
+ public int GetResampleSegmentY(int y, int dimensionY)
+ {
+ return resample(mSegmentY, y, dimensionY);
+ }
+
+ private int resample(List source, int newIndex, int newCount)
+ {
+ if (source.size() == 0 || newCount == 0) return 0;
+ if (newCount == source.size()) return source.get(newIndex);
+
+ int idx = source.size() * newIndex / newCount;
+ int cur = source.get(idx);
+ int prev = idx > 1 ? source.get(idx - 1) : cur;
+ int next = idx < source.size() - 1 ? source.get(idx + 1) : cur;
+
+ return (int)(cur + prev + next)/3;
+ }
+
+ ///
+ /// get similarity of two MatrixFeature
+ ///
+ ///
+ /// in between 0 and 100
+ public double getSimilarity(MatrixFeature another)
+ {
+ double result = 100;
+ for (int x = 0; x < mDensityX.size(); x++)
+ {
+ int anotherDensity = another.GetResampleDensityX(x, mDensityX.size());
+ double diff = (anotherDensity - mDensityX.get(x)) / (double)mDensityX.get(x);
+ result -= diff > 0 ? diff : (-diff);
+ }
+
+ for (int y = 0; y < mDensityY.size(); y++)
+ {
+ int anotherDensity = another.GetResampleDensityY(y, mDensityY.size());
+ double diff = (anotherDensity - mDensityY.get(y)) / (double)mDensityY.get(y);
+ result -= diff > 0 ? diff : (-diff);
+ }
+
+
+ for (int x = 0; x < mSegmentX.size(); x++)
+ {
+ int anotherSegment = another.GetResampleSegmentX(x, mSegmentX.size());
+ double diff = (anotherSegment - mSegmentX.get(x)) / (double)mSegmentX.get(x);
+ result -= diff > 0 ? diff : (-diff);
+ }
+
+ for (int y = 0; y < mSegmentY.size(); y++)
+ {
+ int anotherSegment = another.GetResampleSegmentY(y, mSegmentY.size());
+ double diff = (anotherSegment - mSegmentY.get(y)) / (double)mSegmentY.get(y);
+ result -= diff > 0 ? diff : (-diff);
+ }
+
+ result -= Math.abs(this.SegmentModeX - another.SegmentModeX);
+ result -= Math.abs(this.SegmentModeY - another.SegmentModeY);
+ result -= Math.abs(this.MaxSegmentX - another.MaxSegmentX);
+ result -= Math.abs(this.MaxSegmentY - another.MaxSegmentY);
+
+ return result;
+ }
+
+ private void generateFeature(MatrixBase matrix)
+ {
+ // generate the features on X-direction
+ for (int x = 0; x < matrix.getDimensionX(); x++)
+ {
+ int preValue = ThresholdUtil.SHALLOW_VALUE;
+ int darkCount = 0;
+ int segmentCount = 0;
+ for (int y = 0; y < matrix.getDimensionY(); y++)
+ {
+ int value = matrix.getValue(x, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD)
+ {
+ darkCount++;
+ if (preValue == ThresholdUtil.SHALLOW_VALUE)
+ {
+ segmentCount++;
+ }
+ preValue = ThresholdUtil.DARK_VALUE;
+ }
+ else
+ {
+ preValue = ThresholdUtil.SHALLOW_VALUE;
+ }
+ }
+ int density = darkCount * 100 / matrix.getDimensionY();
+ if (density > 0)
+ {
+ mDensityX.add(density);
+ }
+ if (segmentCount > 0)
+ {
+ mSegmentX.add(segmentCount);
+ }
+ }
+
+ // generate the features on Y-direction
+ for (int y = 0; y < matrix.getDimensionY(); y++)
+ {
+ int preValue = ThresholdUtil.SHALLOW_VALUE;
+ int darkCount = 0;
+ int segmentCount = 0;
+ for (int x = 0; x < matrix.getDimensionX(); x++)
+ {
+ int value = matrix.getValue(x, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD)
+ {
+ darkCount++;
+ if (preValue == ThresholdUtil.SHALLOW_VALUE)
+ {
+ segmentCount++;
+ }
+ preValue = ThresholdUtil.DARK_VALUE;
+ }
+ else
+ {
+ preValue = ThresholdUtil.SHALLOW_VALUE;
+ }
+ }
+ int density = darkCount * 100 / matrix.getDimensionX();
+ if (density > 0)
+ {
+ mDensityY.add(density);
+ }
+ if (segmentCount > 0)
+ {
+ mSegmentY.add(segmentCount);
+ }
+ }
+ }
+
+ ///
+ /// directly get value based on the feature
+ ///
+ ///
+ public int getFeatureValue()
+ {
+ //if (mDensityX.size() == 0 || mDensityY.size() == 0)
+ //{
+ // return 0;
+ //}
+ //for (int i = 1; i <= 9; i++)
+ //{
+ // mPossibleValue.Add(i);
+ //}
+ //IEnumerable modePossibleList = checkMode();
+ //IEnumerable maxPossibleList = checkMax();
+
+ //IEnumerable result = modePossibleList.Intersect(maxPossibleList);
+
+ //mPossibleValue.Clear();
+ //IEnumerator enu = result.GetEnumerator();
+ //while (enu.MoveNext())
+ //{
+ // mPossibleValue.Add(enu.Current);
+ //}
+ //if (mPossibleValue.size() == 1)
+ //{
+ // return mPossibleValue[0];
+ //}
+ return -1;
+ }
+
+ private void checkMode()
+ {
+ int count1 = 0, count2 = 0, count3 = 0, count4 = 0, countN = 0;
+ // check mode on X direction
+ CountArray countArr = new CountArray();
+ getCount(mSegmentX, countArr);
+ int max = getMax(countArr);
+ HashSet possibleValueX = new HashSet();
+ if (max == count3)
+ {
+ this.SegmentModeX = 3;
+ //possibleValueX.Add(2);
+ //possibleValueX.Add(5);
+ //possibleValueX.Add(6);
+ //possibleValueX.Add(8);
+ //possibleValueX.Add(9);
+ }
+ else if (max == count2)
+ {
+ this.SegmentModeX = 2;
+ //possibleValueX.Add(3);
+ //possibleValueX.Add(4);
+ //possibleValueX.Add(7);
+ }
+ else if (max == count1)
+ {
+ this.SegmentModeX = 1;
+ //possibleValueX.Add(1);
+ }
+
+ // check mode on Y direction
+ getCount(mSegmentY, countArr);
+ max = getMax(countArr);
+ HashSet possibleValueY = new HashSet();
+ if (max == count2)
+ {
+ this.SegmentModeY = 2;
+ //possibleValueY.Add(2);
+ //possibleValueY.Add(3);
+ //possibleValueY.Add(4);
+ //possibleValueY.Add(6);
+ //possibleValueY.Add(8);
+ //possibleValueY.Add(9);
+ }
+ else if (max == count1)
+ {
+ this.SegmentModeY = 1;
+ //possibleValueY.Add(1);
+ //possibleValueY.Add(2);
+ //possibleValueY.Add(3);
+ //possibleValueY.Add(4);
+ //possibleValueY.Add(5);
+ //possibleValueY.Add(7);
+ }
+
+ //return possibleValueX.Intersect(possibleValueY);
+ }
+
+ private Iterable checkMax()
+ {
+ int xMax = MatrixUtil.getMax(mSegmentX);
+ HashSet possibleValueX = new HashSet();
+ if (xMax == 1)
+ {
+ possibleValueX.add(1);
+ }
+ else if (xMax == 2)
+ {
+ possibleValueX.add(1);
+ possibleValueX.add(7);
+ }
+ else if (xMax == 3)
+ {
+ possibleValueX.add(2);
+ possibleValueX.add(3);
+ possibleValueX.add(5);
+ possibleValueX.add(6);
+ possibleValueX.add(9);
+ }
+ else if (xMax == 4)
+ {
+ possibleValueX.add(2);
+ possibleValueX.add(3);
+ possibleValueX.add(5);
+ possibleValueX.add(6);
+ possibleValueX.add(8);
+ }
+ int yMax = MatrixUtil.getMax(mSegmentY);
+ HashSet possibleValueY = new HashSet();
+ if (yMax == 1)
+ {
+ possibleValueY.add(1);
+ possibleValueY.add(7);
+ }
+ else if (yMax == 2)
+ {
+ possibleValueY.add(2);
+ possibleValueY.add(3);
+ possibleValueY.add(4);
+ possibleValueY.add(5);
+ possibleValueY.add(6);
+ possibleValueY.add(7);
+ possibleValueY.add(8);
+ possibleValueY.add(9);
+ }
+ else if (yMax == 3)
+ {
+ possibleValueY.add(6);
+ possibleValueY.add(9);
+ }
+ return MatrixUtil.intersect(possibleValueX, possibleValueY);
+ }
+
+ private void getCount(List input, CountArray countArr)
+ {
+ for (int i = 0; i < input.size(); i++)
+ {
+ switch (input.get(i))
+ {
+ case 1:
+ countArr.count1 ++;
+ break;
+ case 2:
+ countArr.count2++;
+ break;
+ case 3:
+ countArr.count3++;
+ break;
+ case 4:
+ countArr.count4++;
+ break;
+ default:
+ countArr.countN++;
+ break;
+ }
+ }
+ }
+
+ private int getMax(CountArray countArr)
+ {
+ return Math.max(
+ Math.max(
+ Math.max(
+ Math.max(countArr.count1, countArr.count2),
+ countArr.count3),
+ countArr.count4),
+ countArr.countN);
+ }
+}
diff --git a/app/src/main/java/master/sudoku/ocr/matrix/MatrixFeature2.java b/app/src/main/java/master/sudoku/ocr/matrix/MatrixFeature2.java
new file mode 100644
index 0000000..9aca0e2
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/matrix/MatrixFeature2.java
@@ -0,0 +1,287 @@
+package master.sudoku.ocr.matrix;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import master.sudoku.ocr.util.MatrixUtil;
+import master.sudoku.ocr.util.ThresholdUtil;
+
+
+public class MatrixFeature2
+{
+ private int mAxisX = 0;
+ private int mHoleCnt = 0;
+ private int mLeftPitCnt = 0;
+ private int mRightPitCnt = 0;
+ private int mFirstPitPos = 0; // 1 for left, 2 for right, to distinguish '2' and '5'
+ private boolean mHasAxisX = false;
+
+ ///
+ /// intersections on the x-axis
+ ///
+ private List mIntersections = new ArrayList();
+
+ ///
+ /// density of dark pixels, in persentage
+ ///
+ public List mDensityX = new ArrayList(); // indexed by X
+ public List mDensityY = new ArrayList(); // indexed by Y
+
+ ///
+ /// the number of segments with dark pixels
+ ///
+ public List mSegmentX = new ArrayList(); // indexed by X
+ public List mSegmentY = new ArrayList(); // indexed by Y
+
+ ///
+ /// Constructor
+ ///
+ ///
+ public MatrixFeature2(MatrixBase matrix)
+ {
+ if (matrix.getDimensionX() <= 3 || matrix.getDimensionY() <= 3)
+ return;
+ generateFeature(matrix);
+ }
+
+ public boolean isBlank()
+ {
+ return mSegmentX.size() == 0 || mSegmentY.size() == 0
+ || mDensityX.size() == 0 || mDensityY.size() == 0
+ || mIntersections.size() == 0;
+ }
+
+ public int getFeatureValue()
+ {
+ int maxSegmentX = MatrixUtil.getMax(mSegmentX);
+ int maxSegmentY = MatrixUtil.getMax(mSegmentY);
+ int maxDensityX = MatrixUtil.getMax(mDensityX);
+
+ if (mHasAxisX)
+ {
+ if (maxSegmentY == 1)
+ return 1;
+ else
+ return 4;
+ }
+ switch (mHoleCnt)
+ {
+ case 0:
+ if (mLeftPitCnt == 0)
+ {
+ if (mRightPitCnt == 1)
+ {
+ return 7;
+ }
+ if (mRightPitCnt == 2)
+ return 3;
+ }
+ if (mLeftPitCnt == 1)
+ {
+ if (mRightPitCnt == 1)
+ {
+ if (mFirstPitPos == 1)
+ return 5;
+ else
+ return 2;
+ }
+ }
+ break;
+ case 1:
+ if (mLeftPitCnt == 1)
+ {
+ if (mRightPitCnt == 2)
+ {
+ if (maxDensityX >= 99)
+ return 4;
+ else
+ return 9;
+ }
+ else
+ return 4;
+ }
+ else if (mLeftPitCnt == 2)
+ return 6;
+ break;
+ case 2:
+ return 8;
+
+ }
+ return 0;
+ }
+
+ private void generateFeature(MatrixBase matrix)
+ {
+ mAxisX = matrix.getDimensionX() / 2;
+ generateIntersections(matrix);
+ generateDensityAndSegment(matrix);
+ checkPitAndHole(matrix);
+ }
+
+ private void generateDensityAndSegment(MatrixBase matrix)
+ {
+ // generate density and segment-count on X-direction
+ for (int x = 0; x < matrix.getDimensionX(); x++)
+ {
+ int preValue = ThresholdUtil.SHALLOW_VALUE;
+ int darkCount = 0;
+ int segmentCount = 0;
+ for (int y = 0; y < matrix.getDimensionY(); y++)
+ {
+ int value = matrix.getValue(x, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD)
+ {
+ darkCount++;
+ if (preValue == ThresholdUtil.SHALLOW_VALUE)
+ {
+ segmentCount++;
+ }
+ preValue = ThresholdUtil.DARK_VALUE;
+ }
+ else
+ {
+ preValue = ThresholdUtil.SHALLOW_VALUE;
+ }
+ }
+ int density = darkCount * 100 / matrix.getDimensionY();
+ if (density > 0)
+ {
+ mDensityX.add(density);
+ }
+ if (segmentCount > 0)
+ {
+ mSegmentX.add(segmentCount);
+ }
+ }
+
+ // generate density and segment-count on Y-direction
+ for (int y = 0; y < matrix.getDimensionY(); y++)
+ {
+ int preValue = ThresholdUtil.SHALLOW_VALUE;
+ int darkCount = 0;
+ int segmentCount = 0;
+ for (int x = 0; x < matrix.getDimensionX(); x++)
+ {
+ int value = matrix.getValue(x, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD)
+ {
+ darkCount++;
+ if (preValue == ThresholdUtil.SHALLOW_VALUE)
+ {
+ segmentCount++;
+ }
+ preValue = ThresholdUtil.DARK_VALUE;
+ }
+ else
+ {
+ preValue = ThresholdUtil.SHALLOW_VALUE;
+ }
+ }
+ int density = darkCount * 100 / matrix.getDimensionX();
+ if (density > 0)
+ {
+ mDensityY.add(density);
+ }
+ if (segmentCount > 0)
+ {
+ mSegmentY.add(segmentCount);
+ }
+ }
+ }
+
+ private void generateIntersections(MatrixBase matrix)
+ {
+ // get intersections on x-axis
+ int preValue = ThresholdUtil.SHALLOW_VALUE;
+ for (int y = 0; y < matrix.getDimensionY(); y++)
+ {
+ int value = matrix.getValue(mAxisX, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD && preValue == ThresholdUtil.SHALLOW_VALUE)
+ {
+ mIntersections.add(y);
+ preValue = ThresholdUtil.DARK_VALUE;
+ }
+ else if (value > ThresholdUtil.DARK_THRESHOLD && preValue == ThresholdUtil.DARK_VALUE)
+ {
+ mIntersections.add(y);
+ preValue = ThresholdUtil.SHALLOW_VALUE;
+ }
+ }
+ if (preValue == ThresholdUtil.DARK_VALUE && mIntersections.size() <= 2)
+ {
+ mHasAxisX = true;
+ }
+ }
+
+ private void checkPitAndHole(MatrixBase matrix)
+ {
+ for (int i = 1; i + 1 < mIntersections.size(); i += 2)
+ {
+ boolean leftPit = false, rightPit = false;
+ if (hasLeftPit(mIntersections.get(i), mIntersections.get(i+1), matrix))
+ {
+ leftPit = true;
+ mLeftPitCnt++;
+ }
+ if (hasRightPit(mIntersections.get(i), mIntersections.get(i+1), matrix))
+ {
+ rightPit = true;
+ mRightPitCnt++;
+ }
+ if (leftPit && rightPit)
+ {
+ mHoleCnt++;
+ }
+ if (mFirstPitPos==0)
+ {
+ if (leftPit)
+ mFirstPitPos = 1;
+ else if (rightPit)
+ mFirstPitPos = 2;
+ }
+ }
+ }
+
+ private boolean hasLeftPit(int y1, int y2, MatrixBase matrix)
+ {
+ for (int y = y1; y < y2; y++)
+ {
+ int x = mAxisX;
+ for (; x >= 0; x--)
+ {
+ int value = matrix.getValue(x, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD)
+ {
+ break;
+ }
+ }
+ if (x <= 0)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private boolean hasRightPit(int y1, int y2, MatrixBase matrix)
+ {
+ for (int y = y1; y < y2; y++)
+ {
+ int x = mAxisX;
+ for (; x < matrix.getDimensionX(); x++)
+ {
+ int value = matrix.getValue(x, y);
+ if (value <= ThresholdUtil.DARK_THRESHOLD)
+ {
+ break;
+ }
+ }
+ if (x >= matrix.getDimensionX())
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/master/sudoku/ocr/util/MatrixUtil.java b/app/src/main/java/master/sudoku/ocr/util/MatrixUtil.java
new file mode 100644
index 0000000..d179f76
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/util/MatrixUtil.java
@@ -0,0 +1,159 @@
+/**
+ *
+ */
+package master.sudoku.ocr.util;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import master.sudoku.ocr.matrix.BoundaryMatrix;
+import master.sudoku.ocr.matrix.ImageMatrix;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class MatrixUtil
+{
+ public static BoundaryMatrix detectBoundary(ImageMatrix imgMatrix)
+ {
+ BoundaryMatrix result = new BoundaryMatrix(imgMatrix.getDimensionX(), imgMatrix.getDimensionY());
+ int left = findBoundary(imgMatrix, true, true);
+ int top = findBoundary(imgMatrix, false, true);
+ int right = findBoundary(imgMatrix, true, false);
+ int bottom = findBoundary(imgMatrix, false, false);
+
+ result.setLeft(left);
+ result.setRight(right);
+ result.setTop(top);
+ result.setBottom(bottom);
+
+ result.generateBoundarys();
+
+ List xList = getInnerBoundarys(imgMatrix, left, right, top, bottom, true);
+ List yList = getInnerBoundarys(imgMatrix, left, right, top, bottom, false);
+ result.justifyBoundaries(xList, yList);
+ return result;
+ }
+
+ private static int findBoundary(ImageMatrix imgMatrix, boolean isHorizontal, boolean isAscend) {
+ int limit = isHorizontal ? imgMatrix.getDimensionX() : imgMatrix.getDimensionY();
+ int sampleLimit = isHorizontal ? imgMatrix.getDimensionY() : imgMatrix.getDimensionX();
+ int sampleSize = (int)(sampleLimit * 0.6);
+ for (int i = 0; i < limit; i++)
+ {
+ int foreColorCount = 0;
+ int idx = isAscend ? i : (limit - i -1);
+ for (int sampleIdx = 0; sampleIdx < sampleLimit; sampleIdx++)
+ {
+ int c = isHorizontal ? imgMatrix.getColor(idx, sampleIdx) : imgMatrix.getColor(sampleIdx, idx);
+ if (!ThresholdUtil.almostSameColor(ThresholdUtil.BG_COLOR, c))
+ {
+ foreColorCount++;
+ }
+ if (foreColorCount > sampleSize) {
+ break;
+ }
+ }
+ if (foreColorCount > sampleSize) {
+ return idx;
+ }
+ }
+ return 0;
+ }
+
+ private static List getInnerBoundarys(ImageMatrix imgMatrix, int left, int right, int top, int bottom, boolean isHorizontal) {
+ int boundaryTolerance = 5;
+ int idx1Lower = (isHorizontal ? left : top) + boundaryTolerance;
+ int idx1Upper = (isHorizontal ? right : bottom) - boundaryTolerance;
+ int idx2Lower = isHorizontal ? top : left;
+ int idx2Upper = isHorizontal ? bottom : right;
+ int foreCountLimit = (int)((idx2Upper - idx2Lower) * 0.8);
+ List result = new ArrayList();
+ int lastIdx = idx1Lower;
+ for (int idx1 = idx1Lower; idx1 < idx1Upper; idx1++) {
+ int foreColorCount = 0;
+ for (int idx2 = idx2Lower; idx2 < idx2Upper; idx2++) {
+ int c = isHorizontal ? imgMatrix.getColor(idx1, idx2) : imgMatrix.getColor(idx2, idx1);
+ if (!ThresholdUtil.almostSameColor(ThresholdUtil.BG_COLOR, c))
+ {
+ foreColorCount++;
+ }
+ }
+ if (foreColorCount > foreCountLimit && (idx1 - lastIdx) > boundaryTolerance) {
+ result.add(idx1);
+ lastIdx = idx1;
+ }
+ }
+ return result;
+ }
+
+// public static float calculateVariance(List samples)
+// {
+// float sumH = 0, sumS = 0, sumV = 0;
+// float aveH = 0, aveS = 0, aveV = 0;
+// for (int i = 0; i < samples.size(); i++)
+// {
+// sumH += samples.get(i)
+// sumS += samples[i].GetSaturation();
+// sumV += samples[i].GetBrightness();
+// }
+// aveH = sumH / samples.Count;
+// aveS = sumS / samples.Count;
+// aveV = sumV / samples.Count;
+// sumH = sumS = sumV = 0;
+// for (int i = 0; i < samples.Count; i++)
+// {
+// sumH += (samples[i].GetHue() - aveH) * (samples[i].GetHue() - aveH);
+// sumS += (samples[i].GetSaturation() - aveS) * (samples[i].GetSaturation() - aveS);
+// sumV += (samples[i].GetBrightness() - aveV) * (samples[i].GetBrightness() - aveV);
+// }
+// float resultH = sumH / samples.Count;
+// float resultS = sumS / samples.Count;
+// float resultV = sumV / samples.Count;
+//
+// return resultH + resultS + resultV;
+// }
+
+ public static int calculateVariance(List samples)
+ {
+ int sum = 0;
+ int ave = 0;
+ for (int i = 0; i < samples.size(); i++)
+ {
+ sum += samples.get(i);
+ }
+ ave = sum / samples.size();
+ sum = 0;
+ for (int i = 0; i < samples.size(); i++)
+ {
+ sum += (samples.get(i) - ave) * (samples.get(i) - ave);
+ }
+ int result = sum / samples.size();
+ return result / ave;
+ }
+
+ public static int getMax(List values) {
+ int result = Integer.MIN_VALUE;
+ for(int i=0; i intersect(HashSet values1, HashSet values2) {
+ List result = new LinkedList();
+ for(Iterator it = values1.iterator(); it.hasNext();) {
+ Integer value = it.next();
+ if(values2.contains(value)) {
+ result.add(value);
+ }
+ }
+ return result;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/master/sudoku/ocr/util/NeuralNetwork.java b/app/src/main/java/master/sudoku/ocr/util/NeuralNetwork.java
new file mode 100644
index 0000000..a69e34f
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/util/NeuralNetwork.java
@@ -0,0 +1,476 @@
+package master.sudoku.ocr.util;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Scanner;
+
+// MAS NEURONAS -> MENOR LEARNING RATE
+
+public class NeuralNetwork {
+
+ private int hiddenSize, inputSize, outputSize, iters;
+ private double[][] weightsItoH;
+ private double[][] weightsHtoO;
+ private double[] ah;
+ private double[] ai;
+ private double[] ao;
+ private double LEARNING_RATE;
+// private static final double E = 0.001;
+
+ /**
+ * Creates a MLPNN with specified input layer size, hidden layer size and an
+ * output layers size of 1. This neural network is trained via
+ * backpropagation.
+ *
+ * @param learningRate
+ * Value of the learning rate to be used in backpropagation.
+ * @param inputSize
+ * Size of the input layer.
+ * @param hiddenSize
+ * Size of the hidden layer.
+ * @param outputSize
+ * Size of the hidden layer.
+ */
+ public NeuralNetwork(double learningRate, int inputSize, int hiddenSize,
+ int outputSize) {
+ defaultInit(learningRate, inputSize, hiddenSize, outputSize);
+ }
+
+ /**
+ * Creates a MLPNN using the LR, layer sizes and weights specified in a
+ * file.
+ *
+ * @param filename
+ * Name of the file where the LR, layer. sizes and weights are
+ * saved.
+ * @param defLr
+ * Default learning rate to use if an error occurs.
+ * @param defInSize
+ * Default input layer size to use if an error occurs.
+ * @param defHiSize
+ * Default hidden layer size to use if an error occurs.
+ * @param defOutSize
+ * Default output layer size to use if an error occurs.
+ * @throws FileNotFoundException
+ * Thrown if the file is not found.
+ */
+ public NeuralNetwork(String filename, double defLr, int defInSize,
+ int defHiSize, int defOutSize) throws FileNotFoundException {
+ File file = new File(filename);
+ Scanner in = new Scanner(file);
+ try {
+ this.LEARNING_RATE = in.nextDouble();
+ this.inputSize = in.nextInt();
+ this.hiddenSize = in.nextInt();
+ this.outputSize = in.nextInt();
+ } catch (Exception e) {
+ in.close();
+ defaultInit(defLr, defInSize, defHiSize, defOutSize);
+ return;
+ }
+ init();
+ loadWeights(in, this.LEARNING_RATE, this.inputSize, this.hiddenSize,
+ this.outputSize);
+ in.close();
+ }
+
+ /**
+ * Initialize attributes.
+ */
+ private void init() {
+ this.weightsItoH = new double[this.inputSize][this.hiddenSize];
+ this.weightsHtoO = new double[this.hiddenSize][this.outputSize];
+ this.ai = new double[this.inputSize];
+ this.ah = new double[this.hiddenSize];
+ this.ao = new double[this.outputSize];
+ ah[this.hiddenSize - 1] = 1.0; // Bias units
+ ai[this.inputSize - 1] = 1.0;
+ iters = 0;
+ }
+
+ /**
+ * Default attributes initialization.
+ *
+ * @param learningRate
+ * Value of the learning rate to be used in backpropagation.
+ * @param inputSize
+ * Size of the input layer.
+ * @param hiddenSize
+ * Size of the hidden layer.
+ * @param outputSize
+ * Size of the output layer.
+ */
+ private void defaultInit(double learningRate, int inputSize,
+ int hiddenSize, int outputSize) {
+ this.LEARNING_RATE = learningRate;
+ this.inputSize = inputSize + 1;
+ this.hiddenSize = hiddenSize + 1;
+ this.outputSize = outputSize;
+ init();
+ randomizeWeights();
+ }
+
+ /**
+ * Use this method to load the weights from a file. Expected file format:
+ * Learning rate Input size Hidden size. All weights from
+ * input layer to hidden layer. All weights from hidden layer to output
+ * layer. If the file format is wrong or its data is wrong, the weights are
+ * randomized.
+ *
+ * @param filename
+ * The name of the file to be laoded.
+ * @throws FileNotFoundException
+ * Thrown when the file is not found.
+ */
+ public void loadWeights(String filename) throws Exception {
+ Scanner in = new Scanner(new File(filename));
+ double lr = in.nextDouble();
+ int inSize = in.nextInt();
+ int hiSize = in.nextInt();
+ int outSize = in.nextInt();
+ loadWeights(in, lr, inSize, hiSize, outSize);
+ in.close();
+ }
+
+ public void loadWeights(InputStream is) throws Exception {
+// BufferedReader br = new BufferedReader(new InputStreamReader(is));
+// String line = br.readLine();
+// String[] header = line.split(" ");
+// double lr = Double.parseDouble(header[0]);
+// int inSize = Integer.parseInt(header[1]);
+// int hiSize = Integer.parseInt(header[2]);
+// int outSize = Integer.parseInt(header[3]);
+//
+// loadWeights(br, lr, inSize, hiSize, outSize);
+// br.close();
+ Scanner in = new Scanner(is);
+ double lr = in.nextDouble();
+ int inSize = in.nextInt();
+ int hiSize = in.nextInt();
+ int outSize = in.nextInt();
+ loadWeights(in, lr, inSize, hiSize, outSize);
+ in.close();
+ }
+
+ /**
+ * Loads weights.
+ *
+ * @param in
+ * Scanner of file where weights are contained.
+ * @param lr
+ * Learning rate.
+ * @param inSize
+ * Input layer size.
+ * @param hiSize
+ * Hidden layer size.
+ * @param outSize
+ * Output layer size.
+ */
+ private void loadWeights(Scanner in, double lr, int inSize, int hiSize,
+ int outSize) {
+ if (lr != LEARNING_RATE || inputSize != inSize || hiSize != hiddenSize
+ || outSize != outputSize) {
+ randomizeWeights();
+ return;
+ }
+ for (int i = 0; i < inputSize; i++)
+ for (int j = 0; j < hiddenSize; j++)
+ weightsItoH[i][j] = in.nextDouble();
+ for (int j = 0; j < hiddenSize; j++)
+ for (int k = 0; k < outputSize; k++)
+ weightsHtoO[j][k] = in.nextDouble();
+ }
+
+ private void loadWeights(BufferedReader br, double lr, int inSize, int hiSize,
+ int outSize) throws Exception {
+ if (lr != LEARNING_RATE || inputSize != inSize || hiSize != hiddenSize
+ || outSize != outputSize) {
+ randomizeWeights();
+ return;
+ }
+ for (int i = 0; i < inputSize; i++) {
+ for (int j = 0; j < hiddenSize; j++) {
+ String line = br.readLine();
+ weightsItoH[i][j] = Double.parseDouble(line);
+ }
+ }
+ for (int j = 0; j < hiddenSize; j++) {
+ for (int k = 0; k < outputSize; k++) {
+ String line = br.readLine();
+ weightsHtoO[j][k] = Double.parseDouble(line);
+ }
+ }
+ }
+
+ /**
+ * Use this method to load the weights from a file. Output file format:
+ * Learning rate Input size Hidden size All weights from
+ * input layer to hidden layer. All weights from hidden layer to output
+ * layer.
+ *
+ * @param filename
+ * Name of the file where the weights are going to be saved.
+ * @throws IOException
+ * Thrown if an I/O error occurs.
+ */
+ public void saveWeights(String filename) throws IOException {
+ FileWriter f = new FileWriter(new File(filename));
+ f.write(LEARNING_RATE + " " + inputSize + " " + hiddenSize + " "
+ + outputSize + "\n");
+ for (int i = 0; i < inputSize; i++)
+ for (int j = 0; j < hiddenSize; j++)
+ f.write(String.format("%f\n", weightsItoH[i][j]));
+ for (int j = 0; j < hiddenSize; j++)
+ for (int k = 0; k < outputSize; k++)
+ f.write(String.format("%f\n", weightsHtoO[j][k]));
+ f.close();
+ }
+
+ /**
+ * Use this method to set all weights to random.
+ */
+ public void randomizeWeights() {
+ for (int i = 0; i < inputSize; i++)
+ for (int j = 0; j < hiddenSize; j++)
+ weightsItoH[i][j] = rand(-1.0, 1.0);
+ for (int j = 0; j < hiddenSize; j++)
+ for (int k = 0; k < outputSize; k++)
+ weightsHtoO[j][k] = rand(-1.0, 1.0);
+ }
+
+ /**
+ * Sigmoid function that is used (tanh).
+ *
+ * @param x
+ * Input value.
+ * @return logistic(x).
+ */
+ private double sigmoid(double x) {
+ return 1. / (1 + Math.exp(-x));
+ // return Math.tanh(x);
+ }
+
+ /**
+ * Derivative of sigmoid function.
+ *
+ * @param y
+ * An activation value.
+ * @return y * (1 - y)
+ */
+ private double dSigmoid(double y) {
+ return y * (1 - y);
+ // return 1 - y*y;
+ }
+
+ /**
+ * Return a random number between a and b.
+ *
+ * @param a
+ * Lower bound.
+ * @param b
+ * Upper bound.
+ * @return Random number in range [a,b).
+ */
+ private double rand(double a, double b) {
+ return a + (b - a) * Math.random();
+ }
+
+ /**
+ * Perform forward propagation through the NN.
+ *
+ * @param inputs
+ * Activation values for input layer.
+ * @return Activation value of output layer.
+ */
+ private void forwardPropagation(int[] inputs) {
+ // Compute activations for input layer neurons
+ for (int i = 0; i < inputSize - 1; i++)
+ ai[i] = inputs[i];
+
+ // Compute activations for hidden layer neurons
+ for (int j = 0; j < hiddenSize - 1; j++) {
+ ah[j] = 0.0;
+ for (int i = 0; i < inputSize; i++)
+ ah[j] += weightsItoH[i][j] * ai[i];
+ ah[j] = sigmoid(ah[j]);
+ }
+
+ // Compute activations for output layer neurons
+ for (int k = 0; k < outputSize; k++) {
+ ao[k] = 0.0;
+ for (int j = 0; j < hiddenSize; j++)
+ ao[k] += ah[j] * weightsHtoO[j][k];
+ ao[k] = sigmoid(ao[k]);
+ }
+ }
+
+ /**
+ * Perform backpropagation algorithm to update the weights and train the NN.
+ *
+ */
+ private void backPropagation(double[] errors) {
+ // Compute delta for output layer neuron
+ double[] deltak = new double[outputSize];
+ for (int k = 0; k < outputSize; k++)
+ deltak[k] = dSigmoid(ao[k]) * errors[k];
+
+ // Compute delta for hidden layer neurons
+ double[] deltaj = new double[hiddenSize];
+ for (int j = 0; j < hiddenSize; j++)
+ for (int k = 0; k < outputSize; k++)
+ deltaj[j] += dSigmoid(ah[j]) * deltak[k] * weightsHtoO[j][k];
+
+ // Update weights from input to hidden layer
+ for (int i = 0; i < inputSize; i++)
+ for (int j = 0; j < hiddenSize; j++)
+ weightsItoH[i][j] += LEARNING_RATE * deltaj[j] * ai[i];
+
+ // Update weights from hidden to output layer
+ for (int j = 0; j < hiddenSize; j++)
+ for (int k = 0; k < outputSize; k++)
+ weightsHtoO[j][k] += LEARNING_RATE * deltak[k] * ah[j];
+ }
+
+ /**
+ * Train the neural network for iterLimit iterations or until for each
+ * pattern input abs(expected - output) <= 0.01
+ *
+ * @param inputs
+ * List of all input patterns to be used.
+ * @param outputs
+ * Expected output for each input pattern.
+ * @param iterLimit
+ * Limit of iterations.
+ */
+ public void train(int[][] inputs, int[][] outputs, int iterLimit) {
+ for (int c = 0; c < iterLimit; c++, iters++)
+ for (int i = 0; i < inputs.length; i++) {
+ forwardPropagation(inputs[i]);
+ double[] errors = new double[outputSize];
+ for (int k = 0; k < outputSize; k++)
+ errors[k] = outputs[i][k] - ao[k];
+ backPropagation(errors);
+ }
+ }
+
+ /**
+ * Run the neural network with pattern as input.
+ *
+ * @param pattern
+ * Input pattern.
+ * @return Neuron fired.
+ */
+ public int eval(int[] pattern) {
+ forwardPropagation(pattern);
+ return interpret();
+ }
+
+ /**
+ * Maximum activation value.
+ *
+ * @return Neuron index.
+ */
+ private int interpret() {
+ if (outputSize == 1)
+ return (ao[0] < 0.5) ? 0 : 1;
+ int index = 0;
+ double max = ao[0];
+ for (int k = 1; k < outputSize; k++)
+ if (ao[k] > max) {
+ max = ao[k];
+ index = k;
+ }
+ return index;
+ }
+
+ /**
+ * Find the neuron with the maximum activation value.
+ *
+ * @return Neuron index.
+ */
+ private int maxIndex(int[] pattern) {
+ int index = 0;
+ double max = pattern[0];
+ for (int k = 1; k < outputSize; k++)
+ if (pattern[k] > max) {
+ max = pattern[k];
+ index = k;
+ }
+ return index;
+ }
+
+ /**
+ * Test the NN with specified inputs and expected outputs.
+ *
+ * @param inputs
+ * List of all input patterns to be used.
+ * @param outputs
+ * Expected output for each input pattern.
+ * @param print
+ * If true, print the expected output and the output and at the
+ * end, print the success rate and the mean square error.
+ * @return Array where index 0 = success rate, and index 1 = mean square
+ * error.
+ */
+ public double[] test(int[][] inputs, int[][] outputs, boolean print) {
+ double[] r = { 0.0, 0.0 };
+ System.out.println("Iterations: " + iters);
+ for (int i = 0; i < inputs.length; i++) {
+ int x = eval(inputs[i]);
+ int expected = maxIndex(outputs[i]);
+ if (print)
+ System.out.println("Expected: " + expected + " "
+ + Arrays.toString(outputs[i]) + " Result: " + x + " "
+ + Arrays.toString(ao));
+ for (int k = 0; k < outputSize; k++)
+ r[1] += (outputs[i][k] - ao[k]) * (outputs[i][k] - ao[k]);
+ if (expected == x)
+ r[0] += 1.0 / inputs.length;
+ r[1] += (expected - x) * (expected - x) / (double) inputs.length;
+ }
+ r[1] *= 0.5;
+ if (print) {
+ System.out.println("Success rate: " + r[0] * 100 + "%");
+ System.out.println("Squared Error: " + String.format("%.8f", r[1]));
+ // ERROR = 0.5 * sum(norm(expected - output)**2)
+ }
+ return r;
+ }
+
+ /**
+ * Get the iterations that have been made to train the NN.
+ *
+ * @return Number of iterations performed
+ */
+ public int iters() {
+ return iters;
+ }
+
+ /**
+ * Unit test. Train the NN to perform XOR operations.
+ *
+ * @param args
+ * None expected
+ */
+ public static void main(String[] args) {
+ int[][] inputs = { { 0, 0 }, { 0, 1 }, { 1, 0 }, { 1, 1 } };
+ int[][] outputs = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 },
+ { 0, 0, 0, 1 } };
+ NeuralNetwork nn = new NeuralNetwork(0.3, 2, 5, 4);
+ nn.train(inputs, outputs, 10000);
+ nn.test(inputs, outputs, true);
+ }
+
+ public String toString() {
+ String s = "Weights I->H = " + Arrays.deepToString(weightsItoH);
+ s += "\nWeights H->O = " + Arrays.toString(weightsHtoO);
+ s += "\nLearning Rate = " + LEARNING_RATE;
+ return s;
+ }
+
+}
diff --git a/app/src/main/java/master/sudoku/ocr/util/ThresholdUtil.java b/app/src/main/java/master/sudoku/ocr/util/ThresholdUtil.java
new file mode 100644
index 0000000..f9ae44e
--- /dev/null
+++ b/app/src/main/java/master/sudoku/ocr/util/ThresholdUtil.java
@@ -0,0 +1,33 @@
+package master.sudoku.ocr.util;
+
+import android.graphics.Color;
+
+public class ThresholdUtil
+{
+ public static int DARK_VALUE = 1;
+ public static int SHALLOW_VALUE = 255;
+
+ public static int DARK_THRESHOLD = 128;
+
+ public static int BG_COLOR = Color.WHITE;
+
+ public static boolean almostSameColor(int c1, int c2)
+ {
+ int tolerance = 10;
+ return (Math.abs(Color.alpha(c1) - Color.alpha(c2)) < tolerance
+ && Math.abs(Color.red(c1) - Color.red(c2)) < tolerance
+ && Math.abs(Color.green(c1) - Color.green(c2)) < tolerance
+ && Math.abs(Color.blue(c1) - Color.blue(c2)) < tolerance);
+ }
+
+ public static int GetDarkValue(int color)
+ {
+ //return (Color.red(color) + Color.green(color) + Color.blue(color)) / 3;
+ return (int)(Color.red(color) * 0.299 + Color.green((color)) * 0.587 + Color.blue(color) * 0.114);
+ }
+
+ public static boolean IsDark(int color)
+ {
+ return !almostSameColor(color, BG_COLOR);
+ }
+}
diff --git a/app/src/main/java/master/sudoku/shapes/NumberCell.java b/app/src/main/java/master/sudoku/shapes/NumberCell.java
new file mode 100644
index 0000000..7c3f643
--- /dev/null
+++ b/app/src/main/java/master/sudoku/shapes/NumberCell.java
@@ -0,0 +1,132 @@
+/**
+ *
+ */
+package master.sudoku.shapes;
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+
+import master.sudoku.config.DeviceConfig;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class NumberCell extends ShapeBase {
+
+ private int mNumber = 0;
+
+ private String mText = "";
+
+ private boolean mReadonly = false;
+
+ private boolean mErrorFlag = false;
+
+ private boolean mHighlighted = false;
+
+ private static int NORMAL_COLOR = Color.BLACK;
+ private static int NORMAL_BG_COLOR = Color.WHITE;
+ private static int HIGHLIGHT_COLOR = Color.YELLOW;
+ private static int HIGHLIGHT_BG_COLOR = Color.CYAN;
+ private static int READONLY_COLOR = Color.WHITE;
+ private static int READONLY_BG_COLOR = Color.GRAY;
+ private static int ERROR_COLOR = Color.RED;
+
+ private static Typeface NORMAL_FONT = Typeface.create("Helvetica", Typeface.BOLD);
+
+ public int getNumber() {
+ return mNumber;
+ }
+
+ public void setNumber(int mNumber) {
+ this.mNumber = mNumber;
+ }
+
+ public boolean isReadonly() {
+ return mReadonly;
+ }
+
+ public String getText() {
+ return mText;
+ }
+
+ public void setText(String text) {
+ mText = text;
+ }
+
+ public void setReadonly(boolean readonly) {
+ this.mReadonly = readonly;
+ }
+
+ public void setErrorFlag(boolean errorFlag) {
+ this.mErrorFlag = errorFlag;
+ }
+
+ public boolean isHightlighted() {
+ return mHighlighted;
+ }
+
+ public void setHightlighted(boolean hightlighted) {
+ this.mHighlighted = hightlighted;
+ }
+
+ /* (non-Javadoc)
+ * @see com.skyway.pandora.sudoku.shapes.ShapeBase#paint(javax.microedition.lcdui.Graphics)
+ */// canvas.clipRect(mBound);
+
+ public void paint(Canvas canvas) {
+ if(mNumber >= 0 && mBound != null) {
+ this.prepareColor();
+ mPaint.setColor(mBackgroundColor);
+ mPaint.setStyle(Paint.Style.FILL);
+ canvas.drawRect(mBound, mPaint);
+ if(mText != null && mText.length() > 0) {
+ paintText(mText, canvas);
+ } else if(mNumber > 0) {
+ mText = String.valueOf(mNumber);
+ paintText(String.valueOf(mNumber), canvas);
+ }
+ }
+ }
+
+ private void paintText(String text, Canvas canvas) {
+ mPaint.setColor(mColor);
+ mPaint.setTypeface(NORMAL_FONT);
+ mPaint.setStyle(Paint.Style.STROKE);
+ mPaint.setTextSize(DeviceConfig.mFontSize);
+
+// int strWidth = mPaint.measureText(mText);
+ Rect textBounds = new Rect();
+ mPaint.getTextBounds(text, 0, text.length(), textBounds);
+ int strWidth = textBounds.width();
+ int strHeight = textBounds.height();
+
+ int x = mBound.left + (mBound.width() - strWidth) / 2;
+ int y = mBound.top + (mBound.height() + strHeight) / 2;
+
+ canvas.drawText(text, x, y, mPaint);
+ }
+
+ private void prepareColor() {
+ mColor = NORMAL_COLOR;
+ mBackgroundColor = NORMAL_BG_COLOR;
+
+ // error color has higher priority
+ if(mErrorFlag) {
+ this.mColor = ERROR_COLOR;
+ }
+ else if(mReadonly) {
+ this.mColor = READONLY_COLOR;
+ this.mBackgroundColor = READONLY_BG_COLOR;
+ }
+
+ if(mHighlighted) {
+ this.mColor = HIGHLIGHT_COLOR;
+ this.mBackgroundColor = HIGHLIGHT_BG_COLOR;
+ }
+ }
+
+}
diff --git a/app/src/main/java/master/sudoku/shapes/NumberGrid.java b/app/src/main/java/master/sudoku/shapes/NumberGrid.java
new file mode 100644
index 0000000..f9f86df
--- /dev/null
+++ b/app/src/main/java/master/sudoku/shapes/NumberGrid.java
@@ -0,0 +1,244 @@
+/**
+ *
+ */
+package master.sudoku.shapes;
+
+import android.graphics.Canvas;
+import android.graphics.Point;
+import android.graphics.Rect;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+
+import master.sudoku.logs.Logger;
+import master.sudoku.model.Index;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class NumberGrid extends ShapeBase {
+
+ protected int mCellWidth;
+ protected int mCellHeight;
+ protected int mDrawTop;
+ protected int mDrawBottom;
+ protected int mDrawLeft;
+ protected int mDrawRight;
+
+ protected int mDimensionX;
+ protected int mDimensionY;
+
+ private int mSelectedI;
+ private int mSelectedJ;
+ private NumberCell mSelectedCell;
+
+ private boolean mHasError = false;
+
+ protected Hashtable mCellTable = new Hashtable();
+ protected Vector mLineList = new Vector();
+
+ /**
+ * Constructor
+ */
+ public NumberGrid(int dimensionX, int dimensionY) {
+ this.mDimensionX = dimensionX;
+ this.mDimensionY = dimensionY;
+
+ for(int i=0; i e = mCellTable.keys(); e.hasMoreElements(); ) {
+ ShapeBase shape = (ShapeBase)mCellTable.get(e.nextElement());
+ shape.paint(canvas);
+ }
+ for(int i=0; i e = mCellTable.keys(); e.hasMoreElements(); ) {
+ NumberCell cell = mCellTable.get(e.nextElement());
+ cell.setErrorFlag(false);
+ }
+ }
+
+ public boolean hasError() {
+ return mHasError;
+ }
+
+ public void selectByPixel(int pixelX, int pixelY) {
+ for(Enumeration e = mCellTable.keys(); e.hasMoreElements(); ) {
+ Index idx = (Index)e.nextElement();
+ NumberCell cell = mCellTable.get(idx);
+ if(cell.getBound().contains(pixelX, pixelY)) {
+ if(mSelectedCell != null) {
+ mSelectedCell.setHightlighted(false);
+ }
+ if(Logger.ON) {
+ Logger.getLogger().debug("ready to set selected cell");
+ }
+ cell.setHightlighted(true);
+ mSelectedCell = cell;
+ mSelectedI = idx.getI();
+ mSelectedJ = idx.getJ();
+ break;
+ }
+ }
+ }
+
+ public void selectByIndex(int i, int j) {
+ if(mSelectedCell != null) {
+ mSelectedCell.setHightlighted(false);
+ }
+ Index idx = new Index(i, j);
+ NumberCell cell = mCellTable.get(idx);
+ cell.setHightlighted(true);
+ mSelectedCell = cell;
+ mSelectedI = i;
+ mSelectedJ = j;
+ }
+
+ public void clearSelection() {
+ if(mSelectedCell != null) {
+ mSelectedCell.setHightlighted(false);
+ }
+ mSelectedCell = null;
+ mSelectedI = 0;
+ mSelectedJ = 0;
+ }
+
+ public int getSelectedI() {
+ return mSelectedI;
+ }
+
+ public int getSelectedJ() {
+ return mSelectedJ;
+ }
+
+ public void setSelectedCellNumber(int number) {
+ if(mSelectedCell != null) {
+ mSelectedCell.setNumber(number);
+ }
+ }
+
+ public int getSelectedCellNumber() {
+ if(mSelectedCell != null) {
+ return mSelectedCell.getNumber();
+ }
+ return 0;
+ }
+
+ private void centralizeGrid(Rect rect) {
+ // centralize the grid
+ int totalWidth = mCellWidth * mDimensionX;
+ int totalHeight = mCellHeight * mDimensionY;
+
+ mDrawTop = rect.top;
+ mDrawLeft = rect.left;
+ if(rect.width() > totalWidth) {
+ mDrawTop = mDrawTop + (rect.height() - totalHeight)/2;
+ }
+ if(rect.height() > totalHeight) {
+ mDrawLeft = mDrawLeft + (rect.width() - totalWidth)/2;
+ }
+ mDrawRight = mDrawLeft + totalWidth;
+ mDrawBottom = mDrawTop + totalHeight;
+ }
+
+ protected void initLines(Rect rect) {
+ mLineList.removeAllElements();
+ int x = mDrawLeft;
+ int y = mDrawTop;
+ for(int i=0; i<=mDimensionX; i++) {
+ // create vertical lines
+ Point start = new Point(x, mDrawTop);
+ Point end = new Point(x, mDrawBottom);
+ ThicknessLine vLine = new ThicknessLine(start, end);
+
+ if(i % mDimensionX == 0) {
+ vLine.setThickness(3);
+ }
+ this.mLineList.addElement(vLine);
+ x += mCellWidth;
+ }
+
+ for(int j=0; j<=mDimensionY; j++) {
+ // create horizontal lines
+ Point start = new Point(mDrawLeft, y);
+ Point end = new Point(mDrawRight, y);
+ ThicknessLine hLine = new ThicknessLine(start, end);
+
+ if(j % mDimensionY == 0) {
+ hLine.setThickness(3);
+ }
+ this.mLineList.addElement(hLine);
+ x += mCellWidth;
+ y += mCellHeight;
+ }
+ }
+
+ protected void initGrid() {
+ for(int i=0; i idxList = getSquareIndexList(i, j);
+ for(int k=0; k getSquareIndexList(int i, int j) {
+ Vector result = new Vector();
+ int iStart = i / 3 * 3;
+ int jStart = j / 3 * 3;
+ for(i=iStart; i 1) {
+// int xIncrement = 0;
+// int yIncrement = 0;
+// if(mSlopeType == SLOPE_TYPE_HORIZONTAL) {
+// yIncrement = 1;
+// }
+// else if(mSlopeType == SLOPE_TYPE_VERTICAL) {
+// xIncrement = 1;
+// }
+// else if(mSlopeType == SLOPE_TYPE_DIAGONAL) {
+// xIncrement = 1;
+// yIncrement = 1;
+// }
+// int startX = mStart.getX();
+// int startY = mStart.getY();
+// int endX = mEnd.getX();
+// int endY = mEnd.getY();
+// for(int i=0; i mValueList;
+
+ /**
+ * Constructor
+ * @param i
+ * @param j
+ */
+ public CellValue(int i, int j) {
+ mIdx = new Index(i, j);
+ mValueList = new Vector();
+ }
+
+ /**
+ * Constructor
+ * @param idx
+ */
+ public CellValue(Index idx) {
+ this.mIdx = idx;
+ mValueList = new Vector();
+ }
+
+ /**
+ * get a copy of the value set
+ * @return
+ */
+ public Vector getValueList() {
+ Vector result = new Vector();
+ for(int i=0; i valueList = this.getValueList();
+ for(int i=0; i mGuessHistory;
+ private int mCurrentGuess;
+
+ /**
+ * Constructor
+ */
+ public Guess(CellValue cellValue, Sudoku bakModel) {
+ this.mCellValue = cellValue;
+ this.mBakModel = bakModel.copyResultModel();
+ this.mGuessHistory = new Vector();
+ }
+
+ public boolean canGuess() {
+ return mGuessHistory.size() < mCellValue.getValueCount();
+ }
+
+ /**
+ * if able to guess, guess one value and fill in the guess model, otherwise do nothing
+ * @return true if able to guess, false if guess number is used out.
+ */
+ public boolean guessOne() throws SolutionException {
+ if(mGuessHistory.size() >= mCellValue.getValueCount()) {
+ return false;
+ }
+ mGuessModel = mBakModel.copyResultModel();
+ Vector valueList = mCellValue.getValueList();
+ for(int m=0; m mCellValueList;
+ private SolutionStatus mStatus;
+ private boolean mDebug = true;
+
+ private Stack mGuessStack;
+ private Vector mGuessHistory;
+
+ // numbers for statistics
+ private int mCalculateRound = 0;
+ private int mRollbackRound = 0;
+ private int mGuessRound = 0;
+
+ /**
+ * Constructor
+ * @param model
+ */
+ public Solution(Sudoku model) {
+ this.mModel = model;
+ this.mCellValueList = new Vector();
+ this.mStatus = SolutionStatus.Solving;
+ this.mGuessStack = new Stack();
+ this.mGuessHistory = new Vector();
+ }
+
+ public void solve() throws SolutionException {
+ while(mModel.getBlankSize() > 0) {
+ mCalculateRound ++;
+ int oldBlankSize = mModel.getBlankSize();
+ try {
+ this.buildCellValue();
+ this.checkSingleValue();
+ } catch(SolutionException ex) {
+ if(mDebug) {
+ System.err.println(ex.getMessage());
+ System.err.println("ready to roll-back");
+ }
+ rollBackAndGuessOtherValue();
+ continue;
+ }
+
+ if(oldBlankSize == mModel.getBlankSize()) {
+ addNewGuess();
+ }
+ }
+ }
+
+ public void buildCellValue() throws SolutionException {
+ mCellValueList.removeAllElements();
+ for(int i=0; i valueList = new Vector();
+
+ for(int value=1; value<=9; value++) {
+ if(mModel.acceptValue(i, j, value)) {
+ valueList.addElement(Integer.valueOf(value));
+ } else {
+ if(mDebug) {
+ System.out.println("for Cell["+i+","+j+"]:" + value + " not valid.");
+ }
+ }
+ }
+
+ if(valueList.size() == 0) {
+ this.mStatus = SolutionStatus.Failed;
+ throw new SolutionException("Impossible to fill value in Cell["+i+","+j+"]");
+ }
+
+ if(mDebug) {
+ System.out.println("getting value size for Cell["+i+","+j+"]:" + valueList.size());
+ }
+ CellValue result = new CellValue(i, j);
+ for(int k=0; k klass) {
+ if (AppUtil.hasGingerbread()) {
+ final StrictMode.ThreadPolicy.Builder threadPolicyBuilder =
+ new StrictMode.ThreadPolicy.Builder()
+ .detectAll()
+ .penaltyLog();
+
+ final StrictMode.VmPolicy.Builder vmPolicyBuilder =
+ new StrictMode.VmPolicy.Builder()
+ .detectAll()
+ .penaltyLog();
+ if (AppUtil.hasHoneycomb()) {
+ threadPolicyBuilder.penaltyFlashScreen();
+ if (klass != null) {
+ vmPolicyBuilder.setClassInstanceLimit(klass, 1);
+ }
+ }
+
+ StrictMode.setThreadPolicy(threadPolicyBuilder.build());
+ StrictMode.setVmPolicy(vmPolicyBuilder.build());
+ }
+ }
+
+ public static final boolean hasEclair() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR;
+ }
+
+ public static final boolean hasCupcake() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE;
+ }
+
+ public static boolean hasFroyo() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO;
+ }
+
+ public static boolean hasGingerbread() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD;
+ }
+
+ public static boolean hasHoneycomb() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
+ }
+
+ public static boolean hasHoneycombMR1() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1;
+ }
+
+ public static boolean hasJellyBean() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
+ }
+
+ public static boolean hasJellyBeanMR1() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1;
+ }
+
+ public static boolean hasJellyBeanMR2() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
+ }
+
+ public static boolean hasKitKat() {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
+ }
+
+ /**
+ * Convert a String object to UTF-8 bytes array.
+ *
+ * @param s The String to be converted.
+ * @return UTF-8 encoded bytes array.
+ */
+ public static byte[] toUtf8(String s) {
+ return encode(UTF_8, s);
+ }
+
+ /**
+ * Build a String from UTF-8 bytes array.
+ *
+ * @param b The bytes array to be decoded.
+ * @return The byte relative String object.
+ */
+ public static String fromUtf8(byte[] b) {
+ return decode(UTF_8, b);
+ }
+
+ /**
+ * Convert a String object to ASCII bytes array.
+ *
+ * @param s The String to be converted.
+ * @return ASCII encoded bytes array.
+ */
+ public static byte[] toAscii(String s) {
+ return encode(ASCII, s);
+ }
+
+ /**
+ * Build a String from ASCII bytes array.
+ *
+ * @param b The bytes array to be decoded.
+ * @return The byte relative String object.
+ */
+ public static String fromAscii(byte[] b) {
+ return decode(ASCII, b);
+ }
+
+ private static byte[] encode(Charset charset, String s) {
+ if (s == null) {
+ return null;
+ }
+ final ByteBuffer buffer = charset.encode(CharBuffer.wrap(s));
+ final byte[] bytes = new byte[buffer.limit()];
+ buffer.get(bytes);
+ return bytes;
+ }
+
+ private static String decode(Charset charset, byte[] b) {
+ if (b == null) {
+ return null;
+ }
+ final CharBuffer buffer = charset.decode(ByteBuffer.wrap(b));
+ return new String(buffer.array(), 0, buffer.length());
+ }
+
+ public static String getSmallHash(final String value) {
+ final MessageDigest sha;
+ try {
+ sha = MessageDigest.getInstance("SHA-1");
+ } catch (NoSuchAlgorithmException e) {
+ return null;
+ }
+ sha.update(AppUtil.toUtf8(value));
+ final int hash = getSmallHashFromSha1(sha.digest());
+ return Integer.toString(hash);
+ }
+
+ private static int getSmallHashFromSha1(byte[] sha1) {
+ final int offset = sha1[19] & 0xf;
+ return ((sha1[offset] & 0x7f) << 24)
+ | ((sha1[offset + 1] & 0xff) << 16)
+ | ((sha1[offset + 2] & 0xff) << 8) | ((sha1[offset + 3] & 0xff));
+ }
+
+ public static String getMd5(String value) {
+ final MessageDigest md5;
+ try {
+ md5 = MessageDigest.getInstance("MD5");
+ } catch (NoSuchAlgorithmException e) {
+ return value;
+ }
+ md5.update(AppUtil.toUtf8(value));
+ final StringBuilder sb = new StringBuilder();
+ for (byte b : md5.digest()) {
+ if (b < 0) {
+ b += 256;
+ }
+ if (b < 16) {
+ b = 0;
+ }
+ sb.append(Integer.toHexString(b));
+ }
+
+ return sb.toString();
+ }
+
+ public static String encrypt(String source, String key) {
+ try {
+ DESKeySpec desKey = new DESKeySpec(key.getBytes());
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
+ SecretKey secureKey = keyFactory.generateSecret(desKey);
+ @SuppressLint("GetInstance")
+ Cipher cipher = Cipher.getInstance("DES");
+ SecureRandom random = new SecureRandom();
+ cipher.init(Cipher.ENCRYPT_MODE, secureKey, random);
+ final byte[] bytes = Base64.encode(cipher.doFinal(source.getBytes()), 0);
+ return new String(bytes);
+ } catch (Exception e) {
+ return "";
+ }
+ }
+}
diff --git a/app/src/main/java/master/sudoku/utils/FileUtils.java b/app/src/main/java/master/sudoku/utils/FileUtils.java
new file mode 100644
index 0000000..a35e164
--- /dev/null
+++ b/app/src/main/java/master/sudoku/utils/FileUtils.java
@@ -0,0 +1,232 @@
+package master.sudoku.utils;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Environment;
+import android.provider.DocumentsContract;
+import android.provider.MediaStore;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import master.sudoku.application.PuzzleMasterApp;
+
+public class FileUtils {
+
+ private static final String APP_DIR = "PuzzleMaster";
+
+ private static final String CACHE_DIR = "Cache";
+
+ private static final String CRASH_DIR = "crash";
+
+ public static File getAppDir() {
+ File file = null;
+ if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
+ file = new File(Environment.getExternalStorageDirectory(), APP_DIR);
+ } else {
+ file = new File(PuzzleMasterApp.getInstance().getCacheDir(), APP_DIR);
+ }
+ if (file != null && !file.exists()) {
+ file.mkdirs();
+ }
+ return file;
+ }
+
+ public static File getCacheDir() {
+ File file = new File(getAppDir(), CACHE_DIR);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ return file;
+ }
+
+ @SuppressLint("NewApi")
+ public static String getFilePathFromUri(Uri uri, Context ctx) {
+ String result = uri.toString();
+ if (uri.getScheme().compareTo("file") == 0) { // file:///开头的uri
+ result = result.replace("file://", ""); // 替换file://
+ } else {
+ Cursor cursor = null;
+ try {
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT && DocumentsContract.isDocumentUri(ctx, uri)) {
+ String wholeID = DocumentsContract.getDocumentId(uri);
+ String id = wholeID.split(":")[1];
+ String[] column = {MediaStore.Images.Media.DATA};
+ String sel = MediaStore.Images.Media._ID + "=?";
+ cursor = ctx.getContentResolver().query(
+ MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+ column, sel, new String[]{id}, null);
+ int columnIndex = cursor.getColumnIndex(column[0]);
+ if (cursor.moveToFirst()) {
+ result = cursor.getString(columnIndex);
+ }
+ } else {
+ String[] proj = {MediaStore.Images.Media.DATA};
+ cursor = ctx.getContentResolver().query(uri, proj, null,
+ null, null);
+ int column_index = cursor
+ .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
+ cursor.moveToFirst();
+ result = cursor.getString(column_index);
+ }
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ }
+ finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+ }
+ return result;
+ }
+
+ public static String getCachePath() {
+ return getCacheDir().getAbsolutePath();
+ }
+
+ public static File getCrashDir() {
+ File file = new File(getAppDir(), CRASH_DIR);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ return file;
+ }
+
+ public static void clearDir(File dir) {
+ if (dir == null || !dir.exists()) {
+ return;
+ }
+ try {
+ File[] files = dir.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ files[i].delete();
+ }
+ } catch (Exception ignore) {
+ }
+ }
+
+ public static void clearImgcache() {
+ File dir = getCacheDir();
+ if (dir == null || !dir.exists()) {
+ return;
+ }
+ try {
+ File[] files = dir.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ files[i].delete();
+ }
+ } catch (Exception ignore) {
+ }
+ }
+
+ public static String getFileTextData(File file) {
+ if (file != null && file.exists()) {
+ InputStreamReader isReader = null;
+ BufferedReader reader = null;
+ try {
+ isReader = new InputStreamReader(new FileInputStream(file),
+ "utf-8");
+ reader = new BufferedReader(isReader);
+ StringBuffer sb = new StringBuffer("");
+ String line;
+ while ((line = reader.readLine()) != null) {
+ sb.append(line);
+ sb.append("\n");
+ }
+ String result = sb.toString();
+ return result;
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ if (isReader != null) {
+ try {
+ isReader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ }
+ return null;
+ }
+
+ public static void saveFileTextData(File file, String data) {
+ if (file != null && data != null) {
+ if (file.exists()) {
+ file.delete();
+ }
+ OutputStream out = null;
+ try {
+ out = new FileOutputStream(file);
+ out.write(data.getBytes("UTF-8"));
+ out.flush();
+ } catch (Exception e) {
+ } finally {
+ if (out != null) {
+ try {
+ out.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Get the directory size except the crop images
+ */
+ public static long getUnCropImgSize(File directory) {
+ long size = 0;
+ File[] fileList = directory.listFiles();
+ for (File file : fileList) {
+ if (file.isDirectory()) {
+ size += getUnCropImgSize(file);
+ } else {
+ if (!file.getName().endsWith("crop.jpg")) {
+ size += file.length();
+ }
+ }
+ }
+ return size;
+ }
+
+ public static String Str2MD5(String sourceStr) {
+ String result = "";
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(sourceStr.getBytes());
+ byte b[] = md.digest();
+ int i;
+ StringBuffer buf = new StringBuffer("");
+ for (int offset = 0; offset < b.length; offset++) {
+ i = b[offset];
+ if (i < 0) {
+ i += 256;
+ }
+ if (i < 16) {
+ buf.append("0");
+ }
+ buf.append(Integer.toHexString(i));
+ }
+ result = buf.toString();
+ } catch (NoSuchAlgorithmException e) {
+ }
+ return result;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/utils/UiUtil.java b/app/src/main/java/master/sudoku/utils/UiUtil.java
new file mode 100644
index 0000000..b29723b
--- /dev/null
+++ b/app/src/main/java/master/sudoku/utils/UiUtil.java
@@ -0,0 +1,12 @@
+/**
+ *
+ */
+package master.sudoku.utils;
+
+/**
+ * @author dannyzha
+ *
+ */
+public final class UiUtil {
+
+}
diff --git a/app/src/main/java/master/sudoku/views/MainGameView.java b/app/src/main/java/master/sudoku/views/MainGameView.java
new file mode 100644
index 0000000..d96d2f9
--- /dev/null
+++ b/app/src/main/java/master/sudoku/views/MainGameView.java
@@ -0,0 +1,147 @@
+/**
+ *
+ */
+package master.sudoku.views;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+
+import master.sudoku.event.EventArgs;
+import master.sudoku.event.EventListener;
+import master.sudoku.logs.Logger;
+import master.sudoku.model.Sudoku;
+import master.sudoku.widgets.InputPanel;
+import master.sudoku.widgets.MatrixGrid;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class MainGameView extends ViewBase implements EventListener {
+
+
+ public final static int STYLE_PLAY = 0;
+ public final static int STYLE_LOAD = 1;
+
+ protected int mStyle = STYLE_PLAY;
+ protected Sudoku mModel;
+ protected MatrixGrid mGrid;
+ protected InputPanel mInputPanel;
+
+ /**
+ * Need this constructor to fix the "Error inflating class" error
+ * @param context
+ * @param attrs
+ */
+ public MainGameView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ mGrid = new MatrixGrid(this);
+ mInputPanel = new InputPanel(this);
+ mInputPanel.addEventListener(mGrid);
+ }
+
+ public MainGameView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+
+ mGrid = new MatrixGrid(this);
+ mInputPanel = new InputPanel(this);
+ mInputPanel.addEventListener(mGrid);
+ }
+
+ public void setModel(Sudoku model) {
+ this.mModel = model;
+ mGrid.setModel(this.mModel);
+ }
+
+ public void editModel(boolean editing) {
+ mGrid.setIsEditing(editing);
+ }
+
+ public void setBound(Rect bound) {
+ super.setBound(bound);
+
+ int matrixW = bound.width();
+ int matrixH = bound.height();
+ if(matrixW > matrixH) {
+ matrixW = matrixH;
+ } else {
+ matrixH = matrixW;
+ }
+ Rect matrixRect = new Rect(bound.left, bound.top, bound.left + matrixW, bound.top + matrixH);
+ mGrid.setBound(matrixRect);
+
+ if(Logger.ON) {
+ Logger.getLogger().debug("bound.getHeight is:" + bound.height());
+ Logger.getLogger().debug("matrixH is:" + matrixH);
+ Logger.getLogger().debug("matrixW is:" + matrixW);
+ }
+ Rect inputRect = new Rect(matrixRect.left, matrixRect.bottom + 10,
+ matrixRect.left + matrixW, matrixRect.bottom + 10 + bound.height() - matrixH - 10);
+ mInputPanel.setBound(inputRect);
+ }
+
+ public void setStyle(int style) {
+ mStyle = style;
+ mInputPanel.setInputOnly(style == STYLE_LOAD);
+ }
+
+ public void paint(Canvas canvas) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("paiting MainGameView");
+ }
+ mGrid.paint(canvas);
+ mInputPanel.paint(canvas);
+ }
+
+ public void onTap(int x, int y) {
+ boolean handled = false;
+ handled |= mGrid.onTap(x, y);
+ if(!handled) {
+ mInputPanel.onTap(x, y);
+ }
+ }
+
+ public void onPointerPressed(int x, int y) {
+ boolean handled = false;
+ handled |= mGrid.onPointerPressed(x, y);
+ if(!handled) {
+ mInputPanel.onPointerPressed(x, y);
+ }
+ }
+
+ public void onPointerReleased(int x, int y) {
+ boolean handled = false;
+ handled |= mGrid.onPointerReleased(x, y);
+ if(!handled) {
+ mInputPanel.onPointerReleased(x, y);
+ }
+ }
+
+ public void onKeyEvent(int key) {
+ boolean handled = false;
+ handled |= mGrid.onKeyEvent(key);
+ if(!handled) {
+ mInputPanel.onKeyEvent(key);
+ }
+ }
+
+// public void invalidate() {
+//
+// }
+//
+// public void invalidate(Rect rect) {
+//// mCanvas.repaint(rect.left, rect.top, rect.width(), rect.height());
+// }
+
+// public void repaint() {
+//// mCanvas.repaint();
+// }
+
+ public boolean handleEvent(EventArgs args) {
+ return false;
+ }
+
+}
diff --git a/app/src/main/java/master/sudoku/views/SolveSudokuView.java b/app/src/main/java/master/sudoku/views/SolveSudokuView.java
new file mode 100644
index 0000000..2ee302b
--- /dev/null
+++ b/app/src/main/java/master/sudoku/views/SolveSudokuView.java
@@ -0,0 +1,80 @@
+/**
+ *
+ */
+package master.sudoku.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import master.sudoku.event.EventArgs;
+import master.sudoku.exception.SolutionException;
+import master.sudoku.model.Sudoku;
+import master.sudoku.solve.Solution;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class SolveSudokuView extends MainGameView {
+
+ /**
+ * Need this constructor to fix the "Error inflating class" error
+ * @param context
+ * @param attrs
+ */
+ public SolveSudokuView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ mInputPanel.addEventListener(this);
+ mGrid.setIsEditing(true);
+ }
+ public SolveSudokuView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+
+ mInputPanel.addEventListener(this);
+ mGrid.setIsEditing(true);
+ }
+
+ public boolean handleEvent(EventArgs args) {
+ switch(args.getEventType()) {
+ case EventArgs.INPUT_PANEL_SELECT:
+ Integer value = (Integer)args.getEventData();
+ try {
+ if(value != null && value.intValue() == 0) {
+ Solution s = new Solution(mModel);
+ printModel(mModel, System.out);
+ s.solve();
+ printModel(mModel, System.out);
+ mGrid.setIsEditing(false);
+ }
+
+ } catch (SolutionException e) {
+ e.printStackTrace();
+ }
+ this.invalidate();
+ return true;
+ }
+ return false;
+ }
+
+ private static void printModel(Sudoku model, java.io.PrintStream ps) {
+ for(int i=0; i<9; i++) {
+ if(i % 3 == 0) {
+ for(int j=0; j<9; j++) {
+ if(j % 3 == 0) {
+ ps.print('-');
+ }
+ ps.print("---");
+ }
+ ps.println();
+ }
+ for(int j=0; j<9; j++) {
+ if(j % 3 == 0) {
+ ps.print('|');
+ }
+ ps.print(" " + model.getValue(i, j) + " ");
+ }
+ ps.println('|');
+ }
+ }
+}
diff --git a/app/src/main/java/master/sudoku/views/ViewBase.java b/app/src/main/java/master/sudoku/views/ViewBase.java
new file mode 100644
index 0000000..81fab62
--- /dev/null
+++ b/app/src/main/java/master/sudoku/views/ViewBase.java
@@ -0,0 +1,90 @@
+/**
+ *
+ */
+package master.sudoku.views;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+
+/**
+ * @author dannyzha
+ *
+ */
+public abstract class ViewBase extends View {
+
+ protected Canvas mCanvas;
+
+ protected Rect mBound;
+
+ private int mStartX;
+
+ private int mStartY;
+
+ /**
+ * Need this constructor to fix the "Error inflating class" error
+ * @param context
+ * @param attrs
+ */
+ public ViewBase(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public ViewBase(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ public void setBound(Rect bound) {
+ this.mBound = bound;
+ }
+
+ public Rect getBound() {
+ return mBound;
+ }
+
+ public void setCanvas(Canvas canvas) {
+ this.mCanvas = canvas;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ switch(event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ mStartX = (int)event.getX();
+ mStartY = (int)event.getY();
+ this.onPointerPressed(mStartX, mStartY);
+ break;
+ case MotionEvent.ACTION_UP:
+ int endX = (int)event.getX();
+ int endY = (int)event.getY();
+ this.onPointerReleased(endX, endY);
+ if(Math.abs(endX - mStartX) <= 3 && Math.abs(endY - mStartY) <= 3) {
+ this.onTap(mStartX, mStartY);
+ }
+ break;
+ }
+ return true;
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ paint(canvas);
+ }
+ /**
+ * Paint the view
+ * @param canvas
+ */
+ abstract public void paint(Canvas canvas);
+ // abstract public void repaint();
+// abstract public void invalidate();
+// abstract public void invalidate(Rect rect);
+ abstract public void onTap(int x, int y);
+ abstract public void onPointerPressed(int x, int y);
+ abstract public void onPointerReleased(int x, int y);
+ abstract public void onKeyEvent(int key);
+
+}
diff --git a/app/src/main/java/master/sudoku/widgets/InputPanel.java b/app/src/main/java/master/sudoku/widgets/InputPanel.java
new file mode 100644
index 0000000..bdb9141
--- /dev/null
+++ b/app/src/main/java/master/sudoku/widgets/InputPanel.java
@@ -0,0 +1,94 @@
+/**
+ *
+ */
+package master.sudoku.widgets;
+
+import android.graphics.Canvas;
+import android.graphics.Rect;
+
+import master.sudoku.event.EventArgs;
+import master.sudoku.logs.Logger;
+import master.sudoku.shapes.NumberGrid;
+import master.sudoku.views.ViewBase;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class InputPanel extends WidgetBase {
+
+ private NumberGrid mGrid;
+ private boolean inputOnly = false;
+
+ /**
+ * Constructor
+ * @param parent
+ */
+ public InputPanel(ViewBase parent) {
+ super(parent);
+ mGrid = new NumberGrid(5, 2);
+
+ for(int i=0; i<5; i++) {
+ for(int j=0; j<2; j++) {
+ mGrid.setNumber(i, j, j*5+i+1);
+ mGrid.setReadOnly(i, j, true);
+ }
+ }
+ mGrid.setNumber(4, 1, 0);
+ mGrid.setText(4, 1, "S");
+ }
+
+ public void setBound(Rect rect) {
+ super.setBound(rect);
+ mGrid.setBound(rect);
+ }
+
+ public void setInputOnly(boolean inputOnly) {
+ if (inputOnly) {
+ mGrid.setText(4, 1, "OK");
+ } else {
+ mGrid.setText(4, 1, "S");
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see com.skyway.pandora.sudoku.widgets.WidgetBase#paint(javax.microedition.lcdui.Graphics)
+ */
+ public void paint(Canvas canvas) {
+ mGrid.paint(canvas);
+ }
+
+ public boolean onTap(int x, int y) {
+ return false;
+ }
+
+ public boolean onPointerPressed(int x, int y) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("InputPanel.onPointerPressed, position is:[" + x + "," + y + "].");
+ }
+ if(mGrid.getBound().contains(x, y)) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("InputPanel.onPointerPressed, mGrid.getBound().containsPoint(x, y)");
+ }
+ mGrid.selectByPixel(x, y);
+ mParentView.invalidate(this.getBound());
+ this.triggerEvent(EventArgs.INPUT_PANEL_SELECT, Integer.valueOf(mGrid.getSelectedCellNumber()));
+ return true;
+ }
+ return false;
+ }
+
+ public boolean onPointerReleased(int x, int y) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("InputPanel.onPointerReleased, position is:[" + x + "," + y + "].");
+ }
+ mGrid.clearSelection();
+ mParentView.invalidate(this.getBound());
+ return true;
+ }
+
+ public boolean onKeyEvent(int key) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+}
diff --git a/app/src/main/java/master/sudoku/widgets/MatrixGrid.java b/app/src/main/java/master/sudoku/widgets/MatrixGrid.java
new file mode 100644
index 0000000..f3c8eb7
--- /dev/null
+++ b/app/src/main/java/master/sudoku/widgets/MatrixGrid.java
@@ -0,0 +1,200 @@
+/**
+ *
+ */
+package master.sudoku.widgets;
+
+import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.view.KeyEvent;
+
+import java.util.Vector;
+
+import master.sudoku.config.DeviceConfig;
+import master.sudoku.event.EventArgs;
+import master.sudoku.event.EventListener;
+import master.sudoku.exception.SolutionException;
+import master.sudoku.logs.Logger;
+import master.sudoku.model.Index;
+import master.sudoku.model.Sudoku;
+import master.sudoku.shapes.SudokuGrid;
+import master.sudoku.views.ViewBase;
+
+/**
+ * @author dannyzha
+ *
+ */
+public class MatrixGrid extends WidgetBase implements EventListener {
+
+ private Sudoku mModel;
+ private SudokuGrid mGrid;
+ private boolean mIsEditing = false;
+
+ /**
+ * Constructor
+ */
+ public MatrixGrid(ViewBase parent) {
+ super(parent);
+ mGrid = new SudokuGrid(Sudoku.SUDOKU_SIZE, Sudoku.SUDOKU_SIZE);
+ }
+
+ public void setModel(Sudoku model) {
+ this.mModel = model;
+ SudokuGrid oldGrid = mGrid;
+ mGrid = new SudokuGrid(Sudoku.SUDOKU_SIZE, Sudoku.SUDOKU_SIZE);
+ mGrid.setBound(oldGrid.getBound());
+ for(int i=0; i 0) {
+ mGrid.setNumber(i, j, value);
+ mGrid.setReadOnly(i, j, true);
+ }
+ }
+ }
+ }
+
+ public void setIsEditing(boolean isEditing) {
+ mIsEditing = isEditing;
+ }
+
+ public void setBound(Rect rect) {
+ super.setBound(rect);
+ mGrid.setBound(rect);
+ }
+
+ public void paint(Canvas canvas) {
+// for(int i=0; i 0) {
+ mGrid.setNumber(i, j, value);
+ }
+ }
+ }
+ mGrid.paint(canvas);
+ }
+
+ public boolean onTap(int x, int y) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("MatrixGrid.onTap, position is:[" + x + "," + y + "].");
+ }
+ if(mGrid.getBound().contains(x, y)) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("MatrixGrid.onTap, mGrid.getBound().containsPoint(x, y)");
+ }
+ mGrid.selectByPixel(x, y);
+ mParentView.invalidate(this.getBound());
+ return true;
+ }
+ return false;
+ }
+
+ public boolean onPointerPressed(int x, int y) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean onPointerReleased(int x, int y) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean onKeyEvent(int key) {
+ if(Logger.ON) {
+ Logger.getLogger().debug("MatrixGrid.onKeyEvent, key is:" + key);
+ }
+ int i = mGrid.getSelectedI();
+ int j = mGrid.getSelectedJ();
+
+ switch(key) {
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ i -= 1;
+ if(i<0) {
+ i += Sudoku.SUDOKU_SIZE;
+ }
+ mGrid.selectByIndex(i, j);
+ break;
+ case KeyEvent.KEYCODE_DPAD_RIGHT:
+ i += 1;
+ if(i >= Sudoku.SUDOKU_SIZE) {
+ i -= Sudoku.SUDOKU_SIZE;
+ }
+ mGrid.selectByIndex(i, j);
+ break;
+ case KeyEvent.KEYCODE_DPAD_UP:
+ j -= 1;
+ if(j<0) {
+ j += Sudoku.SUDOKU_SIZE;
+ }
+ mGrid.selectByIndex(i, j);
+ break;
+ case KeyEvent.KEYCODE_DPAD_DOWN:
+ j += 1;
+ if(j >= Sudoku.SUDOKU_SIZE) {
+ j -= Sudoku.SUDOKU_SIZE;
+ }
+ mGrid.selectByIndex(i, j);
+ mParentView.invalidate(this.getBound());
+ return true;
+ }
+ return false;
+ }
+
+ public boolean handleEvent(EventArgs args) {
+ switch(args.getEventType()) {
+ case EventArgs.INPUT_PANEL_SELECT:
+ int i = mGrid.getSelectedI();
+ int j = mGrid.getSelectedJ();
+ Integer value = (Integer)args.getEventData();
+ try {
+ if(value.intValue() <= 0) {
+ return false;
+ }
+ if(DeviceConfig.mErrorHintLevel==3 && mGrid.hasError()) {
+ //TODO: pop up error message
+ return true;
+ }
+ if(DeviceConfig.mErrorHintLevel==1) {
+ mGrid.clearErrorFlag();
+ }
+ mGrid.clearErrorFlagForCell(i, j);
+
+ if(mModel.acceptValue(i, j, value.intValue())) {
+ mModel.setResultValue(i, j, value.intValue());
+ }
+ else {
+ Vector conflicts = mModel.getConflicts(i, j, value.intValue());
+
+ if(DeviceConfig.mErrorHintLevel > 0) {
+ mGrid.setErrorFlag(i, j, true);
+ for(int k=0; k mCornerRectList;
+ private Point mCenterPt;
+ private Paint mPaint;
+ private int mBoxWidth = sDefaultBoxWidth;
+ private boolean mIsInAnimation = false;
+ private int mColor = sScanningColor;
+
+ private Runnable mThread = new Runnable()
+ {
+ public void run()
+ {
+ if (mProgressRect == null) {
+ initProgress();
+ }
+ if (mPaint != null) {
+ //set color to Focus-Done-Color while doing the animation
+ mPaint.setColor(sScanningColor);
+ }
+ if(mProgressRect.height() >= mBoundRect.height()) {
+ if(mProgressGoingDown) {
+ mProgressRect.top = mProgressRect.bottom;
+ }
+ else {
+ mProgressRect.bottom = mProgressRect.top;
+ }
+ mProgressGoingDown = !mProgressGoingDown;
+ }
+ if(mProgressGoingDown) {
+ mProgressRect.bottom += sAnimationStep;
+ }
+ else {
+ mProgressRect.top -= sAnimationStep;
+ }
+ invalidate((int)(mProgressRect.left-10), (int)(mProgressRect.top-10),
+ (int)(mProgressRect.right+10), (int)(mProgressRect.bottom+10));
+ postDelayed(this, sInterval);//延迟mInterval后执行当前线程
+ }
+ };
+
+ /**
+ * Constructor
+ * @param context
+ */
+ public ScannerBox(Context context) {
+ super(context);
+ }
+
+ /**
+ * Constructor
+ * @param context
+ * @param attrs
+ */
+ public ScannerBox(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ /**
+ * set center point of the box
+ * @param x
+ * @param y
+ */
+ public void setCenterPoint(int x, int y) {
+ if(mCenterPt == null) {
+ mCenterPt = new Point();
+ }
+ mCenterPt.set(x, y);
+ if(mBoundRect == null) {
+ return;
+ }
+ float oldLeft = mBoundRect.left;
+ float oldTop = mBoundRect.top;
+ float oldRight = mBoundRect.right;
+ float oldBottom = mBoundRect.bottom;
+ relocateBound();
+ invalidate((int)(oldLeft-10), (int)(oldTop-10),
+ (int)(oldRight+10), (int)(oldBottom+10));
+ }
+
+ public void setScanResult(boolean success) {
+ mColor = success ? sScanDoneColor : sScanErrorColor;
+ if(mPaint != null) {
+ mPaint.setColor(mColor);
+ }
+ if(mBoundRect != null) {
+ invalidate((int)(mBoundRect.left-10), (int)(mBoundRect.top-10),
+ (int)(mBoundRect.right+10), (int)(mBoundRect.bottom+10));
+ }
+ }
+
+ public void startAnimation() {
+ if(!mIsInAnimation) {
+ mIsInAnimation = true;
+ post(mThread);
+ }
+ }
+
+ private void setBoxWidth(int width) {
+ mBoxWidth = width;
+ relocateBound();
+ invalidate((int)(mBoundRect.left-20), (int)(mBoundRect.top-20),
+ (int)(mBoundRect.right+20), (int)(mBoundRect.bottom+20));
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ if(mCenterPt == null) {
+ mCenterPt = new Point(this.getWidth()/2, this.getHeight()/2);
+ }
+ if(mBoundRect == null) {
+ float ratio = (float)this.getWidth() / sDefaultBoxWidth;
+ scaleDrawSizes(ratio);
+ relocateBound();
+ }
+
+ drawLines(canvas);
+ drawProgressRect(canvas);
+ }
+
+ /**
+ * Arc rectangle index starts on left-top corner of the out bound rectangle and goes clockwise from 0 to 3
+ * -------------
+ * | 0 | | 1 |
+ * |---|---|---|
+ * | | | |
+ * |---|---|---|
+ * | 3 | | 2 |
+ * |---|---|---|
+ */
+ private void drawLines(Canvas c) {
+ RectF r = mCornerRectList.get(0);
+ c.drawLine(r.left + sCornerRadius, r.top, r.right, r.top, mPaint);
+ c.drawLine(r.left, r.top + sCornerRadius, r.left, r.bottom, mPaint);
+
+ r = mCornerRectList.get(1);
+ c.drawLine(r.left, r.top, r.right - sCornerRadius, r.top, mPaint);
+ c.drawLine(r.right, r.top + sCornerRadius, r.right, r.bottom, mPaint);
+
+ r = mCornerRectList.get(2);
+ c.drawLine(r.left, r.bottom, r.right - sCornerRadius, r.bottom, mPaint);
+ c.drawLine(r.right, r.top, r.right, r.bottom - sCornerRadius, mPaint);
+
+ r = mCornerRectList.get(3);
+ c.drawLine(r.left + sCornerRadius, r.bottom, r.right, r.bottom, mPaint);
+ c.drawLine(r.left, r.top, r.left, r.bottom - sCornerRadius, mPaint);
+ }
+
+ private void initPaint() {
+ mPaint = new Paint();
+ mPaint.setStyle(Paint.Style.STROKE);
+ mPaint.setAntiAlias(true);
+ mPaint.setColor(mColor);
+ mPaint.setStrokeWidth(sStrokeSize);
+
+ mProgressPaint = new Paint();
+ mProgressPaint.setStyle(Paint.Style.FILL);
+ }
+
+ /**
+ * Arc rectangle index starts on left-top corner of the out bound rectangle and goes clockwise from 0 to 3
+ * -------------
+ * | 0 | | 1 |
+ * |---|---|---|
+ * | | | |
+ * |---|---|---|
+ * | 3 | | 2 |
+ * |---|---|---|
+ */
+ private void initCornerRects() {
+ mCornerRectList = new ArrayList();
+ for(int i=0; i<4; i++) {
+ mCornerRectList.add(new RectF());
+ }
+ }
+
+ private void scaleDrawSizes(float ratio) {
+ if(!sIsScaled) {
+ sLineLength = (int)(sLineLength * ratio);
+ mBoxWidth = (int)(mBoxWidth * ratio);
+ sStrokeSize = (int)(sStrokeSize * ratio);
+ sCornerRadius = (int)(sCornerRadius * ratio);
+ sDefaultBoxWidth = (int)(sDefaultBoxWidth * ratio);
+ sAnimationStep = (int)(sAnimationStep * ratio);
+ sIsScaled = true;
+ }
+
+ initPaint();
+ initCornerRects();
+ }
+
+ private void relocateBound() {
+ if(mBoundRect == null) {
+ mBoundRect = new RectF();
+ }
+ mBoundRect.set(mCenterPt.x - mBoxWidth/2, mCenterPt.y - mBoxWidth/2,
+ mCenterPt.x + mBoxWidth/2, mCenterPt.y + mBoxWidth/2);
+ for(int i=0; i mFixedShapes = new Vector();
+
+ protected Rect mBound;
+
+ /**
+ * Constructor
+ * @param parent
+ */
+ public WidgetBase(ViewBase parent) {
+ this.mParentView = parent;
+ }
+
+ public void setBound(Rect rect) {
+ this.mBound = rect;
+ }
+
+ public Rect getBound() {
+ return mBound;
+ }
+
+ abstract public void paint(Canvas canvas);
+ abstract public boolean onTap(int x, int y);
+ abstract public boolean onPointerPressed(int x, int y);
+ abstract public boolean onPointerReleased(int x, int y);
+ abstract public boolean onKeyEvent(int key);
+
+}
diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..288b665
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..6ae570b
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d4fb7cd
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/drawable-xhdpi/no_image.png b/app/src/main/res/drawable-xhdpi/no_image.png
new file mode 100644
index 0000000..9ef0941
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/no_image.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/layout/activity_load_puzzle.xml b/app/src/main/res/layout/activity_load_puzzle.xml
new file mode 100644
index 0000000..c11a243
--- /dev/null
+++ b/app/src/main/res/layout/activity_load_puzzle.xml
@@ -0,0 +1,7 @@
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..efc78fc
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,8 @@
+
+
diff --git a/app/src/main/res/layout/fragment_capture_puzzle.xml b/app/src/main/res/layout/fragment_capture_puzzle.xml
new file mode 100644
index 0000000..8425197
--- /dev/null
+++ b/app/src/main/res/layout/fragment_capture_puzzle.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_load_puzzle.xml b/app/src/main/res/layout/fragment_load_puzzle.xml
new file mode 100644
index 0000000..1463d42
--- /dev/null
+++ b/app/src/main/res/layout/fragment_load_puzzle.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_sudoku_main.xml b/app/src/main/res/layout/fragment_sudoku_main.xml
new file mode 100644
index 0000000..8bc4dbe
--- /dev/null
+++ b/app/src/main/res/layout/fragment_sudoku_main.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/app/src/main/res/menu/load_puzzle.xml b/app/src/main/res/menu/load_puzzle.xml
new file mode 100644
index 0000000..61bb753
--- /dev/null
+++ b/app/src/main/res/menu/load_puzzle.xml
@@ -0,0 +1,12 @@
+
diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml
new file mode 100644
index 0000000..7d16da6
--- /dev/null
+++ b/app/src/main/res/menu/main.xml
@@ -0,0 +1,17 @@
+
diff --git a/app/src/main/res/raw/nn_weights_printed.txt b/app/src/main/res/raw/nn_weights_printed.txt
new file mode 100644
index 0000000..107efc4
--- /dev/null
+++ b/app/src/main/res/raw/nn_weights_printed.txt
@@ -0,0 +1,31162 @@
+0.2 601 51 10
+0.700759
+0.021663
+-0.541924
+0.195817
+0.403381
+-0.747477
+-0.051035
+-0.338913
+0.040399
+-0.600406
+0.703423
+0.242537
+-0.474154
+-0.492632
+-0.516591
+0.395264
+-0.972545
+-0.224969
+0.269420
+0.470493
+0.324924
+-0.294154
+0.711295
+0.413561
+-0.194802
+0.814729
+-0.633072
+0.334780
+-0.618537
+-0.939848
+0.559142
+0.024926
+-0.782669
+-0.115939
+-0.242266
+-0.437437
+0.006367
+0.801717
+-0.634083
+-0.364193
+-0.117673
+-0.942487
+-0.156869
+-0.056539
+-0.980163
+-0.766320
+-0.184247
+-0.271733
+-0.286924
+-0.859461
+-0.318111
+0.020025
+0.123944
+0.734418
+0.024547
+0.450898
+0.633725
+-0.780814
+-0.550996
+0.493923
+-0.382340
+-0.626073
+0.687206
+0.009636
+-0.027151
+0.083633
+0.941062
+-0.631338
+-0.035241
+0.107330
+-0.038197
+-0.706433
+-0.179433
+-1.002839
+0.218588
+0.533870
+-0.774562
+-0.161321
+0.802201
+-0.243642
+-0.330155
+0.538159
+0.259002
+0.479268
+0.218071
+0.623870
+0.945973
+-0.189623
+0.929362
+-0.310492
+0.297750
+-0.567700
+-0.813225
+-0.508581
+-0.838096
+-0.090392
+0.398466
+0.329463
+-0.299399
+0.538814
+-0.273401
+-0.229564
+0.830725
+0.868188
+-0.968970
+0.477439
+0.487153
+0.627861
+-0.604577
+0.253212
+0.170571
+-0.083779
+0.873148
+0.617001
+0.265482
+0.357195
+-0.587178
+-0.519416
+-0.599235
+0.049431
+-0.631196
+-0.392518
+0.863953
+0.645236
+-1.067213
+0.729867
+-0.703725
+0.141642
+-0.372430
+-0.001650
+0.679170
+-0.209209
+-0.982160
+0.630357
+0.052337
+-0.277746
+0.621581
+0.549543
+0.543475
+0.500283
+0.556303
+-0.598510
+0.337516
+-1.030217
+0.705935
+-0.202726
+-0.198655
+0.836425
+-0.490113
+0.477735
+0.742755
+-0.674240
+0.891474
+-1.006733
+0.975320
+-0.641650
+-0.855068
+-0.707745
+-0.131867
+-0.857505
+0.768134
+0.817278
+-0.561871
+-0.708510
+-0.759197
+0.476930
+-0.271489
+0.834109
+0.385228
+0.085775
+-1.015265
+0.143101
+-0.154509
+0.830238
+-0.837626
+-0.649901
+0.007778
+-0.990489
+-0.982016
+-0.636867
+0.944483
+-0.711076
+0.179023
+-0.672661
+0.630807
+-0.312734
+-0.260883
+-0.536797
+-0.153019
+-0.062326
+0.276715
+0.532523
+-0.488667
+-0.331037
+0.142499
+0.151054
+-0.749792
+-0.180837
+-0.472198
+-0.805462
+-0.951041
+-0.684240
+-0.401946
+0.830713
+-0.491234
+0.107781
+-0.001275
+-0.565319
+0.302656
+-0.895284
+0.736726
+-1.101018
+-0.051441
+0.669155
+-0.629739
+0.677561
+-0.913956
+-0.362575
+-0.210332
+0.125182
+0.623603
+0.174878
+-0.862253
+-0.967095
+-0.115062
+0.713434
+-0.388798
+-0.594953
+0.910490
+-0.229267
+-0.161049
+-0.718438
+-0.315810
+-0.399735
+-0.968282
+-0.865296
+-0.641461
+0.202780
+0.907976
+-0.238983
+0.441286
+-0.146475
+-0.269881
+-0.480307
+0.412168
+-0.128983
+-0.241005
+-0.276334
+-0.016159
+-0.632112
+-0.077367
+0.352180
+-0.436071
+-0.662161
+0.540574
+-0.948644
+-0.888222
+-0.043909
+-0.007591
+0.253739
+-0.574222
+0.373106
+-1.145407
+-0.655403
+0.748816
+0.522556
+-0.140888
+0.015201
+-0.568008
+-0.383532
+0.437734
+-0.153782
+0.193145
+-0.022575
+0.453444
+0.815921
+0.772430
+0.648439
+-0.786954
+-0.590696
+0.688000
+0.942664
+0.484395
+-0.820732
+-0.246859
+-0.956623
+0.366870
+0.045602
+0.043765
+0.793020
+0.812377
+-0.479879
+0.693017
+-0.537166
+-0.635639
+-0.974282
+-0.331923
+-0.390414
+-0.231914
+0.579622
+0.145703
+0.623067
+0.299081
+0.555509
+0.764152
+0.478393
+0.012789
+0.044061
+-0.699064
+0.684397
+-0.432544
+-0.385548
+0.627655
+-0.850491
+0.145138
+0.072145
+-0.609151
+0.752570
+0.130276
+-0.966561
+0.739933
+0.050296
+-0.107580
+-0.194008
+-0.880397
+0.273555
+0.871422
+1.081976
+-0.456062
+-1.048476
+-0.110183
+0.366195
+0.754234
+0.940693
+0.022794
+0.645775
+0.555918
+-0.688292
+-0.478976
+-0.875344
+0.389365
+0.663671
+-0.299320
+-0.382178
+0.579898
+0.542691
+0.715219
+-0.263626
+-0.816836
+-0.056705
+-0.887566
+0.113132
+0.154334
+-0.239047
+-0.074047
+0.151545
+0.508668
+-0.411783
+-0.574670
+-0.819477
+0.058634
+0.630299
+-0.080054
+-0.135122
+0.666665
+0.838410
+0.027349
+-0.565817
+-0.307283
+-0.351881
+0.320672
+-0.641551
+-0.407298
+-0.371128
+-0.592091
+0.825969
+0.537313
+0.098715
+-0.194804
+0.348004
+-0.564624
+0.756872
+-0.585144
+0.456798
+0.795936
+-0.104017
+0.632551
+-0.963803
+0.404508
+-0.441066
+-0.500338
+-0.087496
+-0.017818
+0.526764
+-0.004717
+-0.495710
+-0.008222
+-0.704036
+-0.721390
+0.205599
+-0.114805
+0.075614
+-0.150395
+0.159739
+0.079764
+0.133117
+-0.765198
+0.127508
+-0.032909
+0.439840
+-0.117304
+-0.711875
+0.910976
+-0.165560
+0.769074
+0.515415
+-0.723401
+-0.136323
+0.222988
+-0.759288
+0.824259
+-0.993142
+-0.370027
+-0.737426
+-0.507162
+-0.100243
+-0.031793
+-0.357835
+0.213758
+0.551860
+-0.610226
+0.546935
+0.252343
+-0.299892
+-0.357744
+0.148208
+0.032163
+-0.635943
+-0.434920
+0.489195
+0.510077
+0.751351
+-0.777646
+0.770834
+0.236040
+-0.570065
+0.314910
+0.340800
+-0.311372
+-0.732263
+-0.275709
+-0.358156
+-0.680894
+0.917510
+-0.912482
+0.618243
+-0.977382
+-0.274043
+0.255579
+0.407102
+-0.804069
+0.704766
+-0.349344
+0.394588
+0.173054
+-0.599419
+-0.445883
+-0.825535
+-0.762121
+0.588437
+0.276514
+0.297104
+0.615943
+-0.298211
+-0.773903
+0.598645
+-0.231592
+0.280266
+0.990828
+0.137289
+-0.171421
+-0.318164
+0.669637
+0.673067
+0.857837
+0.427718
+-0.532806
+-0.936752
+-0.554533
+-0.442819
+-0.762656
+0.879859
+-0.147915
+0.504891
+0.746362
+-0.463957
+0.119309
+-0.478696
+0.164432
+0.347460
+0.353783
+-0.429787
+-0.876816
+0.630447
+0.361520
+-0.329922
+-0.054930
+0.757644
+-0.808077
+0.196011
+-0.164471
+-0.181978
+0.462724
+0.365162
+0.165592
+-0.419528
+-0.185438
+0.672711
+0.218822
+0.387647
+0.591555
+-0.100253
+-0.337174
+-0.867289
+0.703126
+0.076850
+0.178040
+-0.112147
+-0.383905
+0.492503
+-0.772329
+-0.835869
+-0.153366
+-0.876447
+-0.308973
+-0.186157
+-0.859403
+0.447988
+-0.993876
+-0.627707
+0.676904
+-0.462567
+-0.084991
+-0.190826
+-0.060987
+-0.247900
+1.018028
+0.888025
+0.649182
+0.685179
+-0.092127
+0.460533
+-0.351407
+0.184801
+-0.748392
+-0.732010
+0.158713
+0.390223
+-0.622258
+-0.445371
+-0.886799
+-0.414248
+-0.526652
+-0.272424
+-0.244364
+0.339171
+0.817394
+-0.406258
+-0.231050
+0.922293
+-0.146067
+-0.640836
+0.623304
+0.427815
+-0.921507
+0.468057
+0.029327
+-0.771773
+-0.249170
+0.049809
+-0.850418
+-0.166998
+1.044681
+0.815218
+0.199825
+-0.542571
+-0.285058
+0.772366
+-0.098502
+-0.419410
+0.232974
+0.795406
+0.816661
+0.408396
+-0.652500
+0.466212
+0.992607
+0.359764
+0.407367
+0.384285
+-0.943741
+-0.773493
+0.096169
+0.764143
+-0.283591
+0.139872
+0.846881
+0.187577
+0.554266
+0.355130
+0.902808
+-0.529542
+-0.014426
+0.684169
+-0.099056
+-0.965850
+-0.430558
+-0.568010
+0.563016
+0.862542
+0.442052
+-0.728943
+0.244784
+-0.777317
+-0.779241
+0.293859
+0.569750
+0.446110
+-0.834846
+-0.058148
+0.707363
+0.847964
+0.116882
+0.538917
+0.082931
+-0.511818
+-0.626599
+0.527588
+0.988502
+0.197711
+-0.803013
+-0.578456
+0.863871
+-0.336307
+0.976074
+0.262560
+-0.173338
+-0.126916
+0.920610
+0.861592
+-0.938801
+0.833301
+0.746816
+0.017391
+-0.400907
+-0.559077
+-0.446383
+-0.455622
+0.032455
+-0.511769
+0.937836
+-0.418098
+-0.174786
+-0.053427
+-0.087022
+0.524354
+0.653061
+0.742640
+0.558834
+0.742600
+0.328183
+-0.768362
+-0.868405
+-0.660325
+-0.469209
+0.785924
+-0.422323
+0.365681
+0.666817
+0.241538
+-0.702161
+0.810115
+0.999818
+0.134289
+0.369984
+0.015051
+0.141604
+0.832172
+0.999406
+-0.488854
+1.017991
+0.508450
+-0.806154
+0.702740
+0.434906
+-0.371106
+0.724712
+-0.853314
+0.798130
+-0.897684
+-0.715478
+-0.165952
+-0.975432
+0.684614
+-0.488045
+-0.055767
+-0.776528
+0.120548
+0.659707
+0.045794
+-0.837234
+-0.771567
+-0.276419
+0.589790
+-0.281895
+-0.230057
+0.391773
+0.529543
+-0.485348
+-0.032311
+0.203640
+0.243487
+-0.268349
+-0.031393
+-0.129827
+-0.401042
+0.883924
+-0.325333
+0.371713
+-0.150572
+0.209180
+0.330133
+-0.351146
+0.084224
+0.272973
+0.571244
+-0.299553
+0.083803
+-0.970633
+0.007498
+-0.890638
+-0.180741
+-0.047825
+0.446676
+-1.071419
+0.025867
+-0.143266
+0.555037
+0.797528
+0.851143
+-0.071262
+-0.911108
+-0.563592
+0.525308
+0.254413
+-0.066394
+-0.932507
+1.055141
+0.142094
+-0.097119
+-0.541097
+0.903260
+-0.126014
+-0.552849
+-0.952454
+0.740235
+-0.751138
+-0.693294
+0.192113
+-0.736452
+-0.391881
+0.484058
+0.902150
+0.061023
+0.651274
+0.852716
+-0.302022
+-0.350888
+-0.703583
+0.089875
+-0.045311
+0.705103
+0.209136
+-0.739942
+-0.902620
+-0.171907
+-0.835253
+0.424477
+-0.318051
+-0.427356
+-0.549931
+0.968477
+-0.171028
+-0.354817
+-0.140344
+0.429754
+-0.029668
+0.540269
+0.471384
+0.843649
+0.405545
+1.043158
+-0.649643
+0.227413
+-0.364871
+-0.176130
+0.311616
+0.115345
+0.441488
+0.775800
+0.356247
+0.371075
+-0.758036
+-0.881376
+0.767672
+0.221335
+-0.904979
+-0.435306
+0.499730
+-0.074944
+0.299831
+0.741018
+0.370692
+0.769047
+0.983179
+0.661058
+-1.034499
+0.497597
+-0.679689
+0.208410
+0.966484
+-0.509078
+0.489834
+0.852914
+0.884662
+0.034962
+-0.757726
+0.863620
+0.368202
+0.122116
+0.834840
+0.452273
+-0.308649
+0.544121
+-0.341521
+0.333642
+-0.409983
+0.233657
+0.009070
+0.522307
+0.271425
+-0.687797
+0.727342
+-0.243185
+-0.769986
+-0.036151
+-0.486817
+-0.946006
+-0.705346
+-0.678613
+0.553266
+0.305032
+0.948239
+-0.108967
+-0.095493
+-0.374478
+0.166318
+-0.635897
+-0.544316
+0.480352
+-0.105383
+-0.086230
+-0.238697
+0.585632
+-0.411965
+0.819791
+-0.680979
+-1.007776
+1.004075
+0.502692
+-0.592440
+0.264590
+-0.565625
+-0.358077
+-0.278654
+-0.543515
+0.290118
+0.480507
+-0.940173
+-0.374896
+0.554375
+-0.705709
+0.137131
+-0.162710
+0.487932
+-0.819995
+0.127866
+-0.693670
+-0.237661
+-0.265062
+-0.404060
+-0.534062
+-0.727441
+-0.031841
+-0.219288
+-0.555459
+0.924841
+-0.116971
+0.567484
+0.973140
+-0.374234
+0.701804
+0.885659
+-0.370272
+-0.199692
+0.697229
+-0.158321
+0.719566
+-0.228693
+0.646407
+-0.174635
+0.189288
+0.210345
+0.383438
+0.716552
+0.377162
+0.391858
+-0.183688
+-0.734101
+0.451427
+-0.666773
+0.742799
+-0.624563
+-0.932916
+-0.029667
+0.174786
+-0.382828
+0.217613
+0.094758
+0.975173
+-0.547028
+0.241671
+-0.662570
+-0.876838
+0.084972
+0.352264
+1.022392
+-0.724863
+-0.931748
+-0.046094
+0.655439
+-0.891693
+0.621983
+0.892625
+0.860640
+-0.609975
+0.276914
+-0.485143
+0.068521
+0.342931
+0.606776
+-0.214023
+-0.660480
+-0.491684
+0.505560
+0.559136
+-0.189655
+0.904149
+0.813848
+0.162620
+-0.231021
+0.671110
+0.086884
+0.201263
+0.195049
+-0.831060
+-0.387375
+-0.668306
+-0.050325
+0.021633
+0.848446
+0.925157
+0.892211
+-0.732982
+0.073951
+-0.826897
+-0.821998
+-0.302042
+0.683870
+0.203122
+0.115543
+-0.370362
+0.029914
+0.040868
+-0.838065
+0.161012
+-0.615866
+-0.822877
+-0.185485
+-0.796590
+-0.373056
+0.489928
+-0.424704
+0.163786
+0.254403
+0.775624
+0.698432
+-0.406610
+0.373087
+0.973281
+-0.585011
+-0.208716
+0.096762
+0.261395
+-0.834025
+-0.091268
+0.750720
+0.164338
+-0.049402
+0.695410
+0.269121
+1.088045
+-0.335992
+-0.448723
+-0.801634
+-0.063303
+-0.441543
+0.703099
+0.053715
+0.084723
+-0.074623
+-0.204643
+0.959888
+-0.318342
+-0.347770
+-0.771854
+0.028923
+-0.951586
+-0.210224
+-0.948149
+-0.218594
+-0.011516
+0.507494
+-0.710159
+0.173812
+-0.763554
+-0.955300
+-0.653053
+-0.955527
+0.523286
+-0.256930
+0.679212
+0.072485
+0.637670
+0.127052
+-0.524167
+-0.073281
+0.368589
+-0.827356
+0.426372
+-0.610774
+0.574728
+0.803774
+0.820511
+0.367158
+0.724790
+0.563937
+0.115271
+0.327835
+-0.778982
+-0.998453
+-0.630846
+0.218671
+-0.900771
+0.839380
+-0.670273
+-0.339160
+-0.482645
+-0.908130
+0.095676
+-0.218360
+-0.094578
+-0.157008
+-0.782406
+0.106849
+0.386883
+-0.057720
+0.252325
+-0.345578
+0.199578
+0.894717
+0.375404
+0.354911
+-0.341991
+-0.513186
+-0.902697
+-0.107781
+0.085675
+-0.392453
+0.949754
+-0.255139
+-0.165597
+-0.188560
+0.191605
+0.863690
+0.237809
+0.132512
+0.417855
+0.971001
+0.270513
+-0.464483
+-0.944547
+0.471754
+0.980234
+0.833847
+0.931372
+-0.533119
+0.928272
+0.750780
+0.489453
+-0.537083
+0.787586
+-0.553996
+0.566269
+-1.076742
+0.233410
+0.933411
+0.043134
+0.419788
+-0.799088
+-0.161102
+0.271762
+0.437975
+0.080171
+0.591668
+-0.236174
+-0.217583
+0.339813
+-0.763458
+0.789789
+-0.371547
+-0.810539
+0.506336
+0.799041
+-0.828065
+-0.848681
+-0.875634
+-0.687287
+0.260053
+-0.799573
+-0.518842
+0.607542
+-0.266041
+0.337378
+-0.297358
+-0.618975
+0.014050
+0.563346
+-0.848174
+0.155579
+0.788478
+0.330405
+0.255370
+0.376844
+-0.084921
+0.199648
+0.910707
+0.896743
+0.475347
+-0.783626
+0.721428
+-0.498026
+0.944921
+0.338189
+0.928773
+-1.027145
+-0.814689
+0.844931
+-0.938709
+-0.966273
+-0.841788
+-0.152358
+-0.516689
+0.206340
+0.404668
+-0.682663
+-0.113726
+-0.043875
+-0.272267
+0.568379
+0.838062
+0.976441
+-0.734187
+-0.180825
+0.653149
+-0.935495
+0.273682
+0.318729
+-0.067961
+0.193643
+0.768297
+-0.124253
+-0.539714
+-0.858870
+-0.594630
+-0.073290
+-0.897365
+0.865043
+0.697413
+-0.126810
+-0.106557
+0.788596
+-0.875592
+0.707925
+0.216909
+-0.729583
+0.382741
+0.910904
+-0.599204
+0.184391
+0.530663
+0.298009
+0.078899
+0.042956
+-0.147475
+0.227409
+-0.079230
+-0.204033
+0.614202
+-0.906378
+-0.759668
+-0.898518
+-0.908049
+-0.180268
+-0.637124
+0.588970
+0.974575
+-0.712894
+1.074020
+-0.208211
+-0.589430
+0.292202
+1.017991
+-1.145445
+0.367842
+-0.381646
+-0.282510
+0.813549
+-0.277914
+-0.415305
+0.053191
+-0.067231
+-0.048578
+0.337489
+0.252955
+0.763535
+-0.273701
+0.248405
+-0.527113
+-0.343494
+0.872601
+1.062242
+0.285536
+-0.880189
+-0.348173
+-1.029304
+0.992633
+0.136060
+0.179944
+0.156180
+-0.338184
+-0.822557
+0.893439
+0.190837
+0.002528
+-0.503686
+0.406434
+-0.356989
+-0.673964
+0.810397
+-0.309377
+0.118982
+-0.678019
+0.900094
+0.886000
+-0.414464
+-0.906638
+-0.843888
+-0.627840
+-0.111843
+-0.910990
+-0.328914
+0.576158
+-0.487562
+0.317471
+-0.113520
+0.246295
+0.474014
+0.319809
+-0.747980
+-0.446972
+0.220574
+-0.256786
+0.595599
+0.349691
+0.883635
+-0.683914
+-0.153192
+-0.424891
+-0.601797
+-0.039369
+-0.634792
+0.830638
+-0.861695
+-0.505950
+0.182880
+0.088850
+-0.412809
+0.394363
+-0.707641
+-0.472207
+0.971494
+-0.044688
+-1.005761
+0.608507
+0.424388
+-0.435646
+1.018471
+-0.945541
+0.902525
+0.519491
+-0.827779
+-0.442632
+-1.095509
+-0.550254
+-0.108508
+-0.408902
+-1.016144
+0.276742
+0.156038
+0.115824
+-0.353159
+-0.703767
+0.433198
+0.445740
+-0.610302
+-0.203540
+-0.883395
+0.593453
+0.015012
+0.165201
+-0.809382
+-0.484449
+-0.302338
+-0.713447
+-0.800661
+0.141717
+-0.133485
+0.625343
+0.904209
+-0.047646
+-0.282305
+-0.829952
+1.039696
+0.746872
+-0.696189
+-0.852457
+-0.506256
+-0.038506
+-0.446935
+-0.467338
+-0.942446
+0.622135
+-0.139393
+0.401198
+0.423125
+0.228742
+0.739890
+0.407903
+-0.354871
+-0.924494
+0.495804
+0.097628
+-0.736335
+0.680117
+0.487439
+-0.059189
+0.251792
+0.219487
+0.922804
+-0.848499
+0.914962
+0.740199
+-0.213251
+0.255131
+-0.147242
+-1.052685
+-0.584039
+-0.054398
+0.396149
+0.521356
+-0.951022
+-0.082553
+-0.457575
+0.142158
+-0.382105
+0.295960
+0.711892
+0.051041
+0.218290
+0.879629
+-0.891537
+0.097177
+-0.440701
+-0.088487
+0.714469
+-0.856398
+0.744268
+-0.161426
+0.191391
+-0.979427
+0.700511
+-0.351836
+-0.043030
+0.716182
+0.845387
+0.449800
+0.034942
+0.828352
+-0.073785
+-0.279968
+-0.350679
+-0.225917
+0.195270
+-0.052210
+-0.108709
+-0.109156
+0.829017
+-0.935689
+0.030312
+-0.205963
+0.741363
+-0.734751
+-0.971189
+-0.345185
+0.355177
+0.136730
+-0.677046
+-0.827246
+0.061767
+0.521142
+0.701117
+0.644969
+-0.128013
+0.013499
+-0.815501
+-0.493054
+-0.626212
+0.158858
+-0.557080
+-0.652897
+0.296238
+-0.761495
+-0.427594
+0.985755
+-0.159679
+-0.571795
+0.810583
+-0.178263
+-1.022724
+-0.866827
+0.321362
+-0.276856
+0.535432
+-0.256914
+0.420045
+0.799630
+0.138356
+-0.140778
+-0.840628
+-0.534254
+-0.307377
+0.236309
+-0.958706
+-0.649531
+0.840806
+-0.743331
+-0.152334
+0.636555
+0.736563
+-0.741769
+0.419901
+0.342741
+-0.465612
+0.436841
+0.460734
+0.396852
+-0.119718
+0.119125
+-1.016070
+-0.102889
+0.007342
+0.604764
+-0.425060
+-0.684930
+0.583172
+-0.168010
+0.177273
+-0.651276
+-0.274539
+-0.103170
+0.903642
+-0.909208
+-0.231303
+-0.058730
+-0.830992
+-0.226434
+0.036555
+0.905474
+0.852740
+-0.071010
+0.416997
+0.010548
+0.931583
+-0.329695
+-0.026211
+-0.222557
+0.434704
+0.575824
+-0.641911
+0.445644
+0.643245
+0.808285
+0.145040
+0.686159
+-1.007430
+0.649352
+0.196951
+0.454243
+-0.615418
+-0.621274
+0.135721
+-0.482018
+0.432317
+0.841408
+0.854296
+0.927556
+-0.270448
+-0.839821
+-0.780714
+-0.905696
+-0.412399
+-0.244051
+-0.871053
+0.881757
+0.480869
+0.767885
+-0.860582
+-0.374921
+-0.493740
+0.741948
+0.112703
+-0.930764
+-0.165377
+-0.516015
+0.615161
+0.005149
+0.996209
+0.198218
+0.548878
+-0.811008
+0.463473
+0.968592
+-0.174218
+-0.787739
+0.653084
+-0.683410
+0.132530
+0.000796
+-0.205857
+-0.413330
+0.942718
+0.881916
+-0.004595
+0.131974
+0.758606
+0.405947
+0.249080
+-0.503254
+0.291130
+0.364713
+-0.423768
+-0.816208
+0.851559
+0.496499
+-0.401960
+0.226568
+-0.204283
+0.789238
+0.574376
+-0.784314
+-0.751961
+-0.638596
+0.648585
+0.357582
+-0.197069
+-0.099280
+-0.821211
+-0.899464
+0.376693
+0.277602
+0.595179
+-0.732925
+0.661781
+0.885087
+-0.284899
+0.828841
+0.849787
+1.094510
+-0.061410
+0.180715
+-0.791097
+-0.918886
+0.697804
+-0.846437
+-0.863673
+-0.314950
+-0.100806
+0.679317
+-0.782802
+-0.658005
+-0.934631
+0.686418
+0.060141
+0.041049
+-0.158858
+0.481159
+-0.704500
+0.935163
+0.033776
+-0.495891
+-1.074677
+0.527219
+0.194362
+0.455157
+-0.890968
+-0.850971
+0.363179
+0.757208
+0.828573
+0.676248
+-1.001851
+-1.036274
+0.761727
+0.260943
+-0.621059
+0.028861
+-0.323564
+-0.977872
+-0.133818
+0.677774
+0.853983
+0.199795
+0.954348
+0.287476
+0.846180
+-0.484239
+-0.499556
+0.293937
+-0.844236
+0.228689
+-0.159372
+-0.404964
+-0.138500
+0.395023
+-0.913946
+-0.815901
+-0.396417
+-0.531539
+-0.959789
+-0.811407
+0.770869
+0.190009
+0.563002
+0.546133
+0.924441
+0.023203
+-0.222999
+-0.382475
+-0.499889
+-0.802452
+0.384725
+-1.013413
+-0.448661
+-0.343853
+-0.921202
+0.907661
+0.481450
+1.020113
+-0.640410
+-0.175733
+-0.848491
+-0.808778
+-0.493362
+-0.748755
+-0.627397
+-0.398238
+-0.609291
+-0.552220
+-0.422459
+0.320423
+0.750844
+0.461619
+-0.459888
+0.611546
+-0.687445
+-0.939181
+-0.589748
+-0.576356
+-0.599212
+0.853459
+-0.583084
+-0.216436
+0.840114
+-0.888662
+0.191088
+-0.702597
+-0.077571
+0.452811
+0.213302
+1.033744
+-0.963960
+-0.208861
+-0.645268
+0.151841
+-0.687285
+-0.460902
+-0.109704
+0.259486
+-0.824262
+0.072178
+0.277088
+-0.027695
+0.103175
+-0.325339
+0.892943
+0.210877
+0.838961
+0.956199
+-0.620075
+-0.202364
+0.552122
+-0.474080
+-0.073620
+-0.952030
+0.657912
+0.834899
+0.390244
+0.068348
+-0.995551
+0.926334
+0.256766
+0.912867
+0.184854
+0.358155
+0.603918
+-0.232303
+-0.952475
+-0.883084
+-0.342898
+-0.171598
+0.793677
+0.027339
+-0.123926
+-0.369382
+-0.682222
+-0.864662
+0.415587
+-0.176747
+0.557479
+0.106092
+-0.476194
+-0.930968
+0.273588
+-0.631479
+-0.100025
+-0.920326
+-1.004059
+-0.122904
+0.746763
+-0.173075
+-0.590360
+-0.466198
+-0.740755
+-0.301687
+0.850301
+0.309801
+-0.441723
+-0.123178
+0.208601
+0.926443
+0.029992
+-0.751557
+0.956905
+0.108585
+-0.002954
+-0.314088
+0.330931
+0.226855
+0.821850
+0.371142
+-0.694432
+0.876151
+-0.770890
+0.032155
+-0.222380
+0.592792
+-0.717415
+-0.532378
+-0.655879
+-0.646047
+-0.837154
+0.847518
+0.353000
+-0.831367
+-0.463268
+-0.925626
+0.654953
+0.559312
+-0.567287
+0.153238
+-0.149489
+0.007696
+0.899869
+0.405756
+-0.807549
+-0.558074
+-0.387266
+-0.115358
+0.615208
+-0.732973
+0.662459
+-0.557987
+0.122396
+0.093510
+1.013251
+-0.182378
+-0.195303
+0.553547
+0.552060
+0.439901
+0.213741
+0.647238
+-0.984103
+-0.292221
+0.308074
+0.026727
+-0.267091
+0.467922
+-0.047947
+0.243868
+-0.464069
+-0.925827
+0.673304
+-0.680005
+-0.766011
+-0.048430
+0.842002
+0.000223
+-0.881514
+0.810580
+-0.638440
+0.626102
+0.789405
+-0.266144
+0.679965
+-0.417387
+0.972724
+-0.847706
+0.455673
+-0.924696
+-0.244557
+-0.090309
+0.693148
+0.955202
+-0.143054
+-0.611399
+-0.731719
+0.310046
+0.645903
+0.126245
+0.438343
+0.318438
+-0.632092
+0.170539
+0.708172
+0.560956
+0.850088
+0.348747
+-0.665332
+-0.118698
+0.717905
+0.138747
+0.417284
+-0.754548
+-0.145838
+0.423773
+0.748505
+-0.908186
+0.031839
+0.463165
+0.442946
+-0.052019
+0.928891
+0.241743
+0.305054
+-0.469397
+-0.758333
+-0.570447
+-0.104183
+-0.930465
+-0.447628
+-0.365378
+-0.867097
+-0.948500
+0.484619
+0.420655
+0.502526
+0.254561
+0.339878
+0.217865
+-0.632008
+-0.220198
+-0.790673
+0.020904
+0.860196
+0.868496
+0.795832
+-0.546204
+-0.665686
+-0.665505
+0.559570
+0.372159
+-0.099436
+-0.413124
+-0.607460
+-0.661128
+-0.384705
+-0.933104
+-0.742076
+0.402437
+-0.880495
+0.450625
+0.094471
+-0.684917
+0.034705
+-0.351311
+-0.078075
+0.616740
+0.727887
+0.340013
+0.253965
+-0.750487
+0.750963
+-0.056621
+0.520127
+0.594718
+0.799617
+0.820694
+-0.716288
+0.453067
+0.043977
+0.997738
+0.109517
+-0.775605
+-0.673279
+-0.922584
+-0.146076
+0.721548
+0.539065
+-0.182348
+0.712068
+-0.179587
+-0.695314
+0.248039
+0.384250
+-0.060422
+0.883329
+0.227992
+0.014572
+0.504167
+0.790539
+0.028438
+-0.736694
+-0.578127
+0.583159
+0.504616
+0.648304
+-0.603502
+-0.003872
+-0.745529
+0.197952
+-0.847425
+-0.562159
+-0.794329
+1.014224
+0.213900
+0.977270
+0.053342
+0.399516
+0.270029
+0.358749
+0.002807
+-0.389873
+0.438817
+-0.561062
+-0.086487
+-0.330206
+-0.297021
+-0.957731
+0.790178
+0.842935
+-0.157510
+-0.240935
+0.382648
+-0.086226
+-0.581935
+-0.815878
+-0.143957
+0.653102
+0.381947
+-0.139782
+0.244686
+-0.230354
+-0.701325
+-0.789891
+0.831347
+-0.442179
+-0.322837
+-0.011894
+0.449022
+-0.577976
+-0.291498
+0.104034
+0.224596
+-0.132378
+0.945134
+-0.283148
+0.687093
+-0.911114
+0.115804
+0.209466
+0.398061
+0.499004
+-0.318720
+-0.096582
+0.182719
+-0.054114
+0.883291
+0.311165
+0.031211
+0.166585
+0.327788
+0.796584
+0.141693
+0.153412
+-0.788025
+0.119211
+-0.438607
+0.447919
+0.778200
+0.966945
+-0.074205
+0.588080
+0.850936
+0.651778
+-0.984963
+0.197428
+0.560208
+0.613922
+-0.086564
+0.268353
+0.091995
+-0.299600
+0.316471
+0.826064
+0.951833
+0.473548
+-0.316419
+0.974584
+0.623069
+0.213610
+0.634822
+-0.351533
+-0.503465
+0.152741
+-0.681899
+-0.250892
+-0.388278
+0.135868
+-0.265336
+-0.890617
+0.890242
+0.053122
+-0.735662
+0.786598
+-0.078760
+0.472881
+-0.471126
+0.471636
+-0.331889
+0.919731
+-0.430554
+0.038358
+-0.406217
+-0.275435
+-0.877833
+0.797590
+0.777482
+0.730973
+0.512594
+0.379734
+0.270478
+-0.205468
+-0.691825
+0.775019
+1.007683
+-0.536179
+0.223165
+-0.926210
+-0.948970
+0.676682
+-0.435771
+0.169118
+0.045603
+0.341217
+-0.105993
+0.552278
+0.448634
+-0.419754
+0.697682
+-0.824715
+-0.318102
+0.882875
+0.281068
+0.942676
+-0.432160
+0.656495
+0.153245
+-0.546074
+-0.530719
+0.035723
+-0.911708
+0.207889
+-0.578673
+-0.854798
+-0.374906
+0.052340
+0.473861
+0.216955
+-0.564966
+0.443538
+-0.190105
+-0.801729
+0.623024
+-0.026957
+-0.005303
+-0.528379
+0.416075
+0.377844
+-0.495354
+-0.812715
+0.154361
+0.194678
+-0.756971
+-0.808828
+0.435211
+-0.527096
+-0.807571
+-0.697175
+-0.102488
+-0.163428
+-0.754314
+-1.155831
+0.962388
+0.630647
+-0.080561
+-0.691872
+0.357897
+0.136485
+0.390651
+0.575802
+0.079867
+0.544159
+-0.518333
+0.666311
+-0.626580
+-0.324663
+0.421206
+-0.450011
+0.313895
+0.525466
+0.662370
+-0.949633
+-0.460342
+-0.902355
+-0.333599
+0.585082
+-0.146052
+-0.839034
+-0.400662
+0.554076
+0.494188
+0.995128
+-0.881211
+0.810011
+-0.032163
+0.569658
+0.810633
+-0.705888
+-0.228459
+0.598827
+-0.648461
+-0.031814
+-0.098467
+0.842147
+-0.679447
+-0.658988
+0.011828
+0.082071
+-0.702991
+-0.255307
+-0.016681
+-0.766175
+0.024125
+-0.170075
+-0.514565
+0.132168
+-0.467695
+1.014459
+-0.099801
+-0.573552
+0.763114
+0.349998
+-0.630302
+0.793941
+-0.462361
+-0.621339
+-0.580348
+0.281140
+-0.968809
+0.115020
+-0.807543
+-0.334263
+0.786610
+-0.903808
+-0.937247
+0.929401
+0.630488
+-0.765745
+0.330613
+-0.650103
+0.057738
+-0.554193
+-0.802473
+0.285053
+-0.371411
+-0.076005
+-0.067652
+-0.438544
+-0.406298
+0.300494
+-0.775916
+-0.596125
+0.205839
+0.586634
+0.150127
+-0.969124
+-0.736118
+0.675591
+-0.840842
+0.736289
+-0.807694
+0.930045
+-0.890749
+-0.579676
+0.146204
+-0.606192
+0.325924
+-0.498618
+-0.513365
+-0.352257
+-0.447828
+-0.782118
+0.258885
+0.197280
+0.580995
+1.003414
+0.478037
+-0.989070
+0.828568
+-0.618316
+-0.137050
+-0.328436
+-0.334353
+-0.349286
+0.851867
+0.064146
+-0.788617
+0.314012
+-0.947345
+0.512519
+-0.706966
+0.632146
+-0.166565
+-0.698804
+0.120519
+0.627836
+-0.983951
+-0.231791
+-0.377469
+-0.423170
+-0.463167
+-0.516909
+0.780825
+-0.400773
+0.933952
+1.067386
+-0.213438
+0.929522
+-0.508199
+0.498131
+1.088030
+-0.361668
+-0.270444
+-0.142493
+0.194891
+-0.927706
+0.661639
+-0.512484
+0.418460
+0.875340
+0.380006
+-0.470625
+-0.084078
+0.151335
+-0.066615
+0.135919
+-0.398748
+-0.247574
+0.160246
+-0.736028
+-0.832228
+-0.774372
+-0.225513
+-0.092568
+-0.577031
+0.050081
+0.948252
+-0.510202
+0.135292
+-0.481058
+0.636044
+-0.379512
+-0.571216
+-0.734686
+-0.279805
+0.278654
+0.708311
+0.018036
+-0.475924
+0.973414
+0.586889
+-0.596174
+-0.909668
+-0.566387
+0.381247
+0.203502
+0.255187
+-0.851395
+-0.831654
+-0.119941
+-0.654231
+-0.733371
+-0.943854
+0.300156
+0.505587
+-0.346512
+-0.627251
+-0.929988
+-0.423240
+0.907108
+0.860856
+-0.877791
+-0.508264
+0.836408
+-0.084231
+-0.642961
+0.085488
+0.616509
+-0.659648
+-0.086808
+-0.259833
+0.108094
+-0.014030
+-0.117480
+-0.954600
+0.245590
+0.263402
+0.402125
+0.401425
+-0.641952
+0.693489
+0.715969
+-0.521043
+0.045920
+-0.655241
+0.345544
+0.561231
+-0.859376
+0.293849
+0.670566
+-0.593776
+-0.147661
+0.538771
+-0.899725
+0.458408
+-0.887611
+-0.928421
+-0.861527
+-0.811985
+-0.317502
+-0.131360
+-0.694445
+0.222647
+0.399672
+0.213050
+-0.252772
+0.710795
+0.732771
+0.346797
+0.714353
+-0.234154
+-0.636469
+-0.639842
+-0.207782
+0.769188
+-0.747370
+0.667681
+-0.835859
+-0.899456
+-0.348954
+0.454791
+0.458898
+0.084966
+-0.343681
+0.002400
+-1.056774
+-0.883355
+0.785917
+-0.407838
+-0.185336
+0.514522
+-0.566019
+-0.879902
+0.112786
+-0.435409
+0.342423
+0.925438
+0.384667
+-0.795558
+0.169134
+-0.212140
+-0.400747
+-0.236110
+0.884840
+0.905572
+0.151017
+0.506217
+0.796702
+-0.540818
+-0.376389
+0.254340
+0.598198
+-0.546698
+-0.172638
+0.277498
+0.233657
+-0.920038
+-0.002109
+-0.341765
+0.486597
+-0.191252
+0.006529
+-0.525239
+0.593144
+-0.234124
+-0.092645
+-0.027953
+-1.001056
+-0.888479
+0.898556
+0.842100
+-0.471822
+0.243384
+0.844960
+0.467315
+-0.631903
+-0.952660
+0.068814
+0.506356
+-0.131661
+-0.754137
+0.619283
+-0.507427
+0.477956
+-0.810723
+0.043579
+0.300104
+-0.539498
+-0.826439
+0.649153
+-0.264503
+0.197747
+-0.379561
+0.731692
+-0.458649
+0.058872
+0.995893
+-0.074077
+0.610774
+-0.135237
+0.725328
+0.188250
+-0.020509
+0.763978
+0.790202
+0.783573
+-0.492117
+0.652601
+0.782556
+0.036147
+0.521893
+-0.194274
+-0.838899
+-0.051581
+0.970491
+0.586889
+-0.879918
+0.580270
+-0.778024
+0.710844
+-0.673902
+-0.007666
+0.624977
+-0.672157
+-0.866851
+0.851659
+-0.676637
+-0.660440
+-0.190041
+0.649315
+0.503718
+-0.170206
+0.398197
+-0.834015
+-0.525187
+-0.114055
+-0.324473
+0.027751
+0.648324
+-0.447584
+-0.653322
+-0.670756
+-0.134991
+-0.464000
+0.193176
+-0.897873
+-0.663077
+0.212127
+0.843069
+-0.307684
+0.157249
+-0.696366
+0.949707
+-0.044759
+-0.337694
+-0.439827
+-0.334693
+0.388643
+-0.164452
+-0.483932
+-0.897650
+-0.443534
+-0.519763
+-0.629028
+-0.706690
+-0.275922
+0.140629
+-0.744746
+-0.531830
+-0.209010
+-0.288190
+-0.037687
+-0.033648
+0.250725
+0.115219
+-0.469680
+0.365310
+0.015461
+-0.111195
+-0.702168
+0.824049
+-0.881443
+-0.972798
+0.068102
+-0.259716
+-1.044528
+0.287686
+0.462316
+-0.719774
+-0.115656
+-0.385739
+-0.552966
+-0.412236
+0.374499
+-0.336184
+0.899479
+0.453527
+-0.025632
+-0.865892
+-0.134939
+-0.252520
+0.303501
+-0.919533
+-0.876114
+-0.720763
+-0.555748
+0.301804
+0.283729
+0.870823
+0.741815
+-0.229084
+-0.831826
+0.409608
+0.672562
+0.162772
+-0.051311
+-0.634556
+0.328467
+-0.613859
+0.673752
+0.928782
+-0.793120
+-0.671805
+0.847856
+-0.682318
+0.846819
+-0.521205
+0.339695
+0.488079
+0.737399
+0.522884
+0.931731
+0.090076
+0.853434
+-0.481516
+-0.132371
+-0.649402
+0.603534
+-0.566413
+-0.697489
+0.929725
+0.687698
+0.229197
+-0.413484
+0.379967
+-0.561310
+0.121512
+-0.190537
+1.003510
+0.069995
+0.645518
+0.406741
+0.595538
+0.433926
+0.674718
+-0.465162
+0.316036
+-0.675162
+0.157852
+0.106147
+-0.167533
+-0.413285
+-0.714411
+0.197369
+-1.003171
+0.366455
+0.140870
+0.026138
+-0.526894
+0.293920
+-0.250041
+0.529017
+-0.147527
+-0.553337
+-0.439756
+0.910482
+-0.719463
+-0.557843
+-0.959610
+0.424261
+-0.275696
+0.581531
+-0.811468
+0.414862
+-0.739684
+0.255679
+-0.958675
+0.485786
+0.762685
+-0.199776
+0.798702
+-0.795688
+-0.693863
+-0.752510
+0.120730
+-0.967003
+-0.660836
+0.585383
+-0.787656
+-0.009155
+-0.134775
+0.400272
+0.157761
+0.244344
+-0.749543
+-0.264779
+0.698401
+-0.097311
+0.794366
+-0.224629
+0.740937
+-0.781515
+-0.564584
+-0.367918
+0.928427
+0.810580
+-0.934627
+-0.886997
+-0.288408
+-0.926643
+-0.394612
+-0.812907
+-0.172547
+-0.054395
+-0.808181
+0.316763
+-0.972617
+-0.963801
+0.361659
+0.511138
+-0.825028
+0.875241
+-0.749023
+0.992633
+-0.422719
+-0.214089
+0.751353
+0.460810
+0.030462
+0.870773
+-0.284349
+-0.590005
+-0.966949
+-0.823166
+-0.693435
+0.633895
+0.686160
+0.458965
+0.629177
+0.164555
+-0.411807
+0.603349
+0.910274
+-0.906812
+0.973691
+-0.920549
+-0.841365
+0.078076
+0.696260
+-0.373343
+0.117289
+-0.306149
+0.487490
+-0.692493
+-0.466133
+0.445350
+0.339215
+0.098189
+0.308422
+0.760359
+0.787949
+0.798381
+-0.137288
+0.263883
+-0.741917
+0.475725
+0.406642
+-0.949301
+-0.139416
+0.880118
+0.813466
+-0.686280
+0.387002
+0.712686
+-0.417046
+-0.768734
+-0.127264
+0.690005
+0.186032
+-0.571866
+-0.778678
+-0.749370
+0.507237
+-0.294819
+-0.518872
+0.409274
+-0.061174
+0.692331
+0.114547
+-0.426624
+0.668784
+0.336923
+0.743831
+-0.866962
+0.739225
+0.841901
+-0.551962
+0.621470
+-0.584809
+-0.593714
+-0.903346
+0.647394
+0.346382
+-0.562275
+-0.602658
+-0.053563
+-0.958175
+-0.989142
+-1.045130
+-0.825233
+-0.660326
+-0.330292
+0.719130
+0.629625
+0.750015
+0.817760
+-0.886651
+-0.558226
+-0.792229
+0.775283
+0.385895
+-0.213026
+0.597586
+0.384861
+0.462244
+0.090410
+-0.270533
+0.614339
+0.569225
+-0.987812
+-0.459398
+0.748699
+0.481478
+0.271303
+0.619826
+-0.833262
+-0.450304
+-0.912114
+-0.361605
+-0.360466
+-0.719522
+0.683395
+0.954200
+-0.036609
+0.682553
+0.617632
+-0.698167
+0.445996
+0.290209
+-0.115356
+0.315840
+0.637945
+-0.629318
+0.164718
+0.153742
+0.595367
+0.149910
+-0.672368
+0.476304
+0.485460
+-0.750021
+0.154779
+-0.474986
+0.666826
+-0.153082
+-0.295028
+0.400121
+0.210749
+-0.711929
+0.830701
+-0.335450
+0.765453
+-0.197862
+-0.611711
+0.191404
+-0.625053
+0.007169
+0.602793
+0.210663
+0.536845
+0.919778
+0.561472
+-0.230307
+0.331365
+-0.484604
+0.617136
+-0.638770
+-0.015486
+0.709370
+-0.617428
+-0.218429
+0.309571
+0.452989
+0.833512
+-0.116999
+-0.258676
+-0.252266
+0.217619
+0.115271
+-0.760102
+-0.718438
+-0.067947
+-0.165512
+-0.433263
+-0.968801
+-0.550583
+-0.901638
+-0.902216
+0.754644
+0.975080
+0.557706
+0.835482
+-0.885218
+0.056349
+-0.376396
+0.194365
+-0.728929
+-0.519356
+0.203217
+0.034903
+-0.195555
+-0.593445
+-0.939146
+-0.213323
+-0.575651
+0.714312
+0.284247
+0.815790
+0.758927
+-0.039383
+0.960392
+0.001116
+0.112245
+-0.221035
+-0.937548
+0.296889
+0.793841
+1.003476
+0.168172
+-0.475784
+-0.251591
+-0.870231
+-0.283453
+0.346538
+0.336881
+-0.908338
+-0.651339
+-0.866014
+0.008528
+0.862739
+0.305800
+0.170173
+-0.103772
+-0.774438
+0.194275
+-0.004131
+-0.439643
+0.564087
+-0.564944
+-0.328226
+-0.715348
+-0.826025
+-0.134206
+0.587411
+-0.620757
+0.401231
+0.486822
+0.948260
+0.462351
+0.416766
+0.331023
+-0.239444
+-0.652117
+0.948738
+0.626940
+0.714476
+0.075561
+-0.037350
+-0.569596
+0.313359
+-0.081667
+-0.123207
+-0.059361
+-0.555404
+0.628184
+0.403481
+-0.089455
+0.434754
+-0.816693
+-0.343950
+-0.985516
+0.366940
+0.234015
+0.390332
+0.875413
+-0.230880
+-0.025295
+0.549467
+0.043625
+0.838550
+-0.857869
+-0.234949
+0.438595
+-0.651482
+-0.778574
+0.743911
+-0.257548
+0.008268
+0.201628
+0.037098
+-0.942706
+-0.271858
+-0.719792
+0.432550
+0.763431
+-0.171105
+-0.497678
+-0.612572
+-0.839642
+-0.437376
+0.028450
+-0.488779
+0.468543
+0.277274
+-0.294708
+-0.836062
+0.294022
+0.009536
+-0.780239
+0.316592
+0.959625
+0.175022
+-0.318295
+0.073648
+-0.948495
+0.498681
+-0.764331
+0.734959
+0.213525
+0.953298
+0.224948
+-0.124399
+0.048447
+-0.426274
+0.054765
+0.505456
+-0.494623
+0.656145
+-0.481056
+-0.630034
+-0.353773
+-0.503338
+0.211717
+0.519622
+0.570203
+0.654299
+0.080393
+-0.876811
+0.477986
+0.910009
+-0.069009
+0.881436
+-0.051383
+0.831679
+-0.350669
+0.825994
+-0.118019
+-0.072945
+-0.432329
+0.252459
+-0.581978
+-0.202603
+-0.720041
+-0.099230
+-0.692009
+-0.690967
+0.517340
+0.076333
+0.282991
+0.045354
+-0.514047
+0.353604
+0.355439
+-0.427047
+0.239166
+0.702770
+0.669180
+0.030653
+0.489934
+0.433495
+-0.701893
+0.469112
+-0.721958
+0.725106
+-0.464946
+0.163770
+-0.520369
+-0.096224
+0.763189
+-0.790448
+0.691333
+-0.750917
+0.555958
+-0.605117
+0.586979
+-0.268215
+1.074529
+0.052907
+-0.819379
+-0.834768
+-0.751468
+-0.173089
+-0.904405
+0.121694
+0.218887
+0.959848
+-0.742899
+-0.399993
+-0.613443
+0.333981
+-0.914931
+0.578733
+-0.539119
+0.423572
+0.358861
+-0.968032
+0.690984
+-0.245023
+-0.245983
+0.959459
+0.332266
+-0.627793
+0.669453
+0.744313
+-0.234427
+-0.397857
+0.842106
+-0.393596
+0.510079
+-0.911641
+-0.426354
+-0.015602
+-0.922096
+0.888356
+-0.349934
+-0.444411
+-0.026905
+-0.212045
+-0.330824
+-0.421022
+0.584387
+0.330285
+-0.714177
+0.732659
+0.695132
+-0.772613
+-0.197961
+-0.826747
+0.409935
+-0.183122
+0.252883
+0.048085
+-0.593600
+-0.873499
+-0.348815
+0.011285
+0.524393
+-0.710163
+0.491413
+0.438149
+-0.672029
+1.011243
+0.017789
+0.181289
+-0.075314
+0.890624
+0.663701
+0.179540
+-1.104348
+-0.397232
+0.332176
+0.842892
+-0.099677
+0.579120
+-0.316940
+-0.419882
+-1.000381
+-0.423261
+-0.400578
+0.741155
+-0.596013
+-0.170888
+0.698552
+-0.526504
+-0.483829
+-0.294160
+0.906385
+-0.241963
+-0.754848
+-0.599168
+0.151027
+0.875180
+0.918564
+0.875679
+-0.114759
+0.158242
+-0.773941
+-0.207274
+0.699865
+0.571090
+0.206307
+0.394139
+0.687875
+-0.484424
+0.978160
+-0.745843
+0.292128
+-0.405522
+-0.780914
+0.000655
+0.270728
+-0.504618
+0.913010
+0.278421
+-0.017667
+0.188338
+-0.836712
+0.459927
+-0.107571
+-0.814163
+-0.147344
+0.072022
+0.121848
+0.242847
+-0.546803
+0.497360
+0.384773
+-0.322896
+0.918627
+0.088358
+-0.187841
+-0.873234
+0.513906
+0.502485
+0.432466
+0.220247
+0.763962
+-0.083116
+0.563341
+-0.282230
+0.702636
+-0.168692
+-0.216179
+0.359732
+0.852910
+-0.094077
+0.895152
+0.281541
+0.063908
+0.879761
+0.072636
+0.319644
+-0.903372
+0.102683
+-0.960828
+-0.073073
+-0.800754
+-0.463826
+-0.539138
+0.261945
+0.485500
+0.202254
+-0.503339
+-0.494947
+0.721427
+0.016441
+0.658094
+0.984235
+-0.313876
+0.102654
+-0.607755
+0.568536
+-0.014227
+0.837407
+-0.648462
+-0.038178
+-0.611296
+-0.013999
+0.242784
+-0.471091
+0.118560
+0.295400
+-0.602502
+-0.127973
+0.965628
+0.210721
+-0.599526
+-0.008680
+0.287272
+-0.252726
+0.829310
+-0.053320
+0.350374
+-0.833280
+-0.454473
+0.155340
+-0.877244
+-0.895121
+-0.927388
+-0.017483
+-0.404351
+0.338684
+0.482918
+0.093852
+0.041631
+-0.521673
+-0.451783
+-0.686384
+-0.800519
+-0.722509
+-0.395445
+0.461736
+0.277325
+0.207638
+-0.982680
+-0.197988
+0.248320
+-0.616268
+-0.937662
+-0.703825
+-0.986650
+0.647050
+-0.388986
+-0.536143
+-0.307792
+-0.806705
+0.811822
+0.403875
+-0.627590
+-0.746262
+-0.745702
+0.708802
+-0.168245
+-0.431579
+-0.086011
+0.579787
+-0.825362
+0.361012
+-0.771440
+-0.987655
+-0.368786
+-0.130971
+-0.791838
+0.186569
+-0.886611
+0.359936
+0.788108
+0.355734
+-0.841836
+0.004109
+-0.745320
+-0.517353
+0.621856
+0.450659
+0.914018
+0.922926
+-0.212246
+-0.489494
+-0.058280
+-0.092937
+-0.048963
+0.710739
+-0.563347
+-0.573350
+-0.002177
+-0.833319
+0.843512
+-0.214031
+-0.288453
+0.637461
+0.229464
+0.983351
+-1.040473
+0.467869
+-0.197134
+-0.758190
+0.738480
+-0.669761
+0.600875
+0.448471
+0.813730
+0.609569
+0.763510
+-0.797213
+0.553349
+-1.019778
+0.991443
+-0.135045
+0.500064
+-0.428086
+0.466851
+-0.489331
+0.716375
+-0.932497
+-0.136962
+-0.002769
+0.220382
+-0.402942
+0.226923
+-0.339214
+0.355452
+0.752800
+-0.005617
+0.623039
+0.986149
+-0.636415
+-0.497737
+-0.155753
+-0.788004
+0.881188
+-0.598738
+-0.440411
+-0.854648
+0.199916
+0.687812
+0.280910
+0.355247
+0.622478
+-0.695717
+0.167461
+0.183574
+-0.107759
+0.738200
+0.568774
+-0.967988
+-0.723600
+-0.517779
+0.496156
+0.069663
+0.928710
+-0.112146
+-0.209123
+0.907118
+-0.669369
+0.163466
+-0.499609
+-0.762880
+-0.287861
+-0.312720
+-0.669725
+0.716391
+0.786115
+-0.463995
+0.842762
+-0.319528
+-0.225573
+-0.269228
+0.314694
+-0.129328
+0.375063
+-0.685133
+0.799559
+-0.240737
+-0.716617
+0.076395
+0.398751
+-0.347078
+0.133295
+-0.736825
+-0.230365
+-0.815378
+-0.953253
+-0.424605
+0.944602
+0.552499
+0.404253
+-0.527784
+0.845531
+-0.924328
+-0.246997
+0.255597
+0.891024
+-0.932044
+0.378044
+-0.040730
+-0.338908
+-0.176176
+-0.477281
+0.432742
+-0.651548
+0.000870
+0.818333
+-0.978368
+0.632773
+0.668960
+0.594790
+-0.479996
+-0.394335
+0.549283
+-0.201607
+-0.436660
+0.110881
+0.407189
+0.973912
+-0.718545
+0.203578
+0.848401
+-0.478906
+0.849388
+0.634484
+-0.855134
+-0.161480
+0.044859
+0.752446
+-0.244090
+0.387991
+0.897060
+-0.269601
+-0.425932
+0.179615
+0.520760
+0.443627
+0.159826
+0.217624
+0.611511
+0.013702
+-0.264301
+0.940258
+-0.575545
+0.514997
+0.187683
+0.609572
+0.308290
+-0.702123
+-0.268427
+-0.327193
+0.594667
+0.775602
+-0.884129
+0.659593
+0.593063
+0.973298
+-0.390126
+-0.929311
+0.093294
+0.692541
+0.621100
+-0.625183
+0.865113
+-0.569796
+-0.409064
+0.285936
+0.602082
+0.777501
+-0.242991
+-0.460934
+0.348583
+1.029485
+0.227358
+0.261398
+0.287065
+0.642423
+-0.683863
+-0.728136
+-0.387382
+0.940564
+0.172615
+-0.582560
+-0.039941
+1.018228
+-0.671188
+0.342370
+-0.483136
+-0.939693
+-0.377481
+-0.864021
+-0.869408
+0.500649
+0.558911
+-0.994766
+0.344339
+-0.263245
+0.101455
+-0.843899
+-0.537599
+-0.550975
+0.787722
+0.453925
+-1.087037
+0.415494
+0.456019
+0.892563
+0.645618
+0.602705
+0.126592
+0.080512
+-0.064748
+-0.420259
+0.763201
+0.175957
+0.097711
+0.038556
+-0.784995
+-0.542712
+0.611175
+-0.100533
+-0.484231
+0.252949
+-0.445566
+-0.883082
+-0.757942
+0.488734
+-0.511924
+-0.036372
+-0.589564
+0.833999
+0.980834
+-0.698880
+0.895235
+-0.860202
+0.882836
+-0.109415
+0.709041
+0.828526
+-0.181617
+-0.801501
+-0.798077
+-0.543957
+0.139083
+-0.085552
+0.041401
+0.711004
+0.887881
+0.588399
+-0.980363
+0.178169
+-0.688483
+-0.519315
+0.167901
+0.220071
+0.928985
+0.702974
+-0.719111
+0.299759
+0.855095
+-0.220119
+-0.528180
+-0.549853
+-0.879354
+-0.122133
+-0.436024
+0.521925
+-0.859353
+0.749840
+0.737978
+-0.385716
+0.604561
+0.583360
+0.205265
+0.174651
+0.047749
+0.837588
+0.720015
+0.934605
+0.257316
+-0.056746
+-0.726210
+0.747140
+0.026484
+-0.769256
+-0.075521
+-0.790716
+-0.098757
+0.334139
+0.335279
+0.346745
+0.435866
+0.424671
+0.627143
+0.110997
+-0.775920
+0.689580
+-0.968199
+-0.219024
+-0.207432
+-0.216722
+-0.165198
+0.757683
+0.801777
+0.242582
+-0.595167
+0.259426
+0.150506
+0.069857
+-0.221931
+0.158862
+-0.872235
+0.754458
+0.193412
+-0.554212
+-0.513262
+-0.055689
+0.656710
+0.968565
+-0.840667
+0.563345
+-0.201153
+0.579807
+0.230597
+-0.228686
+0.306357
+-0.705752
+-0.231415
+0.135107
+0.417366
+-0.199477
+0.272713
+0.727607
+1.046135
+0.382633
+-0.808384
+-0.923219
+-0.148468
+0.537631
+0.806061
+0.696603
+0.858367
+-0.567262
+-0.142808
+0.078038
+-0.313074
+0.486673
+0.636013
+-0.058982
+-0.003756
+-0.106677
+-0.740200
+0.184550
+-0.001030
+0.045205
+-0.173232
+0.291741
+0.062162
+-0.912056
+-0.198176
+0.905500
+-0.114883
+-0.932790
+0.157306
+-0.870060
+0.129602
+0.840162
+0.249456
+0.165730
+0.917890
+-0.548641
+0.384405
+0.241697
+-0.623333
+0.819336
+0.133164
+0.067584
+0.355819
+0.538248
+0.110751
+0.421277
+0.308144
+0.895245
+0.106920
+-0.691991
+-0.318603
+0.602679
+0.045399
+-0.391353
+-0.571846
+-0.257149
+0.561992
+-0.862942
+0.544205
+0.384571
+-0.967931
+-0.638860
+-0.891615
+0.699544
+-0.421272
+0.065326
+0.247924
+0.288339
+-0.415671
+0.287397
+-0.544016
+0.638922
+0.259619
+0.591235
+0.958766
+0.764939
+0.025956
+-0.493021
+-0.114067
+0.876110
+0.007660
+-0.202276
+0.410037
+-0.762637
+-0.848792
+0.813918
+-0.842784
+-0.588551
+-0.400729
+0.679396
+-0.189057
+-0.088873
+-0.359632
+-0.442715
+-0.145031
+0.482130
+-0.120846
+0.675429
+0.552911
+0.729778
+-0.178680
+0.481915
+0.457040
+-0.157219
+0.261232
+-0.625042
+-0.958338
+-0.870120
+-0.055172
+-0.836609
+-0.967729
+0.166822
+0.337567
+-0.978765
+-0.860673
+-0.633008
+-0.174201
+0.246509
+0.580726
+0.833622
+-0.587388
+0.433999
+0.255361
+0.688272
+-0.644910
+0.177763
+-0.479444
+0.173893
+0.671847
+-0.539541
+-0.272180
+-0.789528
+-0.167647
+-0.807095
+-0.859058
+-0.218142
+-0.107242
+0.931655
+0.488766
+-0.818554
+-0.243744
+0.281026
+0.232019
+0.647194
+-0.829534
+0.808623
+-0.645611
+0.113558
+0.636276
+0.986192
+-0.386800
+-0.426407
+0.586317
+0.438633
+-0.316421
+0.432628
+0.251548
+0.113597
+0.111377
+0.479266
+-0.354587
+0.247181
+-0.803261
+-0.595049
+0.149319
+0.693335
+-0.430440
+0.175312
+1.012634
+-0.072555
+-0.285957
+-0.623152
+0.809723
+0.596817
+0.997913
+0.780048
+-0.548659
+-0.287033
+0.450977
+0.138619
+-0.690110
+-0.261438
+-0.837805
+-0.388903
+-0.594768
+0.348900
+-0.908266
+0.869372
+-0.985013
+-0.194688
+0.572545
+0.598460
+-0.629034
+0.363365
+0.919726
+-0.466257
+0.241549
+0.526983
+0.419784
+-0.389633
+0.249256
+-0.919065
+-0.016944
+0.872527
+-0.270635
+0.540875
+-0.793251
+-0.077730
+0.988636
+-0.677188
+0.733047
+-0.069964
+-0.155016
+-1.017375
+0.306985
+0.805364
+0.091722
+-0.859596
+-0.034128
+-0.152401
+0.866579
+0.811396
+-0.570549
+0.221674
+-0.533030
+0.571567
+0.751012
+0.169816
+0.010186
+-0.616730
+-0.455145
+0.375327
+1.050673
+-0.571199
+0.769920
+-0.173887
+0.379712
+0.435160
+-0.650733
+0.668734
+0.108860
+-0.396844
+-0.475026
+-0.512236
+0.657718
+0.947773
+-0.466872
+-0.569035
+-0.578910
+-0.110686
+-1.098581
+-0.671311
+-0.082750
+0.999859
+-0.163093
+-0.565005
+0.643892
+-0.801901
+0.425945
+-0.109542
+-0.197596
+0.913634
+-0.121190
+0.508602
+0.483914
+-0.169989
+0.848720
+0.342521
+0.474373
+-0.832980
+0.652856
+0.777785
+0.833865
+0.320037
+-0.364215
+0.894695
+0.316529
+0.791490
+-0.788321
+0.719587
+0.957199
+1.029637
+0.285972
+-0.200780
+-0.308335
+0.486296
+-0.810444
+0.616906
+-0.320073
+-0.788353
+-0.358160
+0.896801
+-0.819508
+0.773397
+0.293715
+0.580112
+0.784639
+-0.836531
+0.855348
+-0.361866
+-0.419027
+0.554579
+0.899239
+-0.384067
+0.688789
+0.712853
+0.773773
+0.440677
+0.837351
+-0.239494
+0.753477
+0.091841
+-0.876657
+-0.506313
+-0.491179
+-0.059636
+-0.072826
+-0.854253
+-0.615529
+-0.352654
+0.170707
+-0.356274
+-0.433713
+-0.764918
+-0.070292
+0.285538
+-0.507226
+-0.206006
+-0.585155
+-0.029017
+-0.638134
+-0.908664
+-0.522419
+1.006759
+-0.249241
+-0.923910
+-0.208859
+0.502905
+-0.357104
+-0.373713
+-0.911179
+-0.967465
+-0.304144
+-0.769914
+0.199562
+0.057666
+0.469477
+0.566358
+0.594690
+0.923502
+-0.761601
+-0.397843
+-0.618156
+-0.259004
+-0.257755
+0.796939
+-0.658260
+-0.747666
+-0.642605
+-0.236847
+-0.940482
+1.087564
+0.311733
+0.874420
+-0.013813
+0.035620
+-0.820791
+0.164029
+-0.804224
+0.794023
+0.659803
+-1.000782
+0.466564
+0.085311
+-0.668444
+-0.304129
+-0.564502
+0.549306
+0.763522
+-0.229256
+0.048183
+-0.607111
+-0.828013
+-0.319295
+0.838284
+-0.259524
+0.240884
+-0.159589
+0.627623
+0.609905
+-0.499523
+0.414316
+0.553462
+-0.802047
+0.292840
+-0.236072
+-0.297136
+0.475788
+0.239366
+0.010541
+0.991690
+-0.545634
+-0.647983
+-0.744729
+0.306596
+-0.365673
+-0.795912
+0.357633
+0.973383
+-0.234868
+-0.322406
+-0.755709
+-0.805750
+0.495678
+0.232789
+0.989301
+0.604885
+-0.024343
+0.124357
+-0.595916
+-0.384940
+0.246276
+-0.042076
+0.275472
+0.585935
+-0.812273
+0.509503
+0.556372
+-0.819636
+-0.868835
+-0.105007
+0.846780
+-0.083445
+0.756279
+-0.989183
+0.996308
+0.761174
+0.797065
+0.227467
+0.063025
+-0.682650
+-0.482443
+-0.275129
+-0.084242
+0.321581
+-0.655969
+0.294866
+-0.511996
+0.004230
+0.579476
+0.152354
+0.469655
+-0.720574
+-0.080824
+-0.261279
+0.320286
+-0.432061
+0.580116
+-0.309412
+-0.390993
+-0.726598
+-0.233892
+0.449052
+-0.080020
+-0.097164
+-0.803886
+-0.928823
+-0.941463
+-0.190250
+0.883224
+-0.911768
+0.050133
+0.816694
+-0.892277
+0.379126
+0.661086
+0.784836
+-0.385069
+0.220641
+-0.584192
+-0.977372
+-0.678748
+0.112777
+-0.411311
+-0.281943
+-0.680047
+0.790317
+-0.581447
+1.022210
+0.481319
+0.761571
+-0.428579
+0.011023
+-0.918685
+-0.924408
+-0.637095
+-0.600862
+-0.695890
+0.673667
+0.655819
+-0.602361
+0.105273
+-0.307128
+-0.630238
+0.575323
+0.536454
+0.499566
+0.219898
+-0.112718
+-0.282728
+0.334779
+-0.422181
+-0.709069
+-0.160789
+-0.429029
+-0.770638
+0.088232
+-0.420659
+-0.023042
+-0.375752
+0.501392
+-0.866865
+0.677717
+0.375934
+0.590494
+0.616667
+0.992734
+0.132502
+0.491076
+-0.768601
+0.835857
+0.496756
+-0.876952
+0.020088
+-0.701478
+-0.080273
+0.515872
+-0.634325
+-0.950254
+-0.072753
+0.051319
+-0.878636
+-0.485442
+0.786757
+-0.103970
+0.242341
+0.857680
+0.320582
+-0.380960
+0.909569
+-0.605798
+0.795917
+0.806190
+0.320120
+0.299120
+-0.923607
+-0.296013
+0.173439
+-0.845228
+-0.382572
+-0.843687
+-0.285625
+-0.205865
+-0.216486
+-0.182445
+-0.957368
+-0.977266
+0.411984
+-0.510643
+-0.263253
+0.259919
+0.874961
+-0.746094
+-0.665127
+0.482347
+-0.332752
+-0.425628
+0.991791
+-0.587306
+-0.442874
+-0.434126
+-0.692137
+-0.617814
+-0.307428
+-0.642164
+-0.212552
+0.697247
+0.273430
+-0.067022
+-0.111435
+0.276155
+0.798520
+-0.334518
+-0.718046
+-0.863519
+0.955394
+0.446583
+0.258706
+0.688026
+-0.803080
+0.079797
+-0.470900
+-0.099720
+-0.160343
+-0.164960
+-0.525917
+-0.683241
+-0.720015
+0.197856
+-0.250767
+0.221198
+0.969079
+0.273454
+0.513753
+-0.440888
+0.645238
+-0.293627
+-0.400193
+0.764507
+0.427669
+-0.670592
+-0.883600
+1.001272
+0.490697
+-0.351089
+0.496124
+0.281676
+0.506415
+0.065064
+-0.275729
+0.525473
+0.618361
+0.318822
+0.045882
+0.512919
+-0.371152
+-0.491497
+-0.032058
+-0.792802
+-0.206588
+0.491025
+0.258982
+0.072379
+0.177294
+-0.224293
+-0.018051
+-0.198762
+-0.310084
+-0.822806
+0.912085
+0.492603
+0.016285
+0.526619
+-0.161863
+-0.538435
+0.717678
+-0.430868
+0.864178
+0.171984
+-0.825005
+0.086231
+-0.602557
+0.847238
+0.468178
+0.508957
+0.558016
+-0.357318
+0.817374
+0.228976
+-0.770603
+-0.081412
+0.119651
+-0.490755
+-0.726985
+0.264563
+1.006519
+-0.577402
+0.456560
+0.031607
+-0.355458
+-0.718633
+-0.402416
+0.582907
+-0.252706
+-0.640190
+-0.479740
+0.745713
+-0.272222
+0.699918
+0.627506
+0.457943
+-0.033405
+0.764953
+0.257933
+0.769840
+0.078081
+0.716581
+-0.400401
+-0.149821
+0.502398
+-0.475460
+0.985301
+-0.424370
+-0.934700
+-0.308682
+-0.798021
+0.975303
+0.743399
+0.975611
+-0.237828
+-0.359940
+-0.489128
+0.747948
+-0.164621
+-0.098074
+-0.305836
+0.137852
+0.831806
+-0.014973
+-0.948338
+-0.224833
+0.329522
+-0.121881
+-0.474898
+-0.320145
+0.689345
+-0.871256
+-0.943554
+-0.915284
+0.236286
+-0.486850
+-1.072339
+0.736789
+0.524901
+-0.364290
+0.443878
+-0.021258
+0.501418
+-0.986530
+-0.191891
+0.970198
+0.086602
+0.827845
+0.488056
+0.720407
+0.648716
+-0.668346
+0.073307
+0.666720
+0.739282
+0.157619
+-0.943563
+-0.037671
+0.331361
+0.691978
+-0.407208
+-0.358308
+-0.083610
+-0.138245
+-0.542065
+0.454643
+-0.340802
+0.099228
+-0.107556
+0.964377
+0.368873
+-0.206232
+0.283529
+-0.460917
+-0.412450
+-0.364107
+-0.016748
+0.365109
+-0.238606
+-0.254066
+0.778081
+0.826934
+-0.660166
+0.363863
+-0.411738
+-0.655460
+0.941308
+0.684785
+-0.735413
+-0.069011
+-0.487872
+0.194620
+-0.263036
+-0.676886
+-0.156117
+0.160025
+-0.115479
+-0.762584
+0.426267
+0.072260
+-0.476994
+0.477081
+1.094592
+-0.136185
+0.181876
+0.663032
+-0.301145
+-0.982641
+0.629696
+-0.073226
+0.954408
+0.053296
+-0.343242
+-0.488380
+-0.402992
+0.870021
+-0.590133
+0.073146
+0.644665
+0.344689
+0.561344
+0.963729
+0.916759
+0.481326
+0.745995
+-0.213738
+-0.561127
+0.891407
+-0.585494
+-0.422214
+-0.454762
+-0.779996
+0.128594
+0.197179
+-0.915216
+-0.470610
+0.361058
+-0.229514
+0.137024
+-0.726684
+0.684076
+-0.109753
+0.322491
+0.554311
+0.718373
+0.779329
+0.729013
+-0.584469
+-0.209794
+0.813692
+-0.060799
+-0.155625
+0.699703
+-0.025879
+0.292855
+-0.497593
+0.637494
+-0.321241
+-0.495395
+-0.814356
+0.534635
+0.689086
+-0.194440
+0.653211
+0.589452
+-0.975287
+0.565515
+-0.661550
+0.851832
+-0.249765
+0.620494
+-0.616593
+0.161826
+-0.489216
+-0.881262
+0.522940
+-0.280714
+-0.245892
+-0.526369
+0.462097
+-0.089959
+0.945737
+-0.913450
+0.672268
+0.062725
+-0.547301
+-1.070345
+-0.335853
+0.799023
+-0.366539
+0.250846
+0.608526
+0.227629
+0.423060
+-0.373732
+-0.039562
+-0.079591
+0.934954
+0.625724
+0.920013
+0.447411
+-0.591208
+0.055935
+-0.330909
+-0.688087
+0.898049
+0.429357
+-0.039013
+0.757876
+0.452940
+0.501638
+-0.592064
+-0.608883
+-0.961884
+0.544461
+-0.959035
+-0.962655
+-0.730676
+-0.197451
+1.005498
+-0.145380
+0.142540
+0.542206
+-0.868295
+0.656858
+-0.122251
+-0.161656
+0.874213
+-0.526199
+-0.166576
+-0.098283
+0.049536
+-0.286458
+-0.699642
+-0.983671
+0.273788
+0.372400
+-0.549816
+0.290999
+0.104472
+0.214669
+0.397351
+0.794107
+-0.563436
+0.326496
+-0.344848
+-0.923880
+0.631091
+-0.607177
+0.095098
+0.505460
+0.171975
+-0.764448
+0.237703
+0.834228
+0.441659
+-0.402845
+0.850923
+0.457902
+0.859283
+-0.520768
+0.272805
+-0.582898
+-0.722214
+-0.422903
+-0.747418
+0.175595
+-0.673318
+0.779013
+-0.145608
+-0.433970
+-0.321125
+-0.554070
+0.963242
+-0.908183
+0.070727
+0.814540
+-0.010612
+-0.896047
+-0.053597
+-0.798536
+-0.235317
+0.955860
+0.456801
+0.013871
+-0.944056
+0.140658
+0.067862
+0.807531
+0.528275
+0.492922
+-0.787333
+0.133356
+0.790608
+0.625862
+-0.273559
+-0.219282
+0.656004
+0.089351
+-0.805867
+0.509539
+0.284715
+0.822935
+0.697593
+0.772167
+-0.692990
+-0.363444
+-0.943131
+-0.371722
+0.091385
+-0.225075
+0.517395
+-0.231331
+0.472103
+-0.428996
+-0.755808
+-0.987511
+0.101539
+0.228449
+0.879733
+0.636618
+-0.517145
+0.728643
+-0.176877
+0.869635
+-0.804717
+-0.788053
+-0.674734
+-0.097850
+-0.041860
+-0.401356
+-0.146660
+0.164968
+-0.424577
+-0.709673
+-0.449026
+0.399546
+0.285538
+-0.166922
+-0.840124
+0.099530
+0.239898
+0.171890
+0.900828
+-0.801534
+0.648720
+-0.596679
+-0.681735
+-0.216344
+0.496984
+-0.677285
+0.529538
+-0.238025
+-0.538859
+0.893334
+-0.060883
+0.851803
+-0.241039
+0.780343
+0.709084
+-0.247165
+-0.059499
+0.658639
+-0.676728
+-0.755614
+-0.675781
+0.479171
+-0.616622
+-0.531117
+0.168793
+-0.216601
+-0.293238
+0.555099
+-0.812959
+-0.455246
+-0.496367
+-0.151714
+-0.881583
+-0.440967
+0.372370
+0.561827
+0.946948
+0.451431
+0.380381
+-0.867659
+0.618860
+-0.847147
+0.100946
+-0.691879
+0.726507
+0.719838
+-0.349860
+0.894598
+0.611258
+-0.456656
+-0.769050
+0.615917
+0.922062
+-0.272874
+-0.371458
+0.783313
+0.585977
+-0.344645
+0.893995
+-0.557346
+-0.746056
+0.118996
+0.245959
+-0.459594
+0.159387
+0.226308
+0.574602
+0.679036
+0.091598
+-0.581789
+-0.642076
+-0.092585
+-0.535236
+-0.006775
+0.151489
+0.506043
+0.748326
+-0.631228
+-0.880239
+-0.829793
+-0.501753
+0.475607
+-0.447901
+-0.779746
+-0.786794
+0.650006
+-0.099615
+-0.157768
+0.517656
+0.432585
+-0.597051
+-0.225038
+0.469194
+-0.508947
+0.123615
+-0.366918
+0.429899
+-0.543482
+0.632581
+-0.515943
+-0.815791
+0.332280
+-0.716662
+0.935178
+0.395710
+-0.067040
+0.140829
+-0.516620
+0.409672
+-0.230818
+0.815894
+-0.495947
+-0.925163
+0.204326
+0.539290
+0.168905
+0.897411
+0.701383
+0.909719
+0.336520
+-0.544395
+0.258305
+-0.401953
+-0.124303
+-0.611169
+0.726952
+-0.139093
+0.888726
+-0.908033
+0.756178
+-0.743979
+0.126013
+-0.432794
+0.829341
+-0.529669
+-0.091906
+-0.511233
+-0.724548
+-0.960946
+-0.068027
+0.196233
+0.457877
+0.432479
+-0.999013
+0.420638
+0.556459
+-0.418262
+0.336710
+0.457613
+-0.214347
+-0.264657
+0.059701
+-0.842982
+0.702921
+-0.646807
+-0.616344
+0.802156
+0.506381
+0.162485
+0.040943
+0.485117
+-0.757083
+0.538637
+0.741106
+0.423073
+0.519513
+-0.449474
+-0.924256
+-0.745932
+0.996828
+0.031106
+0.981430
+0.808374
+0.511653
+-0.037139
+-0.588486
+-0.106786
+-0.101287
+-0.399485
+0.112558
+-0.345153
+0.147823
+-0.338937
+-0.459268
+-1.027795
+0.074284
+0.773609
+-0.436574
+0.334947
+-0.910862
+-0.010084
+-0.894982
+0.496066
+-0.293719
+0.282318
+-0.382119
+-1.019522
+0.170719
+0.925411
+0.050812
+0.257982
+-0.110183
+0.264566
+-0.070206
+0.042732
+0.281193
+0.586683
+0.892920
+-0.891877
+0.371405
+0.994676
+0.602832
+-0.768890
+0.060155
+-0.052842
+0.915079
+0.389576
+-0.212882
+-0.105886
+-0.936832
+0.042149
+-0.612935
+-0.123610
+0.812378
+-0.282595
+0.367144
+0.733148
+-0.230094
+0.006416
+0.655770
+-0.898439
+0.619497
+0.067487
+-0.082412
+-0.769072
+0.314495
+0.895543
+-0.042658
+1.015304
+-0.732448
+-0.902139
+-0.808265
+-0.913612
+0.677384
+0.371929
+-0.977814
+-0.946685
+-0.631194
+-0.188960
+0.004127
+-0.941152
+0.117556
+-0.417101
+-0.117159
+-0.307178
+0.844452
+0.443763
+-0.482078
+-0.238490
+0.462923
+-0.736787
+0.756312
+-0.735229
+-0.273500
+-0.450557
+0.941153
+-0.488844
+-0.793537
+0.463273
+0.548701
+-0.425361
+-0.779057
+-0.810250
+0.596277
+0.937125
+0.420322
+0.049089
+0.176639
+-0.300675
+-0.206318
+0.596058
+-0.348780
+-0.462423
+-0.147249
+0.784703
+0.361576
+0.968312
+0.286276
+-1.142415
+0.576028
+-0.030184
+0.949134
+0.315653
+0.003027
+-0.924018
+-0.065642
+0.071568
+0.866735
+-0.087458
+0.629062
+-0.437731
+-0.410312
+0.611868
+0.254573
+0.229526
+-0.905678
+-0.189839
+-0.289991
+-0.487339
+0.451076
+0.453380
+-0.584631
+-0.470164
+-0.178221
+0.331463
+-0.144916
+0.301886
+0.279667
+0.634595
+-0.862429
+0.694128
+-0.453464
+-0.112446
+-0.551183
+0.077759
+-0.701765
+-0.931105
+-0.228439
+0.053732
+-0.968595
+-0.292086
+0.012858
+0.497689
+-0.891860
+0.456681
+0.996143
+0.227334
+-0.210594
+-0.876821
+0.316530
+0.294816
+0.435498
+0.250364
+-0.235112
+-0.862089
+-0.974531
+0.729927
+-0.829481
+0.618143
+-0.568015
+0.393386
+-0.558288
+0.156995
+0.806740
+-0.238480
+-0.799533
+-0.873624
+-0.309294
+-0.868728
+0.186737
+0.321569
+-0.295666
+0.149035
+-0.304268
+-0.650219
+0.258987
+0.824792
+-0.112524
+0.690063
+0.046287
+-0.078652
+-0.275510
+-0.366657
+0.181135
+0.916502
+0.970286
+0.692099
+0.870066
+0.130808
+0.653554
+0.061879
+0.960709
+-0.265398
+-0.192969
+0.816217
+0.444119
+0.916207
+0.848865
+0.598646
+-0.802540
+-0.770643
+0.599228
+-0.177035
+0.471618
+0.362058
+-0.285712
+-0.554968
+-1.053124
+0.587824
+-0.881611
+-0.389492
+-0.843186
+-0.435030
+0.296460
+-0.210288
+0.182310
+0.139339
+0.226306
+-0.996219
+0.887384
+0.238355
+-0.038581
+0.665632
+-0.770775
+-0.649703
+-0.552190
+-0.295523
+0.040956
+-0.293260
+-0.388372
+-0.268769
+0.332730
+-0.796849
+0.293861
+-0.842399
+0.604787
+-0.705972
+-0.599456
+0.455792
+-0.707971
+-0.283398
+-0.042277
+0.322190
+0.389741
+0.156078
+0.189848
+0.940333
+-0.585314
+-0.095400
+-0.462592
+-0.499317
+-0.929340
+0.901541
+0.568231
+-0.877666
+0.296686
+-0.820009
+0.176149
+-0.915671
+-0.606165
+-0.387011
+0.215598
+-0.650789
+-0.869208
+0.258964
+0.742170
+-0.284997
+0.369337
+0.777740
+-0.847339
+0.253170
+0.633080
+-0.523969
+-0.753953
+-0.578977
+-0.331778
+-0.891563
+0.707525
+-0.116561
+-0.782969
+0.070981
+-0.705080
+0.965653
+-0.482570
+-0.132240
+-0.017905
+-0.248492
+0.148795
+0.834988
+-0.602155
+0.250986
+-0.231288
+-0.380639
+-0.383951
+0.897920
+0.806042
+0.217715
+-0.579980
+0.214046
+0.707973
+-0.738682
+-0.212789
+-0.198785
+-0.094195
+0.747927
+0.387160
+-0.842064
+-0.140249
+-0.497826
+-0.957064
+-0.223192
+-0.577946
+-0.612926
+0.176098
+0.089067
+-0.232069
+0.266515
+0.798876
+0.502027
+0.099753
+-0.879862
+0.127354
+-0.037100
+0.829822
+-0.408266
+0.177241
+-0.901846
+-0.568304
+-0.359390
+-0.011623
+-0.163666
+-0.706264
+-0.012879
+0.337916
+-0.656944
+-0.174067
+-0.236597
+0.552893
+0.071088
+0.802514
+-0.305732
+0.924456
+-0.774652
+0.018042
+0.721888
+-0.548899
+-0.682876
+0.307199
+0.315858
+0.653872
+0.791112
+0.811185
+0.393291
+0.522440
+-0.347218
+-0.525541
+-0.038265
+0.222758
+-0.300841
+0.141821
+0.073735
+-0.904810
+-0.758615
+-0.792791
+-0.359212
+1.008535
+0.599368
+0.297636
+0.180062
+0.833489
+0.242298
+-0.644029
+-0.351648
+0.951025
+-0.042296
+-0.676015
+0.648013
+-0.191735
+0.226444
+0.207612
+-0.387972
+0.219682
+0.461747
+-0.196886
+-0.031253
+-0.696239
+-0.908778
+-0.780246
+-0.274792
+0.067278
+0.931420
+-0.099089
+-0.634333
+0.410068
+-0.592269
+0.215786
+-0.897829
+-0.213444
+0.467231
+-0.847442
+0.195337
+0.184132
+-0.782819
+0.832555
+1.113547
+-0.417249
+0.443778
+0.039790
+-0.155448
+-0.790703
+0.768203
+-0.210869
+-0.526749
+0.056363
+0.938761
+0.767805
+0.214994
+-0.503254
+0.033427
+0.722369
+-0.476243
+0.767172
+-0.804862
+-0.933790
+0.552167
+0.024374
+0.827703
+0.096358
+-0.298307
+0.450281
+-0.792046
+0.672277
+0.420505
+0.715936
+-0.145636
+-0.808309
+-0.301109
+0.204733
+-0.303766
+-0.333015
+-0.272427
+0.822393
+0.869693
+-0.834570
+0.731682
+0.768776
+0.926294
+-0.834822
+0.275823
+0.702377
+-1.003134
+-0.412355
+0.121903
+0.080080
+-0.028506
+-0.570571
+0.635826
+0.555514
+0.581016
+-0.856628
+-1.009642
+0.742187
+-0.065009
+0.099980
+-0.630405
+0.633228
+-0.570763
+0.353897
+0.157328
+0.656128
+0.381883
+0.040227
+-0.369690
+0.504836
+0.815289
+-0.360853
+-0.898202
+0.665468
+0.129612
+0.275789
+-0.222809
+0.693821
+-0.141514
+0.262537
+0.703357
+-0.274445
+-0.146143
+-0.182619
+0.310648
+0.734517
+-0.264853
+0.866698
+0.962112
+-0.058523
+-0.564502
+-0.041316
+-0.662242
+0.657100
+-0.578950
+0.492361
+0.234956
+-0.337657
+0.599425
+0.149261
+0.798347
+0.220950
+-0.901909
+0.351505
+-0.815351
+-0.607795
+-0.852648
+-0.482426
+-0.307785
+0.805302
+0.365806
+0.868805
+0.732833
+0.415735
+0.691702
+-0.119141
+-0.284218
+-0.928440
+0.242304
+0.425421
+0.283565
+0.888042
+0.346523
+0.359218
+-0.823646
+-0.058892
+-0.314041
+0.599173
+0.442928
+-0.941082
+-0.314609
+0.868167
+0.048194
+0.069259
+-0.081811
+-0.429591
+-0.781634
+0.348265
+-0.664997
+-0.354339
+-0.145460
+0.164909
+0.409175
+-0.714130
+0.757122
+0.788617
+0.404016
+0.369411
+-0.969156
+-0.091281
+0.222513
+-0.526218
+0.501260
+-0.301356
+0.149147
+0.438120
+-0.634173
+-0.898952
+0.410627
+1.057976
+0.961467
+-0.308448
+-0.064796
+-0.350527
+-0.993399
+0.552494
+-0.673761
+0.738768
+-0.495830
+-0.118356
+-0.788926
+0.655224
+0.092464
+-0.582841
+0.782725
+0.229522
+-0.522019
+0.267158
+0.544372
+-0.062028
+-0.845200
+0.552070
+0.382778
+1.001001
+-0.723602
+0.472655
+-1.040516
+0.764013
+-0.446742
+-0.655514
+0.019440
+0.928814
+-0.287597
+0.130995
+0.716969
+0.721288
+-0.329996
+-0.127338
+-0.486872
+0.583746
+-0.399055
+-0.588182
+0.667080
+-0.981320
+1.013083
+0.487864
+-0.025763
+-0.560018
+-0.608085
+-0.489346
+-0.026291
+-0.758533
+-0.091426
+0.011718
+-0.767627
+0.739160
+0.886357
+-0.288471
+0.355553
+0.623851
+-0.879843
+0.930486
+0.529893
+0.825050
+0.174150
+0.358122
+0.823090
+-0.202545
+0.919510
+-0.901826
+-0.840747
+0.480269
+-0.802353
+0.515480
+-0.689972
+0.740211
+0.030051
+-0.489197
+-0.802118
+0.092331
+0.904641
+0.553352
+0.731841
+0.962812
+0.802725
+-0.669897
+0.737661
+0.883261
+0.811701
+-0.475279
+0.050456
+-0.393568
+0.660361
+1.032984
+-0.831402
+0.439958
+0.424765
+0.473154
+0.323874
+-0.662996
+0.073934
+0.453525
+0.589143
+-0.581467
+-0.915700
+0.843872
+-0.177139
+-0.952338
+-0.628674
+-0.669403
+-0.339509
+0.267022
+-0.636932
+-0.088628
+-0.287979
+0.470810
+-0.742432
+-0.701333
+-0.260784
+0.144298
+-0.910025
+0.641905
+-0.613215
+0.672793
+0.285751
+0.596862
+-0.609486
+-0.697275
+0.479551
+-0.601908
+0.577899
+-0.675117
+0.639907
+-0.293628
+0.367925
+-0.197932
+0.974113
+0.384291
+0.140855
+0.421573
+0.476634
+0.605630
+-0.149476
+-0.605227
+-0.108665
+0.007086
+-0.211300
+0.778153
+-0.176536
+-0.532155
+0.534459
+-0.596071
+0.346780
+-0.079540
+-0.591340
+-0.349254
+0.873435
+-0.167296
+0.358530
+-0.198037
+-0.248941
+0.002199
+-0.985583
+0.797443
+0.094029
+0.817771
+-0.162176
+-1.079651
+-0.871239
+-0.416765
+0.808408
+-0.322839
+0.089411
+-0.557536
+-0.917078
+-0.553328
+0.919540
+-0.923824
+0.730741
+0.889102
+0.482055
+-0.606572
+0.479996
+-0.541495
+-0.300851
+0.324386
+0.839686
+-0.150442
+-0.370922
+0.558842
+-0.391422
+0.755237
+-0.976560
+-0.305510
+-0.550379
+0.954120
+-0.458847
+0.494970
+0.171656
+0.335349
+-0.985903
+0.577897
+0.161202
+0.684396
+-0.781737
+-0.679947
+0.702491
+-0.842212
+0.591510
+-0.660744
+0.757674
+-0.949011
+0.691529
+0.440769
+0.759753
+0.570337
+-0.165658
+-0.713703
+0.067815
+-0.692317
+-0.417955
+-0.333669
+-0.317440
+-0.076325
+0.809466
+-0.111902
+0.626774
+-0.680558
+-0.193575
+0.695652
+0.630873
+0.274209
+0.633264
+-0.530846
+-0.563855
+0.669007
+0.276050
+-0.177390
+0.928339
+0.448119
+-0.344149
+0.501113
+0.520703
+-0.180611
+0.122217
+-0.449640
+0.479735
+0.167932
+0.443663
+0.951933
+-0.677778
+0.837905
+-0.166587
+0.641345
+-1.004274
+0.443600
+0.026887
+0.980121
+-0.204399
+0.300884
+-0.087757
+0.364275
+0.264071
+-0.977850
+-0.155095
+-0.239998
+0.481302
+-0.136756
+-0.461018
+0.257996
+0.068509
+0.748212
+0.239298
+0.688724
+0.939883
+0.126466
+0.293954
+0.701044
+-0.352876
+0.737465
+-0.631576
+-0.946102
+-0.360374
+0.749120
+-0.665263
+0.532527
+0.400255
+0.487960
+-0.354323
+0.508607
+-0.667526
+0.713215
+-0.918870
+-0.538027
+0.266189
+0.149080
+0.082513
+-0.729145
+0.276395
+0.773093
+-0.954209
+0.264789
+0.752631
+0.494627
+-0.332374
+0.316142
+0.675700
+-0.878181
+-0.008342
+-0.339741
+-0.720661
+0.387103
+-0.442760
+-0.968894
+0.463284
+-0.317168
+-0.101849
+0.231179
+0.496972
+0.601973
+0.976812
+0.345087
+-0.043978
+0.600511
+-0.321505
+-0.327684
+-0.883021
+-0.063319
+-0.497814
+-0.439771
+0.730115
+0.851650
+0.332989
+0.823948
+0.463782
+-0.301059
+0.253361
+-0.661996
+0.372178
+-0.372511
+-0.433781
+-0.086682
+-0.709150
+0.683173
+-0.585175
+-0.547681
+-0.424658
+-0.346249
+-0.208771
+0.745691
+-0.813108
+-0.912100
+-0.938419
+0.506005
+-0.201220
+0.386801
+-0.214690
+0.871841
+-0.774645
+0.526170
+-0.281666
+0.784915
+0.745631
+0.557634
+-0.749473
+0.202485
+0.473921
+-0.567100
+0.830654
+-0.909049
+0.444753
+-0.922849
+0.596847
+-0.986468
+-0.871475
+-0.646291
+0.680882
+-0.440138
+-0.683416
+0.714153
+0.920659
+-0.515670
+0.503420
+0.063408
+0.794156
+-0.714876
+-0.898465
+-0.051773
+0.213184
+-1.111278
+-0.113471
+0.277522
+-0.651798
+0.440993
+-0.312793
+-0.780573
+0.519959
+0.164011
+-0.711997
+0.901437
+-0.899640
+0.169204
+0.657887
+-0.584927
+-0.105702
+0.750089
+-0.748100
+-0.947161
+-0.704692
+0.501844
+-0.035691
+0.878730
+0.967938
+0.790525
+0.677260
+-0.725688
+-0.786726
+-0.057524
+0.529944
+-0.761014
+0.962348
+0.226352
+0.784124
+-0.589359
+-0.192868
+0.279859
+-0.652180
+0.614653
+0.603694
+-0.193781
+0.878188
+-0.543777
+-0.384638
+0.909878
+-0.443653
+-0.409834
+-0.040205
+-0.693077
+0.062370
+0.254440
+0.588271
+-0.655192
+0.751240
+-0.440941
+0.963139
+0.337768
+-0.274732
+0.042683
+0.724889
+-0.108161
+0.495234
+0.970344
+-0.626633
+0.781500
+-0.783690
+-0.307750
+0.513922
+0.581315
+0.843701
+0.788914
+0.813539
+-0.437396
+0.786827
+-0.390639
+0.320139
+0.840396
+-0.141932
+0.228922
+-0.063137
+0.067442
+0.448600
+-0.543307
+-0.256413
+0.722422
+0.043931
+0.189653
+0.197134
+0.894253
+-0.597306
+0.461472
+-0.148091
+0.368778
+-0.047737
+-1.072933
+-0.978035
+0.640640
+-0.302916
+-0.815986
+-0.393961
+0.344288
+0.097865
+-0.805179
+-0.189841
+0.396332
+0.001401
+-0.820490
+0.108323
+0.265089
+-0.013498
+-0.916321
+-0.832514
+0.972034
+0.720718
+-0.625695
+0.878338
+-0.732298
+-0.320135
+-0.530322
+-0.609186
+0.181581
+-0.996015
+-0.171189
+-0.215877
+0.581309
+-0.431958
+0.966761
+-0.785605
+0.610013
+-0.669705
+0.858924
+0.653783
+-0.282103
+0.747953
+-0.084938
+-0.772350
+0.015011
+0.757710
+-0.354054
+-0.571375
+-0.373559
+0.388660
+0.706265
+-0.863725
+-0.257516
+-0.899500
+-0.223662
+0.729228
+-0.565702
+0.021166
+0.795708
+0.022736
+-0.943600
+0.439931
+-0.208368
+0.582771
+0.788264
+-0.764214
+-0.986522
+0.864772
+0.606967
+0.562738
+0.021207
+0.507974
+-0.186502
+0.798518
+0.911842
+0.659282
+-0.665417
+0.953077
+-0.017766
+0.692712
+-0.809430
+0.543716
+-0.976027
+-0.233066
+0.722962
+0.183319
+0.887791
+-0.174607
+-0.238719
+-0.627869
+-0.614207
+0.432210
+0.588442
+-0.241047
+-0.823647
+0.029533
+0.009265
+0.106019
+0.031807
+0.343558
+-0.262870
+0.044384
+0.354029
+-0.183651
+0.226301
+0.094266
+0.579136
+-0.309426
+-0.106445
+0.522375
+0.959698
+-0.635944
+-0.478297
+0.370388
+0.023209
+0.792850
+-0.342545
+-0.224755
+-0.863317
+0.246884
+0.749536
+-0.175894
+-0.071194
+0.722084
+0.747217
+-0.031316
+-0.016970
+-0.977141
+0.443805
+-0.911566
+0.894199
+-0.470365
+-0.497831
+-0.152924
+0.276141
+-0.355461
+-0.233614
+-0.169249
+0.580281
+0.638401
+-0.692778
+-0.359125
+0.040419
+-0.100607
+-0.908439
+-0.663421
+-0.938760
+0.857835
+-0.207528
+-0.689307
+0.881926
+-0.554913
+0.999306
+-0.223132
+0.772347
+-0.345441
+-0.110717
+0.273162
+-0.690594
+-0.209448
+0.687974
+0.314454
+-0.077380
+0.355780
+0.050626
+-0.433584
+-0.490800
+0.378188
+0.079476
+-0.426211
+0.941050
+0.217205
+-0.723054
+-0.509043
+-0.378844
+-0.564492
+0.349339
+0.410329
+0.859103
+-0.245287
+-0.599442
+-0.898466
+0.564952
+-0.314101
+0.831141
+-0.941812
+-0.013503
+0.657432
+0.927824
+0.457859
+0.651521
+-0.118923
+0.489590
+0.308599
+-0.913248
+0.692629
+0.420830
+0.488882
+-0.765530
+-0.722042
+0.714043
+-0.910591
+-0.675845
+0.798899
+0.387311
+-1.014855
+0.242065
+-0.345862
+0.863603
+0.298816
+-0.386093
+0.662382
+0.673762
+-0.403058
+-0.685263
+-0.489474
+-0.093340
+-0.003261
+0.390890
+0.495289
+0.250404
+0.272530
+-0.627536
+-0.704588
+0.965791
+-0.075224
+0.864514
+0.812832
+0.984970
+0.630507
+-0.864069
+0.123244
+-0.512878
+-1.098286
+0.183565
+-0.586571
+-0.915041
+-0.861693
+-0.338911
+-0.335026
+-0.649483
+-0.565774
+0.107828
+-0.663659
+-0.807540
+0.136277
+-0.322594
+0.193941
+0.493800
+-0.317817
+-0.800434
+0.075438
+-0.533876
+0.387650
+-0.998659
+-0.039906
+0.266008
+-0.324650
+0.658613
+-0.962908
+0.858731
+-0.032351
+0.459715
+-0.572222
+-0.647286
+-0.036171
+0.533539
+0.480632
+-0.480036
+-0.603592
+-0.768723
+0.371452
+0.662722
+0.392859
+0.763203
+-0.405681
+0.437527
+0.963359
+-0.114665
+-0.204298
+-0.976819
+0.201080
+-0.155114
+0.080962
+0.464409
+0.339816
+-0.502231
+-0.556616
+0.628185
+-0.066674
+0.575417
+-0.257567
+0.386743
+0.694381
+0.438716
+0.185452
+-0.731361
+0.343941
+-0.164457
+0.614194
+-0.553989
+-0.121228
+0.416499
+0.571204
+0.472670
+0.001460
+-0.294881
+-0.960174
+0.535649
+-0.863177
+-0.242909
+0.332937
+0.139616
+-0.057949
+0.417184
+0.535776
+-0.702630
+-0.445647
+0.673648
+-0.288277
+-0.138678
+0.797313
+0.412498
+0.645011
+0.904712
+0.950227
+-0.000235
+0.036657
+-0.692504
+0.512560
+-0.878232
+-0.723396
+0.719209
+-0.863023
+0.264215
+0.781320
+0.903818
+0.976525
+0.898498
+-0.325819
+-0.477970
+0.917036
+-0.528460
+0.523645
+-0.385864
+0.535262
+0.791118
+-0.279179
+0.674253
+-0.135548
+-0.025989
+-0.227906
+-0.795075
+0.423900
+0.807785
+0.177213
+0.945152
+0.353900
+-0.235200
+-0.407053
+0.611773
+-0.515579
+-0.171016
+0.298643
+-0.811854
+0.800550
+-0.611688
+-0.066727
+-0.840329
+-0.986123
+-0.629866
+-0.629045
+0.563602
+-0.591334
+0.299976
+0.401456
+0.502341
+0.955262
+-0.073388
+-0.007311
+-0.057956
+0.093998
+0.057421
+0.843955
+-0.895583
+-0.171089
+-0.330201
+0.928768
+-0.548833
+-0.962555
+-0.441538
+-0.164027
+0.066099
+0.302555
+0.059438
+-0.046200
+1.070208
+0.226862
+0.028402
+0.791370
+-0.186609
+-0.022895
+-0.010916
+0.058669
+-0.648742
+-0.262104
+0.679482
+0.552760
+-0.221027
+0.687900
+-0.141962
+-0.446097
+0.926637
+-0.440046
+-0.761296
+-0.864563
+-0.893803
+0.589205
+0.592358
+0.704195
+-0.636592
+-0.174284
+-0.982038
+-0.833157
+-0.426733
+-0.751897
+-0.156243
+0.450665
+-0.118323
+0.173815
+0.858238
+0.984311
+0.818219
+-0.534853
+-0.242451
+-0.611331
+-0.081585
+-0.300039
+0.429768
+-0.131542
+-0.700053
+0.942556
+0.309308
+-0.014556
+-0.287530
+0.115730
+0.439698
+-0.827299
+0.492605
+0.171419
+-0.307943
+-0.569334
+-0.577580
+-0.226634
+-0.714523
+-0.255919
+-0.473503
+0.549001
+-0.629445
+-0.175158
+-0.724839
+-0.547992
+-0.736317
+0.764551
+-0.748432
+-0.079205
+-0.236810
+-0.066301
+-0.330969
+-0.262109
+0.583042
+-0.106885
+-0.162048
+0.471087
+-0.479114
+-0.912870
+0.324113
+-0.916538
+-0.287684
+-0.468441
+-0.190673
+0.689104
+0.204066
+-0.727608
+0.779233
+0.723604
+-0.331719
+0.261505
+-0.868321
+0.979668
+0.074862
+0.708770
+-0.906904
+0.016959
+0.439984
+0.553032
+0.020705
+0.140309
+0.606490
+0.562209
+-0.067280
+0.678995
+0.302535
+-0.075155
+0.459999
+-0.421965
+-0.557726
+-0.688941
+-0.772372
+0.362143
+0.878084
+0.022098
+0.195936
+0.370099
+-0.844153
+0.068493
+-0.106577
+0.320308
+0.292690
+0.226169
+-0.924958
+0.454876
+0.698379
+0.113163
+0.738663
+-0.271544
+0.529936
+0.920047
+0.096590
+0.538035
+-0.898246
+-0.030341
+0.047348
+-0.876599
+0.046647
+-0.477521
+-0.708971
+-0.873964
+0.404829
+0.144694
+0.099608
+0.802320
+-0.516887
+0.808167
+-0.195183
+0.434119
+0.954775
+-0.461230
+0.420684
+0.749885
+0.342985
+0.397926
+0.695893
+-0.769988
+-0.468797
+0.485365
+-0.601544
+0.207886
+0.520940
+-0.062196
+1.045626
+-0.106152
+0.510937
+0.784966
+-0.769754
+-0.577840
+-0.072826
+-0.582232
+0.447597
+0.069537
+0.762920
+0.857993
+-0.831891
+0.680682
+-0.817689
+-0.858029
+0.415316
+-0.333647
+0.260624
+0.787555
+0.232960
+0.339044
+-0.193138
+0.356277
+0.813975
+-0.157547
+0.509360
+-0.400180
+-0.389408
+0.023793
+-0.912440
+0.857484
+-0.816933
+0.494965
+0.152934
+-0.120530
+-0.315467
+0.285395
+-0.735191
+0.727981
+0.558949
+0.099467
+0.556915
+0.180915
+-0.359037
+-0.097363
+-0.086091
+-0.825400
+0.259339
+-0.118316
+-0.549395
+-0.311955
+-0.918268
+0.540684
+-0.358285
+0.680553
+-0.472210
+-0.133914
+-0.527950
+0.104952
+0.702875
+0.482836
+0.505455
+0.193572
+0.590937
+0.250665
+0.301224
+-0.670600
+-0.389132
+0.713400
+0.066129
+0.291516
+-0.649103
+-0.152196
+0.554811
+-0.212829
+0.713972
+0.112792
+0.706938
+-0.474887
+0.491080
+0.276472
+0.614703
+-0.947925
+0.994630
+-0.466510
+-0.090383
+-0.543566
+0.817071
+0.200508
+0.752466
+0.634654
+-0.394584
+-0.713260
+-0.698951
+0.725273
+-0.719851
+0.321976
+0.481855
+-0.341244
+0.119761
+0.410598
+0.491199
+-0.194471
+-0.747027
+-0.240256
+0.170757
+-0.477790
+-0.044791
+-0.887826
+0.317330
+0.711541
+0.490935
+0.926904
+0.438765
+0.081611
+-0.474171
+0.596535
+0.402280
+-0.632199
+-0.541090
+0.858959
+0.163873
+0.070809
+-0.856442
+-0.643466
+0.357814
+-0.070386
+0.905102
+-0.430122
+-0.358165
+0.547680
+0.646461
+0.886609
+0.806667
+0.097388
+-0.287353
+0.726880
+0.701677
+-0.769664
+-0.097969
+-0.629210
+0.640670
+-0.823064
+-0.627984
+-0.875047
+-0.849860
+0.762295
+0.428213
+-0.691531
+0.290906
+0.159940
+0.067555
+-0.820772
+-0.788845
+0.349323
+-0.416544
+-0.705193
+-0.475992
+0.306101
+-1.027350
+0.608678
+-0.145801
+0.440688
+-0.216307
+-0.514633
+0.843443
+0.228886
+-0.140652
+1.011003
+0.755540
+-0.931164
+0.215902
+-0.873787
+0.571815
+0.304719
+0.381169
+0.634350
+-0.122705
+0.006837
+-0.197375
+-0.906698
+0.438063
+0.108321
+0.600665
+0.158822
+-0.939248
+0.246664
+0.526758
+-0.055599
+-0.107443
+-0.488369
+0.881287
+0.830615
+0.700731
+0.308731
+0.622728
+-1.022131
+0.294526
+0.012350
+-0.761178
+0.907007
+-0.745352
+-0.101979
+-0.435383
+0.642551
+-0.316583
+0.534723
+-0.879972
+0.332387
+-0.807274
+-0.100156
+0.418283
+-0.783145
+-0.985186
+0.115752
+-0.646410
+0.596145
+-0.886454
+0.343881
+-0.954636
+0.875568
+-0.588285
+0.827350
+0.810889
+0.150430
+-0.990194
+0.357003
+-0.771181
+0.718292
+0.739628
+-0.334408
+-0.783928
+-0.653172
+0.939801
+-0.210239
+0.863152
+0.150350
+0.193942
+0.204434
+-0.254018
+-0.187948
+-0.721488
+0.311451
+0.737904
+-0.801992
+-0.978485
+0.025132
+-0.614479
+-0.106007
+0.529553
+-0.923567
+0.021093
+0.475922
+-0.122565
+0.123051
+-0.450069
+-0.730192
+0.883649
+0.856338
+0.471718
+-0.509198
+-0.180908
+0.018438
+-0.185635
+-0.042563
+-0.338748
+0.770056
+0.922280
+0.650782
+-0.048519
+0.764516
+-0.947543
+0.293987
+-0.477146
+-0.054693
+-0.308800
+-0.973677
+-0.733850
+-0.771543
+-0.205143
+0.504936
+-0.257310
+-0.514480
+0.216321
+-0.080459
+0.657650
+-0.220157
+0.356207
+0.484220
+-0.634147
+-0.098203
+0.847036
+-1.089155
+-0.123266
+-0.078036
+-0.895063
+-0.710498
+0.009094
+0.187297
+-0.279438
+-0.677795
+0.334902
+-0.630698
+0.322193
+-0.254173
+-0.728410
+0.464687
+-0.579324
+-0.035876
+0.856087
+-0.330049
+-0.413564
+-1.029613
+-0.174011
+-0.073003
+0.143011
+0.701876
+0.316794
+-0.883871
+0.796405
+0.856154
+0.202829
+0.383748
+0.438972
+0.596131
+0.760008
+0.005660
+-0.167995
+0.286082
+-0.419733
+-0.827489
+-0.827003
+0.843623
+-0.863505
+0.159034
+0.848277
+-0.532660
+0.774413
+0.515682
+0.220976
+0.016769
+0.761610
+-0.145939
+-0.188759
+0.673658
+-0.341705
+-0.519530
+0.825261
+-0.122617
+0.450587
+0.524090
+0.677724
+-0.760328
+0.238591
+0.237411
+-0.675393
+0.992417
+0.103010
+-0.495547
+0.744927
+-0.668656
+-0.737599
+0.629300
+-0.142316
+-0.147209
+0.755900
+0.881880
+-0.383346
+-0.156862
+-0.602534
+0.580673
+0.611249
+-0.050584
+-0.800535
+0.835680
+-0.694742
+-0.391524
+0.469293
+0.695402
+0.489377
+0.535197
+-0.150446
+0.953761
+0.457438
+0.759874
+-0.408284
+-0.120600
+-0.714243
+0.386663
+0.746742
+-0.587275
+-0.223713
+0.384858
+0.520680
+-0.586712
+0.337405
+0.362744
+-0.432387
+0.192631
+-0.844336
+-0.587522
+0.692799
+-0.451231
+0.540130
+-0.434648
+-0.718579
+-0.155385
+0.183994
+0.931908
+0.850021
+-0.553644
+-0.691056
+0.385544
+0.508901
+-0.487539
+-0.154641
+0.830052
+0.931210
+0.180762
+0.915183
+-0.581456
+0.342393
+-0.555527
+0.663643
+0.956672
+-0.738549
+0.323621
+-0.806377
+0.254945
+-0.632759
+-0.774130
+0.960140
+0.647568
+-0.079036
+-0.287513
+0.448298
+0.175995
+0.489240
+-1.117248
+-0.619348
+0.991338
+0.982179
+0.502929
+-0.109331
+0.796201
+-0.191603
+-0.460226
+0.029513
+-0.169585
+0.596497
+0.913575
+-0.756838
+-0.431781
+-0.902212
+0.003059
+0.063921
+0.061184
+0.416326
+0.625026
+-0.608800
+-1.135113
+-0.000788
+-0.395466
+0.897160
+-0.306761
+0.451813
+0.000319
+0.021734
+-0.791982
+-0.964699
+0.653777
+0.123131
+-0.425850
+0.647598
+-0.377835
+-0.747800
+0.814232
+0.399198
+-0.494616
+0.876584
+-0.356970
+-0.943959
+0.344081
+-0.510566
+-0.345615
+-0.854885
+0.501596
+-0.578918
+0.614048
+0.168607
+0.761368
+0.580731
+0.342307
+-0.026175
+0.010315
+0.275876
+-0.359891
+0.012322
+0.684734
+-0.408519
+0.495839
+-0.610101
+0.369832
+0.892270
+0.020564
+-0.762896
+0.259073
+-0.761729
+-0.387583
+0.121320
+0.101623
+-0.607392
+-0.761693
+0.785450
+0.767739
+-0.521029
+-0.800727
+-0.506624
+-0.003388
+0.688826
+-0.050473
+-0.836118
+-0.749461
+-0.216516
+0.788198
+-0.682914
+-0.602927
+-0.715132
+0.413006
+-0.047276
+-0.541336
+0.179782
+-0.334473
+0.618877
+-0.734982
+0.738737
+-0.534185
+-0.825050
+0.608053
+0.764415
+-0.751759
+-0.211262
+-0.829961
+-0.657754
+0.779117
+-0.008497
+0.126520
+0.318085
+-0.212416
+0.770267
+0.323212
+-0.716192
+0.214677
+0.000683
+0.916792
+-0.753388
+-0.663072
+-0.637312
+0.105225
+-0.645684
+0.020454
+0.797232
+0.018342
+0.361644
+-0.826389
+-0.702753
+0.847746
+-0.978648
+-0.266641
+0.038955
+0.378779
+0.709314
+-0.693100
+0.655759
+-0.469819
+0.004253
+0.355605
+-0.104707
+-0.357358
+-0.833542
+-0.562145
+0.605050
+0.370323
+-0.324637
+-0.930535
+0.254836
+-0.602132
+-0.625907
+0.101598
+0.916662
+0.735107
+-0.656024
+-0.103607
+0.364880
+-0.759722
+-0.922193
+0.735605
+-0.584705
+-0.784558
+-0.066602
+-0.487709
+-0.965327
+-0.827751
+0.457939
+0.826976
+-0.262943
+-0.002784
+-0.292455
+-0.850244
+-0.045411
+0.305200
+0.023660
+-0.969811
+-0.380310
+-0.032874
+-0.088822
+-0.822830
+-0.885341
+0.535122
+-0.855997
+0.264478
+-0.847271
+0.366418
+0.308370
+0.029152
+0.206097
+-0.308528
+0.254935
+0.001679
+-0.459660
+-0.124538
+0.990807
+-0.610828
+-0.942376
+-0.258038
+0.682926
+-0.502913
+-0.624761
+-0.650642
+-0.255012
+0.746293
+-0.304463
+-0.165684
+0.020802
+-0.318938
+0.972025
+-0.760808
+0.180803
+0.797845
+0.659849
+-0.353998
+-0.987094
+-0.796301
+-0.137709
+-0.854988
+0.603044
+-0.316687
+0.829961
+0.138288
+0.485632
+0.848548
+-0.564946
+0.114134
+0.597390
+0.802937
+-0.625665
+-0.476855
+-0.898382
+-0.267027
+-0.869180
+0.018136
+0.035491
+0.293927
+-0.690935
+-0.872451
+-0.273887
+0.072283
+-0.616925
+0.533167
+0.313287
+-0.721951
+-0.674872
+-0.269027
+0.253374
+0.706824
+-0.308485
+0.378880
+0.686657
+0.569234
+-0.616757
+0.398382
+0.021278
+-0.042402
+-0.575492
+-0.799526
+-0.369708
+0.554157
+0.637545
+-0.106973
+-0.818528
+0.695047
+0.504374
+-0.294405
+-0.964670
+-0.065351
+-0.258455
+0.132155
+-0.879352
+0.909269
+0.063739
+-0.057177
+0.518955
+0.286474
+-0.797524
+0.224144
+-0.911953
+0.516791
+0.723610
+-0.952101
+-0.293717
+0.272016
+-0.339620
+0.898886
+0.460539
+0.786672
+-0.636445
+0.379928
+0.061737
+-0.697839
+0.824153
+0.086169
+-0.153227
+-0.765739
+-0.293436
+0.797304
+-0.756946
+0.338150
+0.825761
+0.685843
+-0.175941
+-0.789291
+0.550829
+0.812241
+-1.093781
+-0.096673
+0.644067
+-0.197742
+0.479481
+0.700845
+-0.430472
+-0.854477
+0.211832
+0.680420
+0.388634
+-0.610285
+0.148522
+0.405592
+0.452917
+0.799924
+-0.528742
+0.077802
+-0.660351
+0.625900
+0.846313
+-0.209835
+-0.555468
+0.921417
+0.506740
+-0.511492
+0.819245
+-0.603631
+-0.151302
+-0.037590
+0.688706
+-0.014492
+0.128566
+-0.233843
+-0.933172
+0.420438
+0.317263
+-0.384697
+-0.010158
+0.116227
+0.874365
+-0.081187
+0.758706
+0.451601
+0.149880
+0.952052
+-0.162911
+-0.630368
+0.284634
+0.133880
+0.383147
+0.118500
+-0.942535
+0.549659
+0.643076
+0.791397
+-0.038245
+0.919423
+0.873007
+-0.816489
+-0.828396
+-0.903038
+-0.539175
+0.006266
+0.606477
+-0.003833
+0.474065
+-0.868087
+0.019166
+0.555872
+0.075210
+-0.558629
+-0.733017
+0.050062
+0.052819
+-1.047199
+0.750016
+-0.030778
+-0.478038
+-0.531472
+0.323309
+-0.188839
+0.492094
+-0.776983
+-0.246119
+0.556742
+-0.532850
+1.009433
+-0.055334
+-0.698974
+-0.545856
+-0.941373
+0.609546
+-0.094208
+0.042726
+0.369980
+-0.888342
+-0.351487
+0.704684
+0.267391
+0.564357
+0.709300
+-0.083942
+-0.782002
+-0.164919
+0.349291
+0.623352
+0.740183
+0.917623
+0.145837
+-0.079741
+0.212029
+-0.120490
+-0.584036
+0.224025
+-0.795919
+-0.251479
+-0.812972
+-0.173479
+-0.792879
+0.227443
+0.457772
+0.097576
+0.989728
+-0.899490
+0.356053
+-0.614874
+0.189247
+-0.649758
+0.670323
+-0.360344
+-0.107702
+0.072810
+0.870163
+0.268259
+0.482039
+0.112189
+-0.444306
+0.776810
+0.551884
+0.096119
+0.577307
+0.870147
+-0.894082
+-0.729020
+-0.970667
+0.948301
+0.225953
+-0.086201
+-0.374435
+-0.941457
+0.739339
+0.081317
+-0.493802
+-0.716678
+0.363238
+-0.481461
+0.297722
+0.533501
+1.045685
+0.428026
+0.059588
+-0.287504
+-0.355548
+-0.005895
+-0.698657
+0.475740
+-0.776018
+-0.772688
+-0.172991
+-0.615809
+0.076274
+0.631308
+-0.248308
+-0.046279
+-0.829847
+0.658113
+-0.683791
+0.389710
+0.331692
+-0.364225
+0.725414
+0.007242
+0.074314
+0.505420
+-0.352132
+0.099322
+-0.272145
+-1.015411
+0.040339
+-0.754415
+0.920210
+-0.852168
+0.794130
+0.224275
+-0.089874
+-0.144565
+0.456102
+-0.746751
+-0.285564
+-0.752193
+1.023313
+0.681023
+-0.620858
+0.435006
+0.382982
+0.648399
+0.880312
+0.177484
+-0.949781
+-0.201330
+-0.077826
+0.391255
+0.075179
+-0.148783
+-0.065059
+-0.758235
+-0.733514
+0.556032
+-0.945404
+-0.485458
+-0.344054
+0.722741
+0.020187
+-0.581926
+-0.508882
+-0.362545
+0.712626
+-0.542706
+0.440155
+0.737850
+-0.854333
+0.687537
+0.709211
+0.835709
+0.648245
+0.852409
+0.054313
+0.544102
+-0.936420
+0.782530
+-0.382386
+0.471061
+-0.721445
+0.360475
+-0.119017
+0.272517
+0.906089
+-0.375268
+0.705859
+0.780878
+-0.525207
+0.953735
+-0.915449
+0.059798
+0.163226
+-0.653722
+0.664951
+-0.787800
+-0.621208
+-0.298172
+0.628749
+-0.210573
+-0.928049
+-0.896708
+0.018241
+-0.851008
+-0.160874
+-0.262706
+0.704428
+-0.921547
+-0.756768
+0.257855
+-0.618140
+-0.423535
+0.941700
+-0.059987
+-0.303819
+0.149581
+0.710778
+0.831994
+-0.711383
+0.777821
+-0.711303
+0.907320
+-0.668380
+-0.411201
+0.709471
+-0.458215
+-0.493042
+-0.920067
+0.430592
+-0.183259
+-0.110331
+0.759524
+0.010984
+0.878285
+0.381436
+0.179767
+-0.643229
+-0.085587
+0.816336
+-0.641682
+0.791284
+0.439042
+-0.912877
+0.506134
+0.384788
+0.428192
+-0.195289
+0.161139
+-0.728714
+0.184212
+0.684549
+-0.095766
+0.410416
+-0.206721
+-0.707091
+0.142734
+-0.365037
+0.233502
+0.261980
+0.169585
+-0.830236
+-0.861243
+0.494033
+0.516146
+0.008293
+-0.529128
+0.258217
+-0.711927
+-0.598154
+0.962691
+0.194153
+0.129251
+-0.668138
+0.642957
+-0.308943
+0.600201
+-0.358028
+-0.259915
+-0.378774
+-0.716433
+-0.742715
+0.483482
+0.891245
+-0.169942
+0.950826
+0.174913
+0.399955
+-0.128698
+-0.150161
+0.862139
+0.527677
+0.564250
+-0.124919
+0.135293
+0.575488
+-0.044282
+0.113363
+0.533343
+0.973612
+0.360285
+-0.308351
+0.713793
+0.524672
+-0.038842
+-0.534391
+-0.623422
+0.095355
+-0.557081
+-0.737667
+-0.718805
+-0.676293
+-0.500511
+0.407274
+-0.323921
+-0.956046
+-0.184926
+-0.553656
+1.161868
+-0.500301
+-0.189277
+0.001868
+-0.865866
+-0.125103
+-0.171328
+0.701193
+0.415317
+-0.088594
+0.804468
+0.900198
+-0.035136
+-0.858585
+0.484137
+-0.213068
+0.898339
+-0.578273
+0.076276
+-0.105271
+-0.625775
+0.548073
+0.582461
+-0.031151
+0.390806
+0.604147
+-0.965371
+-0.747331
+1.026803
+0.236018
+0.346417
+0.338340
+-0.826167
+-0.292047
+0.840700
+-0.796258
+0.387781
+0.469391
+0.380562
+0.828665
+0.744847
+0.327239
+0.305147
+0.094716
+-1.006212
+0.562067
+-1.025931
+0.653917
+0.926689
+0.629957
+0.133000
+-0.349387
+-0.239936
+0.932964
+-0.059149
+0.273290
+-0.857265
+0.802953
+-0.123507
+0.149052
+0.582888
+0.135346
+0.222672
+0.428972
+-0.635198
+-0.415739
+0.667458
+0.673619
+0.386188
+0.507351
+0.731619
+0.579886
+0.468761
+-0.790996
+0.021257
+-0.059044
+-0.670973
+-0.727518
+-0.585999
+-0.632060
+-0.170502
+0.824150
+-0.088803
+0.801592
+0.667222
+-0.263843
+-0.271706
+-0.332248
+-0.877828
+0.450993
+0.027514
+-0.010887
+-0.729128
+0.826953
+0.573288
+0.168481
+-0.734361
+-0.014984
+0.751295
+-0.734200
+-0.087024
+0.520604
+0.958735
+0.921500
+0.316810
+0.321418
+0.176661
+0.546533
+-0.110713
+0.243933
+-0.977272
+0.494338
+0.301771
+-0.305347
+-0.458299
+0.971700
+0.108014
+0.417249
+-0.267432
+0.193935
+-0.944261
+0.573359
+0.642295
+0.519150
+-0.038208
+-0.289230
+0.631615
+0.993045
+0.654595
+0.605933
+-0.794986
+-0.829732
+0.717386
+-0.439371
+0.426630
+-0.749880
+-0.933969
+-0.429860
+-0.344169
+-0.257874
+0.847012
+-0.316463
+-0.127763
+-0.798043
+-0.497617
+-0.962722
+0.726342
+0.012701
+0.818926
+0.158537
+0.044309
+0.994424
+-0.712509
+-0.069634
+0.122910
+-0.326175
+0.054643
+-0.981571
+-0.549647
+0.548351
+-0.875678
+0.570499
+0.227651
+-0.110464
+-0.209317
+0.273852
+0.291598
+0.052087
+0.515559
+0.142396
+0.800438
+-0.663660
+0.576178
+-0.369667
+-0.495778
+-0.226097
+-0.871267
+-0.544900
+0.073749
+0.688096
+-0.761312
+-0.482553
+0.365711
+-0.997795
+0.156158
+-0.657351
+-0.889729
+-0.598381
+0.981446
+-0.887279
+0.351257
+-0.961181
+0.153068
+0.705069
+0.556944
+0.707243
+-0.641419
+0.072194
+-0.702143
+0.495738
+-0.024456
+-0.211100
+0.703369
+0.373915
+-0.223261
+0.820896
+-0.758017
+-0.935392
+0.143475
+-0.617727
+0.086625
+0.073612
+-0.199210
+0.695332
+-0.505941
+0.730016
+0.929209
+-0.405976
+0.183762
+0.795984
+0.804253
+-0.237927
+-0.595562
+0.277967
+0.237272
+-0.807666
+0.700122
+0.408392
+0.366295
+-0.487615
+0.013387
+0.792957
+0.628966
+-0.327654
+0.988598
+0.404271
+0.583422
+0.549897
+-0.746661
+0.076773
+-0.700151
+0.239543
+-0.308298
+-0.028477
+0.802208
+0.203539
+0.622470
+-0.427004
+-0.147085
+-0.170899
+-0.315544
+0.588653
+-0.568041
+-0.363567
+-0.665691
+0.209588
+-0.306044
+0.790871
+-0.333063
+0.369784
+-0.162226
+0.019435
+-0.621406
+0.404781
+-0.469700
+0.149479
+0.170269
+-0.585207
+-0.738453
+0.411156
+-0.427057
+-0.952373
+-0.280368
+0.299222
+-0.957779
+-0.451448
+-0.572253
+0.474309
+-0.542895
+0.539121
+0.008451
+-0.691237
+-0.184989
+0.903745
+-1.151754
+0.962708
+0.693033
+0.603979
+-0.834273
+-0.860213
+0.841156
+0.223003
+0.934016
+-0.027386
+0.916319
+0.144018
+0.393552
+0.098543
+0.273970
+-0.158044
+0.576514
+-0.626726
+-0.171386
+0.513451
+-0.965109
+-0.618616
+-0.190044
+-0.261211
+-0.860027
+-0.207429
+-0.382529
+0.834906
+-0.260801
+0.732991
+-0.328858
+-0.998198
+-0.950015
+0.508513
+-0.874259
+-0.887662
+0.339785
+0.996729
+0.759008
+0.358849
+-0.388848
+-0.630254
+0.577764
+-0.802651
+-0.125996
+-1.032854
+0.133294
+0.382579
+-0.694150
+-0.074840
+-0.110537
+0.375676
+-0.176750
+-0.794138
+-0.776808
+-0.020951
+-0.762458
+0.165100
+0.766406
+-0.505872
+0.232627
+-0.361405
+-0.394227
+0.584707
+0.260710
+0.183517
+0.886478
+-0.644287
+0.940696
+0.291950
+0.271801
+0.492600
+-0.243772
+-0.552938
+0.492995
+0.095329
+-0.700949
+0.640049
+-0.695945
+0.610196
+-0.698414
+-0.774582
+0.395081
+-0.087975
+-0.574183
+-0.356240
+-0.327215
+0.236328
+-0.927114
+0.911650
+0.026405
+-0.959959
+-0.914537
+0.776749
+0.018047
+0.680476
+-0.515359
+-0.220260
+-0.392264
+-0.567258
+-0.719633
+0.814120
+-0.489213
+-0.973790
+0.076084
+0.333679
+-0.355693
+0.618600
+0.625481
+0.879688
+0.214030
+-0.964616
+0.257874
+-0.750791
+-0.369054
+0.219605
+-0.187293
+-0.798567
+0.713780
+0.183389
+-0.538714
+-0.222520
+-0.398167
+0.064545
+-0.421953
+0.087139
+0.308994
+0.431353
+-0.608045
+0.422940
+-0.812046
+0.170573
+0.972002
+0.810082
+-0.473212
+-0.810372
+-0.354437
+0.341311
+0.275421
+0.203573
+0.571047
+-0.712841
+-0.994945
+0.111530
+0.032665
+0.869999
+-0.392243
+-0.847799
+-0.468900
+-0.761952
+-0.243813
+-0.455385
+-0.510417
+-0.235128
+0.371255
+-0.748532
+0.882127
+0.932865
+0.546187
+-0.238755
+-0.005729
+0.218229
+0.322821
+-0.324606
+0.360235
+-0.316297
+-0.775695
+0.609564
+0.241059
+-0.785153
+-0.458657
+0.178564
+-0.489183
+-0.857547
+0.784562
+0.064352
+0.085910
+0.400105
+0.889092
+0.419792
+0.111904
+-0.735265
+0.228737
+0.227906
+0.135434
+-0.143589
+0.871831
+0.317057
+-0.463744
+-0.957724
+0.689507
+0.276541
+-0.190170
+0.752829
+-0.552085
+-0.228116
+-0.750712
+0.717857
+-0.370516
+0.738904
+-0.057363
+0.294678
+0.977863
+-0.209975
+0.613339
+0.470461
+-0.707952
+-0.572877
+-0.330218
+0.789695
+-0.217361
+-0.377277
+-0.570939
+-0.742889
+-0.369813
+-0.314069
+-0.521438
+-0.649740
+0.457840
+0.364570
+-0.303209
+-0.388555
+-0.971366
+-0.860732
+-0.292039
+-0.179349
+0.220521
+0.707379
+-0.749662
+1.010019
+-0.699143
+-0.144422
+0.691501
+0.904548
+-0.449964
+-0.207769
+-0.946480
+-0.426116
+-0.600846
+0.457304
+0.023350
+0.210893
+-0.386243
+-0.286306
+0.561307
+0.704542
+0.523575
+0.026185
+0.125908
+0.550672
+0.304402
+0.841678
+-0.202714
+-0.561712
+0.053339
+0.682688
+-0.707902
+0.561520
+-1.000372
+0.850841
+-0.146179
+-0.242362
+0.266004
+-0.771755
+-0.817220
+-0.692168
+-0.903419
+-0.017330
+-0.023228
+-0.025306
+-0.417085
+0.907511
+-0.481447
+0.599979
+0.927470
+-0.822858
+0.374328
+0.133663
+0.823610
+-0.590393
+-0.263875
+0.428144
+-0.596123
+0.837882
+0.834738
+-0.387297
+0.551342
+0.495192
+0.467204
+-0.206709
+-0.481687
+0.810793
+0.075509
+0.667042
+0.873711
+0.412525
+-0.703063
+-0.293341
+0.582700
+0.661350
+-0.312717
+-0.425642
+-0.386638
+0.369468
+-0.427873
+0.485115
+0.170651
+0.627366
+-0.385630
+-1.003744
+0.519722
+0.039305
+0.456453
+-0.612609
+0.678007
+-0.803912
+0.877973
+-0.617745
+-0.591102
+0.596353
+-0.133709
+-0.037520
+-0.648103
+0.037676
+0.335759
+0.828454
+0.943225
+-0.503993
+-0.758529
+-0.719305
+0.569510
+0.223013
+-0.519848
+0.614072
+0.245576
+0.683637
+0.143056
+0.950787
+0.702669
+0.678222
+0.235889
+-0.361593
+0.113804
+-0.099546
+1.038815
+0.780732
+-0.659223
+-0.376574
+-0.517661
+-0.087250
+-0.382329
+0.839950
+-0.287981
+-0.406090
+-0.245538
+0.169956
+0.410094
+-0.811952
+-0.817779
+0.883223
+0.906704
+-0.887616
+-0.428301
+-0.160862
+0.526258
+-0.067068
+0.787831
+-0.091843
+0.519940
+0.764664
+0.460109
+0.705743
+0.823542
+0.765700
+0.665173
+0.364608
+-0.709134
+0.004034
+0.702837
+0.486087
+-0.678623
+-0.767129
+-0.783751
+-0.305537
+-0.519208
+-0.233765
+-0.976628
+0.944430
+0.600441
+-0.402352
+-0.356187
+0.631705
+0.243738
+0.577390
+0.288962
+0.783256
+-0.748521
+-0.705911
+0.869984
+-0.914012
+-0.106594
+0.253825
+-0.113614
+0.125515
+-0.040572
+0.097765
+0.287107
+-0.274406
+0.989994
+-0.788295
+-0.768091
+-0.500259
+-0.797798
+0.640256
+-0.363064
+0.535615
+-0.306213
+0.536198
+-0.796615
+-0.450066
+-0.115512
+0.299730
+0.240374
+-0.810263
+-0.366525
+-0.110091
+0.874066
+0.577558
+-0.437969
+-0.824470
+-0.837558
+0.773654
+0.061066
+-0.492884
+0.407513
+-0.015410
+0.054693
+-0.609090
+-0.372341
+0.328843
+-0.803202
+-0.126544
+-0.267410
+-0.070078
+0.505758
+0.594548
+-0.198342
+0.518969
+0.196433
+0.207443
+0.588695
+-0.751578
+-0.737097
+0.880200
+-0.283362
+-0.612664
+0.343666
+0.827805
+0.394961
+0.622714
+0.328606
+0.490458
+-1.016832
+-0.910997
+0.092607
+0.355321
+0.409698
+-0.466382
+0.822803
+-0.524784
+-0.524809
+0.555992
+0.946475
+-0.176723
+0.790836
+-0.968839
+0.224065
+0.534506
+-0.672430
+-0.625398
+-0.626916
+0.125129
+-0.779452
+0.747055
+0.876648
+-0.866178
+-0.246290
+-0.872835
+-0.381999
+-0.583922
+0.328803
+-0.631076
+-0.647580
+0.347849
+-0.358325
+0.607600
+0.904162
+0.022866
+-1.093392
+0.377671
+-0.291507
+0.147114
+0.942015
+-0.012180
+0.638754
+-0.728051
+1.027479
+-0.368436
+-0.739415
+-0.088550
+0.586321
+-0.087312
+-0.532343
+-1.027447
+-0.999389
+0.513347
+-0.901270
+0.910260
+0.756068
+-0.489358
+-0.777774
+-0.295958
+-0.562439
+-0.105894
+-0.086477
+-0.686853
+-0.299101
+-0.048671
+-0.255595
+-0.032575
+0.609530
+0.251013
+-0.001143
+0.963535
+0.700396
+-0.040404
+-0.500609
+0.535662
+0.091678
+0.602516
+-0.109632
+0.199146
+-0.384338
+-0.036870
+0.478475
+0.538327
+-0.449099
+0.056613
+-0.301483
+0.206923
+0.406957
+0.233674
+0.469431
+0.471237
+0.848916
+0.837465
+-0.868961
+0.513442
+-0.791753
+-0.003239
+-0.028449
+-0.750619
+0.934144
+0.690296
+0.189119
+-0.329839
+-0.178533
+0.900233
+0.021804
+-0.717728
+-0.160156
+0.057088
+-0.685419
+-0.679876
+-0.030638
+-0.735638
+0.470265
+-0.124793
+-0.964305
+0.847379
+-0.349166
+-0.304788
+-0.836213
+0.288418
+-0.296677
+-0.781257
+-0.933996
+0.932984
+-0.005174
+-0.767106
+-0.514900
+0.849383
+-0.106352
+-0.727141
+0.311268
+0.642769
+1.029881
+0.012560
+0.300965
+-0.829749
+-0.309023
+-0.854345
+-0.520190
+-0.953892
+0.910882
+-0.620058
+0.598743
+0.658692
+0.961257
+-0.533638
+0.350384
+0.512844
+-0.668680
+0.492295
+-0.159310
+0.662888
+-0.501721
+-0.785719
+0.168859
+-0.977676
+0.374510
+-0.280054
+0.834088
+-0.818440
+-0.209610
+0.955416
+-0.506940
+0.070226
+0.483012
+0.921319
+0.213800
+0.472204
+0.067511
+-0.030409
+0.794441
+0.682244
+-0.040498
+1.031964
+-0.205137
+-0.877171
+-0.559845
+0.413536
+-0.373703
+0.679076
+-0.644041
+-0.304803
+-0.663699
+0.987014
+0.676989
+-0.880119
+0.507981
+-0.984364
+0.426728
+0.825981
+-0.375789
+-0.673918
+-0.465910
+0.365247
+-0.823173
+0.828463
+-0.354685
+0.025127
+-0.126797
+0.163081
+-0.366638
+-0.266953
+-0.363522
+0.128133
+1.053162
+0.287882
+-0.291237
+-0.819599
+0.818223
+-0.203415
+-0.238803
+0.438374
+-0.199724
+0.630799
+0.097758
+-0.938057
+0.549491
+0.011110
+-0.651475
+-0.115954
+0.466516
+0.959740
+-0.020658
+0.644701
+-0.811633
+-0.029520
+-0.497353
+-0.408204
+0.514049
+-0.808999
+-0.616824
+-0.510059
+0.473982
+-0.921993
+0.408267
+0.622692
+0.166198
+0.892502
+0.066662
+-0.477979
+-0.136794
+-0.908666
+0.622863
+0.442076
+-0.216459
+-0.366652
+0.470114
+-0.282555
+-0.892408
+0.602049
+0.293111
+0.406646
+-0.680259
+-0.222873
+0.797138
+-0.596496
+0.899174
+0.896706
+-0.175859
+0.053342
+-0.835857
+0.980494
+0.214699
+-0.922136
+-0.293892
+-0.917636
+0.884874
+0.378317
+-0.608505
+-0.705141
+-0.185734
+-0.566790
+0.322953
+-0.382505
+0.358203
+0.667883
+-0.305064
+0.451516
+0.177509
+-1.048412
+-0.745639
+-0.924506
+-0.601991
+0.724120
+-1.013818
+0.648524
+0.784472
+-0.398080
+-0.731724
+0.172580
+-0.225005
+-0.840169
+0.661943
+0.183171
+-0.831563
+-0.114705
+0.858186
+0.310980
+0.376747
+0.396861
+0.608139
+-0.120139
+-0.047875
+-0.032031
+0.097842
+0.922578
+-0.040534
+0.365495
+0.413401
+-0.855059
+0.189533
+0.587214
+-0.371744
+-0.582500
+-0.122614
+-0.797420
+0.495869
+-0.485950
+0.064932
+0.512877
+-0.159919
+-0.283198
+0.124610
+0.706115
+0.151538
+-0.174152
+0.063998
+-0.534169
+0.960633
+0.797200
+-0.581417
+-0.073245
+-0.646137
+-0.670972
+0.532231
+-0.454276
+-0.643616
+-0.431943
+0.347416
+0.812639
+0.236388
+0.243045
+0.861081
+-0.749257
+0.979926
+-0.359678
+0.607855
+-0.843992
+-0.697939
+-0.702064
+-0.637040
+-0.758972
+-0.011727
+-0.941802
+0.426049
+-0.898008
+0.213190
+0.820341
+-0.470970
+-0.937116
+0.067668
+0.418553
+-0.167623
+0.521980
+-0.450965
+-0.897547
+0.306207
+0.404882
+-0.817158
+0.166458
+0.338135
+0.037159
+0.160128
+0.566909
+-0.532658
+0.917142
+-0.860032
+0.295419
+-0.446625
+-0.907831
+-0.566690
+-0.944709
+-0.376970
+-0.799787
+-0.825248
+-0.405846
+0.952579
+0.885589
+0.925415
+0.536366
+-0.190282
+-0.356184
+0.188819
+-0.243944
+-1.006519
+-0.075653
+-0.385900
+0.405950
+0.237180
+0.901267
+-0.204311
+0.061637
+-0.299608
+-0.014680
+0.793506
+-0.173372
+-0.189894
+0.465405
+0.901254
+0.830348
+0.501521
+-0.305618
+-0.501109
+0.921697
+-0.155578
+0.149736
+0.725904
+-0.043622
+-0.728918
+-1.022914
+0.153098
+-0.693934
+-0.570951
+0.390065
+-0.334819
+-0.219156
+0.076469
+0.148202
+-0.735181
+-0.598203
+0.851211
+0.439048
+0.856524
+0.595828
+0.151434
+-0.703812
+-0.938965
+0.113006
+-0.215182
+-0.917193
+-0.633862
+0.497193
+0.425934
+-0.046711
+0.859283
+-0.046592
+-1.018339
+0.109858
+0.948947
+0.838634
+-0.043663
+0.232308
+0.755465
+0.630855
+-0.065876
+-0.074181
+0.483933
+0.583255
+0.732990
+0.423587
+0.111376
+-0.273155
+0.288019
+0.405525
+0.565602
+0.553228
+-0.591372
+0.882321
+-0.980218
+0.722516
+-0.565734
+0.776673
+-0.625183
+0.054629
+-0.483834
+0.766437
+0.162462
+0.185913
+0.305845
+0.104183
+-0.527684
+0.298824
+0.754942
+0.156318
+0.163150
+-0.383098
+-0.701498
+-0.371084
+0.395548
+0.876876
+0.173244
+0.475166
+0.675139
+0.558735
+0.780838
+0.860140
+-0.895087
+-0.734946
+0.099539
+-0.088823
+-0.082553
+-0.562730
+0.724594
+-0.885504
+0.150159
+-1.117924
+-0.295294
+-0.152277
+-0.748408
+-0.012882
+-0.557980
+0.828077
+-0.279737
+0.913889
+0.581515
+0.535494
+-0.054030
+-0.527436
+0.425846
+0.048182
+0.790499
+-0.886545
+0.904040
+0.807025
+0.349453
+-0.045990
+-0.225974
+-0.012921
+0.196060
+0.950217
+0.483525
+0.140977
+0.431586
+-0.225035
+-0.359033
+0.920265
+0.373958
+0.935251
+-0.613587
+0.821074
+0.300004
+0.188990
+0.140116
+0.689057
+-0.661082
+0.141752
+0.831499
+-0.539894
+0.754791
+-0.221296
+0.167123
+0.820423
+-0.215914
+-0.608415
+0.688505
+0.194744
+0.270617
+0.204027
+-0.603920
+-0.733022
+0.079954
+0.131654
+-0.331722
+0.697176
+-0.799742
+-0.307633
+0.129988
+1.013736
+-0.371625
+-0.101436
+-0.600282
+0.354371
+-0.585824
+-0.308591
+0.739977
+0.380223
+-0.774565
+0.864907
+0.314560
+0.197349
+-0.461396
+0.337461
+0.541916
+0.435610
+-0.738865
+0.541503
+0.582794
+-0.554914
+0.362332
+-0.159889
+0.729444
+0.108347
+-0.236673
+0.824813
+0.195119
+0.646046
+0.293187
+0.339059
+0.087580
+-0.600440
+0.925087
+0.122603
+0.111735
+0.899757
+0.239405
+-0.707688
+0.528168
+0.874954
+0.965674
+0.194036
+-0.015782
+-0.374148
+0.044330
+-0.638278
+0.196280
+-0.922232
+-0.786214
+0.233952
+-0.203461
+0.781078
+-0.430832
+0.163218
+-0.421161
+0.026858
+-0.180896
+0.582274
+0.837063
+0.942743
+0.970828
+-0.369966
+-0.187515
+0.607809
+-0.269990
+-0.286990
+0.985977
+-0.961709
+-0.054940
+0.985005
+-0.861533
+-0.960989
+0.883046
+-0.300648
+-0.522535
+-0.098267
+-0.662778
+1.154122
+0.723358
+-0.559007
+-0.264808
+-0.709703
+-0.329581
+0.144309
+-0.332909
+0.225831
+0.472094
+-0.464218
+-0.031492
+0.928818
+-0.589206
+-0.622026
+-0.618256
+0.419889
+-0.811151
+1.023439
+0.244618
+-0.853977
+0.488455
+0.363268
+0.866904
+0.854887
+-0.392017
+0.775373
+0.847101
+0.437260
+-0.790008
+-0.054351
+-0.783558
+-0.753540
+0.063737
+0.487405
+-0.744689
+-0.242476
+0.768723
+-0.393360
+0.280274
+0.428141
+-0.358229
+-0.089961
+0.286958
+-0.804434
+-0.081428
+-0.595457
+0.620666
+-0.241725
+-0.286019
+0.322794
+0.341614
+0.802890
+0.495833
+-0.300415
+-0.708399
+0.790613
+1.006196
+-0.506439
+0.866090
+0.636898
+0.677767
+-0.368161
+-0.609565
+-0.063999
+0.026973
+0.829222
+-0.722621
+-0.671497
+-0.629072
+0.897006
+-0.033419
+0.436760
+-0.939509
+1.033482
+-0.226968
+0.132575
+-0.589377
+-0.892456
+0.018007
+0.275536
+-0.535587
+-0.182247
+0.963450
+-0.901729
+-0.623061
+0.410098
+-0.434579
+-0.312195
+0.778887
+0.073030
+0.120030
+0.004491
+0.078486
+0.545306
+0.799855
+0.558701
+0.660360
+0.454166
+0.415876
+0.970420
+-0.514678
+-0.638671
+-1.050704
+-0.255103
+0.914033
+-0.988177
+-0.849071
+-0.126089
+-0.684204
+0.018812
+0.884658
+-0.667774
+0.597783
+-0.245190
+0.453566
+0.001775
+-0.821445
+-0.761518
+0.901621
+0.677562
+-0.581200
+0.529123
+-0.791656
+-0.154497
+0.583390
+1.065784
+0.153608
+0.879451
+-0.788693
+0.785145
+-0.251516
+-0.454519
+0.202847
+-0.274903
+-0.508214
+0.691114
+-0.723658
+-0.375147
+0.060233
+-0.681799
+-0.292273
+0.801355
+-0.521790
+-0.000682
+-0.402587
+0.595582
+-0.488095
+0.403914
+-0.114825
+0.360592
+0.874815
+-0.760112
+-0.257932
+-0.112666
+-0.661296
+0.136204
+0.421461
+0.335550
+-0.547505
+0.396969
+-0.981709
+0.359707
+0.146239
+0.407171
+-0.666050
+-0.208620
+0.818932
+-0.208464
+0.257113
+-0.365305
+-0.902796
+0.948001
+-0.249464
+-0.821590
+0.128343
+-0.317512
+-0.707217
+-0.885100
+-0.681218
+-0.587533
+-0.015912
+-0.869834
+0.386023
+-0.945010
+0.933373
+0.969473
+-0.029055
+-0.297744
+-0.942027
+0.459746
+-0.030831
+0.306406
+0.822464
+-0.302083
+0.307127
+0.241864
+-0.273029
+0.441963
+0.849174
+0.211876
+-0.039050
+0.375341
+-0.375788
+-0.538177
+0.513517
+-0.074302
+0.290052
+0.463139
+-0.074984
+-0.409709
+-0.397702
+-0.178796
+0.727777
+0.145367
+0.724110
+0.084617
+-0.047052
+0.438131
+-0.693638
+-0.318187
+-0.144733
+-0.550977
+-0.819882
+0.766190
+0.719145
+0.333223
+-0.799545
+-0.679447
+-0.021748
+0.242015
+0.737683
+-0.314402
+0.925311
+0.791517
+0.547909
+-0.925831
+0.714594
+0.700761
+0.768772
+0.850870
+-0.557043
+0.193436
+0.564515
+-0.027616
+-0.804514
+0.574584
+-0.392372
+-0.439134
+-0.670700
+-0.909773
+0.634168
+0.375768
+-0.005376
+-0.365038
+-0.874174
+-1.000033
+0.421485
+-0.921281
+0.366023
+-0.663950
+0.860051
+-0.881348
+0.671152
+-0.375157
+0.912770
+0.334687
+-0.252960
+-0.843313
+0.481805
+0.660909
+-0.577475
+0.621199
+0.386025
+-0.966184
+0.167536
+0.339044
+-0.231855
+-0.452630
+1.089539
+0.327635
+0.098302
+-0.659304
+-0.132576
+0.224409
+0.050141
+0.270391
+0.264566
+-0.492758
+0.481580
+-0.592026
+0.674551
+0.042935
+-0.594029
+-0.686383
+-0.095549
+-0.141593
+-0.664377
+0.207417
+0.746856
+0.623117
+0.398086
+-0.577814
+0.451867
+-0.650464
+0.456899
+0.569006
+-0.785180
+0.212924
+0.526543
+-0.065571
+-0.040206
+-0.105051
+-0.738355
+-0.253667
+0.251836
+-0.785572
+0.463272
+-0.782994
+-0.374255
+-0.470934
+-0.813383
+0.685492
+-0.101847
+-0.924000
+-0.763270
+0.190048
+-0.482024
+0.190619
+-0.345343
+-0.136240
+0.740789
+-0.815325
+-0.606050
+0.298588
+1.014576
+-0.728017
+0.617118
+-0.626651
+0.183128
+-0.570598
+0.094715
+0.281544
+0.149864
+0.054192
+0.131804
+-0.144932
+0.987523
+-0.313917
+0.479968
+0.246932
+0.432729
+0.809440
+-0.686112
+0.450983
+-0.406803
+0.455018
+0.198520
+0.421021
+-0.716800
+0.901535
+-0.102478
+0.477794
+-0.634820
+0.318279
+-0.559811
+0.303905
+-0.804574
+0.079253
+-0.429698
+-0.018352
+-0.628549
+0.319625
+-0.115805
+-0.133073
+-0.739110
+-0.557387
+0.037113
+-0.184974
+0.127383
+-0.221957
+-0.293614
+-0.584189
+0.576925
+0.448465
+-0.769432
+0.936286
+-0.833856
+-0.170065
+-0.585358
+0.335572
+-0.449848
+-0.338519
+-0.365719
+0.050838
+-0.080380
+0.468632
+-0.599866
+-0.299729
+0.908058
+-0.037334
+-0.743915
+0.327429
+0.814659
+-0.074307
+-0.139065
+0.866901
+0.221113
+-0.708443
+-0.534286
+-0.116483
+0.983733
+-0.705869
+-0.409779
+-0.283093
+0.829097
+-0.824833
+-0.870297
+0.871284
+0.551676
+-0.852201
+0.744834
+-0.857906
+-0.743459
+-0.439248
+-0.244445
+0.325892
+-0.438407
+-0.810928
+0.381961
+0.727065
+-0.413098
+-0.537533
+-0.467445
+-0.085309
+-0.901129
+0.884920
+-0.942095
+-0.971451
+0.357193
+0.472636
+-0.902406
+-0.726820
+0.702593
+-0.838065
+-1.107536
+0.708548
+-0.907317
+-0.709160
+-0.536235
+0.555405
+0.770330
+0.870188
+-0.075280
+0.313943
+0.687094
+-0.949953
+-0.050514
+-0.143015
+0.854594
+-0.864193
+0.101519
+-0.786972
+-0.005434
+0.168034
+0.305087
+0.058246
+0.465802
+-0.625644
+-0.136266
+0.973329
+0.036597
+0.913416
+0.240066
+-1.008500
+0.135173
+-0.677227
+-0.370539
+-0.694588
+-0.345578
+-0.026664
+-0.339726
+0.101208
+-0.095744
+-0.951080
+-0.697613
+-0.391633
+0.098827
+-0.894413
+-0.151267
+-0.453327
+0.463332
+-0.902667
+-0.030635
+-0.350661
+0.137399
+-0.434297
+1.003082
+-0.425619
+-0.464135
+0.497168
+-0.704026
+0.995017
+-0.319555
+0.843615
+1.000707
+-0.951932
+0.801767
+-0.765333
+-0.204669
+-0.621347
+0.758688
+0.282933
+-0.587819
+-0.744045
+0.631434
+0.247544
+0.290491
+-0.551717
+0.055047
+0.374520
+-0.316193
+0.189996
+0.032422
+-0.217102
+0.544222
+-0.496659
+0.680418
+-0.717592
+0.094863
+0.137808
+0.995961
+-0.762530
+0.357568
+0.626037
+0.236948
+-0.171613
+-0.788845
+0.373614
+0.666889
+-0.253098
+-0.267840
+0.782243
+0.055006
+-0.643542
+1.133193
+0.374738
+-0.125031
+-0.683261
+0.322293
+-0.893127
+0.710684
+-0.540533
+-0.454430
+0.138354
+-0.524109
+-0.468864
+0.736620
+0.922608
+-0.931797
+-0.131900
+-0.739247
+0.015569
+-0.281209
+0.640611
+-0.815941
+-0.385232
+0.875635
+0.707895
+-0.260071
+-0.370772
+0.000027
+-0.859255
+0.186566
+0.660214
+0.458152
+0.843679
+-0.608476
+0.425028
+-0.717869
+-0.627751
+-0.704000
+-0.636756
+-0.353251
+0.107377
+0.334386
+0.692882
+-0.701304
+0.806587
+0.758661
+-0.459717
+-0.535858
+-0.790750
+0.331721
+-0.038453
+-0.765606
+0.620548
+-0.263744
+0.351097
+0.576717
+-0.896504
+-0.288301
+-0.669403
+0.065211
+0.647447
+-0.128825
+0.662409
+0.343609
+-0.640607
+-0.899571
+0.207569
+-0.687542
+-0.994885
+0.929279
+0.356963
+-0.604971
+0.190872
+-0.695064
+0.782472
+0.517349
+-0.851824
+0.881031
+0.210348
+-0.793192
+0.510911
+-0.229586
+0.463292
+-1.052476
+-0.036758
+0.805652
+0.686350
+0.554208
+-0.218840
+-0.048663
+0.552527
+-0.236608
+0.086518
+0.005000
+0.136197
+-0.477401
+0.135872
+-0.181541
+0.601919
+-0.191482
+-0.719582
+0.404085
+-1.039067
+0.894109
+0.487901
+-0.652505
+0.800240
+-0.508537
+-0.241472
+0.167408
+0.746446
+0.525201
+0.083252
+0.627217
+0.794612
+-0.625884
+0.938680
+-0.762596
+0.153471
+-0.667963
+0.009394
+-0.312151
+-0.716246
+0.016087
+-0.089434
+0.918233
+-0.236055
+-0.752209
+-0.758956
+-0.312165
+0.591267
+0.995409
+0.941767
+0.432816
+-0.434078
+-0.579983
+-0.110501
+-0.452706
+0.440930
+0.417107
+0.649167
+-0.528230
+-0.455645
+-0.010835
+-0.431692
+-0.566142
+-0.950464
+0.461118
+0.421991
+0.897090
+0.605654
+0.126386
+-0.928205
+-0.930037
+0.348651
+0.564965
+-0.822114
+0.419605
+-0.906260
+0.152578
+0.923122
+-0.957039
+0.750215
+-0.516428
+0.962880
+0.166051
+0.372633
+-0.438990
+0.734213
+-0.876116
+0.144332
+0.366014
+0.800826
+0.501353
+-0.161018
+-0.636300
+-0.714085
+-0.350982
+-0.013276
+0.164764
+0.303775
+0.771565
+0.214707
+0.230355
+0.708998
+0.804826
+0.933979
+0.742672
+0.027934
+0.019534
+-0.666070
+0.187591
+0.111572
+-0.175719
+0.762450
+-0.047932
+-0.223166
+0.520743
+-0.675147
+0.402877
+-0.735496
+-0.087816
+-0.464508
+-0.662805
+0.378674
+-0.224265
+-0.717132
+0.856429
+-0.214447
+-0.727725
+0.613513
+-0.942919
+-0.659534
+-0.480280
+0.604372
+-0.351121
+-0.110311
+-0.554681
+0.975101
+0.382074
+-0.541901
+-0.959498
+-0.146560
+0.502813
+0.172346
+-0.253322
+-0.583378
+0.190928
+-0.364484
+-0.664431
+-0.336977
+0.413281
+0.649557
+0.542184
+-0.636022
+0.107595
+-0.527486
+0.976490
+0.724282
+0.853380
+-0.956713
+-0.879051
+0.069968
+0.647280
+-0.623091
+0.414883
+0.559903
+0.517092
+0.250119
+-0.633395
+0.854719
+0.194573
+0.804115
+-0.896015
+0.303497
+0.358727
+0.087163
+0.091948
+-1.079100
+0.018177
+0.606174
+0.470099
+-0.061577
+0.793391
+0.865375
+-0.396897
+-0.748722
+-0.582878
+-0.166848
+-0.790301
+-0.863106
+0.575906
+-0.492133
+-0.054298
+-0.741370
+0.928181
+0.407102
+0.533154
+-0.751734
+-0.372589
+-0.896802
+-0.812823
+-0.181571
+-0.180344
+-0.426910
+0.694301
+0.901688
+-0.807823
+-0.305421
+0.173040
+0.667387
+0.943466
+0.915100
+-0.473494
+-0.123138
+0.386199
+0.057878
+0.825079
+-0.411071
+-0.450620
+-0.670663
+-0.189368
+0.921777
+-0.835896
+-0.150484
+-0.155128
+-0.564114
+-0.893409
+0.049392
+-0.255192
+-0.594436
+0.815620
+-1.028002
+0.704065
+0.511530
+0.557600
+0.759403
+-0.350512
+0.936842
+-0.442643
+-0.733507
+0.061186
+-0.852698
+-0.088179
+-0.239021
+-0.104674
+0.786236
+-0.976741
+-0.398356
+0.394871
+-0.984513
+-0.956154
+0.431805
+0.776852
+-0.350942
+0.436414
+0.437539
+0.938349
+0.417462
+0.192915
+-0.532807
+-0.240603
+-0.152386
+0.824035
+0.981529
+0.680492
+0.561181
+1.061740
+0.749669
+0.515330
+0.394423
+-0.977967
+-0.936331
+0.088436
+0.337724
+-0.281541
+-0.322528
+-0.232090
+-0.271110
+0.805608
+-0.818020
+0.467236
+-0.364417
+-0.300893
+-0.974132
+-0.473291
+-0.219834
+-0.800365
+-0.981053
+-0.515074
+0.816458
+-0.823886
+-0.447611
+-0.587839
+0.635811
+-0.663508
+-0.843091
+0.364387
+-0.591808
+-0.984583
+0.403962
+-0.109068
+-0.953601
+-0.901051
+-0.911624
+0.331898
+-0.140616
+0.705931
+-0.541450
+-0.880675
+0.160017
+-0.003553
+-0.227669
+-0.938495
+-0.375485
+-0.365525
+-0.996366
+-0.504736
+-0.186326
+0.964325
+0.843583
+-0.399092
+0.208482
+-0.868469
+0.746730
+-0.491593
+0.439611
+0.274331
+-0.533796
+-0.505874
+1.054864
+-0.353820
+0.630078
+0.260799
+-0.592069
+-0.000107
+0.523593
+0.570909
+0.005948
+0.575371
+-0.523285
+-0.119830
+-0.490416
+0.350279
+-0.511110
+-0.613541
+-0.120193
+-0.373890
+-0.087362
+0.798764
+0.727129
+-0.820542
+-0.819488
+0.059293
+-0.614374
+-0.689555
+-0.872097
+0.369819
+0.227277
+0.084864
+0.604292
+-0.833397
+0.145850
+0.004445
+-0.721728
+0.936009
+0.764781
+-0.003040
+-0.021480
+0.576018
+0.405400
+-0.931875
+0.701725
+-0.991116
+0.908615
+0.061766
+-0.258579
+0.937963
+0.661766
+-0.612505
+0.266125
+-0.232155
+-0.879913
+-0.977494
+0.666425
+-0.476956
+-0.332493
+0.114884
+-0.227736
+-0.908080
+-0.246864
+0.384384
+0.645823
+-0.320042
+-0.853235
+0.949984
+0.291363
+-0.332553
+-0.822704
+0.138987
+0.234859
+-0.320334
+-0.698467
+0.709286
+-0.290787
+0.601256
+0.883405
+0.621556
+-0.686940
+-0.254053
+0.013890
+0.213868
+0.054161
+-0.464497
+0.900120
+0.853052
+0.390991
+0.198114
+-1.020340
+-0.749596
+-0.030058
+0.303542
+-0.008909
+-0.477837
+-0.042039
+0.823866
+0.418313
+0.902299
+-0.256423
+0.392661
+0.367647
+-0.806568
+0.114280
+0.491171
+-0.680612
+0.382173
+0.668558
+0.378694
+0.438056
+-0.054857
+-0.540620
+-0.409707
+-0.389447
+-0.677809
+0.106357
+-0.915991
+0.543767
+0.626678
+-0.761504
+-0.186787
+-0.699695
+-0.662628
+0.640519
+0.232525
+0.601733
+-0.295199
+-0.857880
+-0.626282
+0.252101
+-0.605680
+-1.037907
+0.014174
+0.600719
+0.898899
+0.899023
+-0.357698
+0.569474
+-0.931902
+-0.627287
+-0.625985
+0.353117
+0.228995
+0.781416
+0.000161
+0.963402
+0.378192
+-0.324855
+0.300708
+0.340437
+-0.809868
+0.501431
+0.542762
+-0.801708
+0.531207
+-0.971013
+-0.869346
+-0.544546
+-0.936286
+-0.224911
+0.547123
+0.056805
+-0.051196
+-0.230988
+0.486670
+1.042128
+0.851448
+-0.594064
+0.363375
+0.626071
+-0.655893
+-0.157011
+0.074036
+-0.621663
+-0.516629
+-0.397828
+-0.722758
+-0.516783
+-0.879208
+-0.034034
+0.191684
+0.920436
+0.828313
+-0.396831
+-0.363921
+-0.207835
+0.091068
+0.385632
+-0.569280
+-0.876352
+0.099529
+0.403775
+0.240457
+-0.812380
+0.456908
+1.170565
+-0.472811
+-0.857141
+0.620925
+1.006665
+-0.356398
+0.809636
+0.653700
+-0.195392
+-0.078672
+-0.310411
+0.702218
+-0.279140
+-0.746518
+-0.748494
+0.026482
+-0.929846
+0.320052
+-0.227976
+0.740372
+-0.618222
+-0.162783
+0.010950
+0.781177
+-0.668351
+0.559771
+0.213742
+0.049450
+0.127240
+0.255127
+0.062451
+-0.139794
+-0.893377
+-0.741193
+0.254998
+-0.577969
+-0.033069
+-0.917850
+0.345054
+0.273268
+-0.237789
+-0.900494
+0.565989
+-0.408914
+-0.697943
+0.480875
+0.095637
+-0.806948
+0.734965
+0.843794
+0.360854
+0.103554
+-0.242607
+0.685347
+-0.499135
+-0.140144
+0.022247
+-0.934139
+-0.735039
+0.893291
+0.569078
+0.883981
+-0.929345
+0.550153
+-0.641973
+-0.864220
+0.827968
+-0.721150
+-0.533150
+1.000657
+-0.466356
+0.438845
+0.450069
+-0.115396
+-0.219411
+0.327589
+-0.362547
+-1.038685
+-0.952077
+0.908141
+-0.845681
+0.995185
+0.906268
+0.748313
+-0.569018
+-0.091124
+-0.027905
+-0.033350
+-0.543138
+-0.716942
+-0.348506
+0.609835
+-0.134895
+0.401749
+-0.528251
+0.265716
+-0.051033
+-0.527458
+0.605063
+-0.248140
+0.463847
+-0.927212
+-0.073861
+-0.818853
+-0.230902
+-0.523140
+-0.485825
+-0.674671
+0.894109
+0.317175
+1.034251
+-0.313257
+0.787501
+-0.715364
+-0.583025
+-0.039549
+-0.154732
+-0.975948
+-0.362728
+0.565746
+-0.111949
+-1.026302
+-0.380506
+0.393841
+-0.572148
+-0.487395
+0.497306
+0.751692
+-0.260220
+-0.319332
+0.943988
+-0.826540
+-0.356153
+0.354320
+0.824837
+-1.018914
+-0.650819
+-0.364989
+0.540101
+-1.031880
+-0.479146
+0.068790
+0.822179
+-0.574463
+-0.836186
+-0.224120
+-0.625652
+-0.120716
+-0.175793
+0.529310
+-0.316672
+-0.483411
+0.320097
+0.177064
+0.579137
+0.262215
+-0.454652
+0.084178
+1.048878
+0.847828
+-0.458979
+0.904889
+0.263838
+0.199120
+0.302564
+0.786126
+-0.167133
+-0.597960
+0.779926
+-0.522813
+0.484003
+-0.160601
+-0.900123
+-0.772000
+-0.727401
+0.842606
+-0.034049
+0.931105
+-0.973799
+-0.059009
+0.843462
+0.847999
+-0.423382
+-0.366503
+0.361945
+0.020874
+-1.019968
+-0.445595
+0.395628
+-0.642212
+0.804765
+0.737889
+0.595689
+0.758130
+-0.646024
+-0.507665
+0.113282
+-0.342335
+0.232317
+0.406878
+-1.040479
+-1.119952
+-0.011786
+0.359044
+-0.171607
+-0.472627
+-0.523607
+-0.683785
+0.039553
+0.652992
+0.627449
+0.047480
+0.591615
+-0.015818
+-0.003179
+-0.004939
+-0.332744
+-0.920731
+0.337245
+-0.902762
+-0.479470
+0.766891
+0.742923
+0.623520
+-0.571349
+-0.149077
+0.230794
+0.107983
+0.422951
+0.434193
+0.787414
+0.304485
+0.144159
+-0.133656
+0.433227
+-0.845251
+-0.413119
+-0.054840
+0.200170
+-1.017217
+-0.046688
+0.636586
+-0.865842
+-0.578866
+-0.948275
+-0.224653
+0.315139
+0.962973
+-0.898887
+0.324559
+-0.289429
+-0.563341
+-1.016419
+-0.815429
+0.645873
+-0.151270
+0.516109
+-0.016407
+0.562546
+-0.206745
+0.825555
+0.079246
+-0.475663
+-0.045655
+-0.672953
+-0.360871
+-0.147920
+0.306712
+-0.645893
+0.113104
+0.701391
+0.765538
+-0.366391
+0.343477
+-0.862691
+-0.705542
+-0.485848
+-0.588711
+-0.267532
+-0.965017
+0.103856
+0.267302
+-0.958502
+0.022205
+0.343792
+-0.355664
+0.773456
+-0.184066
+0.774627
+-0.979948
+-0.247896
+0.171510
+0.451692
+-0.450996
+-0.549929
+-0.477889
+-0.220624
+-0.962648
+0.787495
+0.625115
+-0.746428
+-0.700701
+0.150655
+0.253276
+0.450787
+0.229002
+-0.016782
+0.356830
+0.530720
+-0.279721
+-0.327080
+-0.183704
+0.437305
+-0.109995
+0.604038
+-0.249376
+0.966456
+-0.558662
+0.943650
+0.698167
+-0.157758
+0.558501
+-0.002903
+0.275877
+0.834145
+-0.812479
+-0.328155
+0.130805
+0.586915
+0.093190
+0.824069
+-0.294154
+-0.683416
+0.844735
+-0.886814
+0.858781
+-0.206753
+0.298830
+-0.503847
+0.566218
+-0.626152
+0.757897
+0.476951
+-0.100004
+-0.446068
+0.190379
+-0.722063
+0.403381
+-1.008163
+0.347015
+0.263402
+-0.362143
+-0.770177
+-0.219014
+-0.960946
+-0.695998
+0.244562
+0.706013
+0.400525
+-1.001259
+0.215904
+-0.070214
+-0.385394
+-0.596909
+0.145578
+0.464886
+-0.687427
+-0.107676
+0.274239
+0.936024
+0.492038
+0.570726
+0.626810
+-0.758427
+-0.254304
+0.654387
+0.159586
+0.515863
+-1.043982
+-0.361100
+0.125856
+0.709468
+0.144889
+0.802569
+-0.000343
+-0.536178
+-0.059114
+0.673150
+-0.415620
+-0.196307
+0.577660
+0.397760
+-0.275263
+-0.599784
+0.556467
+-0.568796
+-0.741583
+-0.334592
+-0.896988
+0.834322
+0.185107
+0.434535
+-0.311906
+-0.042735
+-0.333638
+-0.869432
+-0.978889
+0.787638
+-0.960607
+-1.025998
+-0.395601
+-0.136173
+-0.775471
+-0.016010
+0.358041
+-0.133828
+0.736206
+-0.626420
+0.475628
+0.018694
+-0.216389
+0.328557
+-0.823600
+-0.084558
+-0.829536
+0.449897
+-0.667603
+-0.995373
+0.781199
+0.508078
+0.794262
+0.246865
+0.465216
+0.315916
+-0.028800
+0.340516
+-0.788771
+-0.961872
+-0.044801
+-0.484124
+-0.047568
+-0.458025
+-0.887800
+0.704645
+0.595708
+-0.601046
+-0.323674
+0.071040
+0.383886
+-0.541962
+0.830750
+-0.777839
+0.542765
+0.680523
+-0.906599
+0.531283
+-0.821044
+0.276262
+0.308155
+0.413564
+0.214804
+0.494034
+0.476133
+0.304363
+-0.834197
+0.525415
+0.714883
+0.226655
+-0.225550
+-0.131923
+-0.552053
+0.093372
+0.544417
+0.770472
+-0.909996
+0.015240
+-0.070074
+1.115518
+-0.086017
+-0.519474
+0.648742
+0.339346
+-0.183265
+0.387267
+-0.961461
+0.694902
+0.229784
+-0.583939
+0.057546
+0.872238
+0.910601
+-0.716887
+-0.482097
+0.454493
+0.567111
+-0.278151
+-0.168207
+-0.671046
+0.824123
+-0.864804
+0.426562
+0.243616
+0.487079
+-0.440228
+-0.755552
+-0.843443
+0.020004
+-0.257847
+0.132437
+-0.307349
+0.853572
+-0.497683
+0.349005
+0.431522
+0.388351
+-0.610169
+-0.313465
+-0.703832
+-0.037693
+-0.540033
+0.591619
+-0.579938
+0.089659
+-0.110570
+-0.028093
+-0.290014
+-0.913489
+0.636927
+-0.666532
+0.904639
+-0.162804
+-0.762622
+-0.493500
+0.899277
+0.989383
+-0.105350
+0.821564
+-0.561634
+-0.445916
+0.737337
+-0.631631
+-0.339261
+0.720700
+-0.416510
+-0.835575
+0.259442
+0.620442
+-0.327754
+-0.642919
+-0.190682
+-0.759202
+0.197496
+-0.196563
+-0.489349
+-0.140606
+-1.054517
+-0.596355
+0.138942
+0.558914
+0.407047
+0.159416
+0.032016
+0.878929
+0.760248
+-0.512063
+-0.390451
+-0.386361
+0.641881
+0.115740
+0.734229
+0.984417
+0.170283
+-0.972843
+0.406798
+0.877694
+-0.147591
+-0.297009
+-0.839703
+0.893537
+0.742703
+-0.065736
+0.863079
+-0.258053
+-0.344335
+-0.042054
+-0.035688
+-0.663748
+0.754932
+0.629675
+-0.702965
+-0.713949
+-0.676250
+0.427955
+-0.755505
+-0.290577
+0.980538
+0.239869
+0.640219
+-0.543572
+0.668034
+0.512180
+0.009698
+0.384121
+-0.803441
+-0.948703
+0.898625
+0.010820
+-0.182512
+-0.154786
+-0.911162
+-0.028822
+0.597059
+0.033352
+-0.676691
+-0.347748
+-0.113055
+-0.297668
+-0.811610
+0.880237
+0.156442
+-0.202270
+-0.179703
+-0.026266
+0.052996
+0.996927
+0.101955
+-0.470854
+-0.433837
+0.241868
+-0.302605
+-0.457909
+-0.567570
+-0.985066
+0.705842
+0.158802
+0.329741
+-0.704740
+0.793211
+-0.260815
+0.745027
+0.862010
+-0.191482
+0.701524
+-0.387502
+-0.702998
+-0.937256
+-0.394631
+0.645994
+0.835655
+-0.513521
+-0.927469
+-0.782691
+-0.643793
+-0.376312
+0.080230
+0.957010
+-0.677749
+-0.947469
+0.010067
+-0.367651
+-0.084466
+-0.249520
+0.469100
+-0.562862
+-0.152329
+-0.835885
+-0.452592
+0.680247
+-0.658678
+-0.813343
+-0.305025
+-0.563028
+0.759779
+0.764707
+-0.974335
+-0.099218
+0.703698
+-0.099981
+0.491337
+-0.509665
+0.958625
+-0.912624
+-0.440719
+0.862975
+-0.077548
+-0.057115
+-0.513164
+0.713352
+0.431493
+0.361411
+0.149588
+-0.108686
+0.258205
+0.386665
+0.545201
+-0.945457
+-0.348811
+-0.269622
+0.765323
+0.492002
+0.890793
+0.619368
+-0.626305
+-1.045197
+-0.409147
+-0.897523
+-0.448289
+-0.148587
+-0.863875
+0.851591
+0.214733
+-0.654785
+0.400760
+-0.398898
+0.125997
+-0.747389
+0.918594
+-0.514818
+-0.640242
+0.325172
+-0.937248
+-0.741031
+0.007130
+0.154717
+0.588180
+0.137147
+0.019017
+-0.137301
+-0.809041
+0.146447
+0.270017
+0.934381
+0.581351
+-0.796719
+-0.420114
+0.103257
+-0.555799
+0.026714
+0.131777
+0.402636
+0.112904
+-0.048091
+-0.660081
+0.615205
+-0.123624
+-0.848796
+-0.461049
+-0.762639
+-0.560875
+0.843594
+0.889661
+0.482905
+-0.912273
+0.068655
+0.179562
+0.586656
+0.764246
+-0.222280
+-0.921008
+-0.950366
+0.951056
+0.703685
+-0.226000
+0.080882
+0.531410
+-0.237849
+-0.685059
+0.265782
+0.035015
+0.274887
+-0.462375
+0.344448
+0.899932
+0.957511
+0.530908
+0.875619
+-0.633622
+-1.004220
+-0.159778
+-0.104955
+0.958174
+0.907851
+0.240078
+-1.158977
+-0.424781
+0.233181
+-0.982846
+0.623331
+-0.410790
+0.715217
+-0.119292
+0.135535
+-0.393242
+-0.495095
+0.214615
+-0.446300
+-0.266877
+0.913384
+0.042591
+0.813939
+0.501982
+0.837071
+-0.849840
+0.485381
+0.928633
+0.009040
+0.230140
+-0.114482
+-0.157020
+-0.356528
+0.064179
+0.440842
+0.256063
+-1.058621
+0.877838
+0.010281
+-1.043225
+-0.344985
+0.354641
+-0.413796
+0.725183
+-0.231016
+-0.668138
+-0.817408
+-0.777812
+0.179548
+-0.317020
+-0.627026
+-0.554698
+0.386666
+-0.162198
+0.634044
+-0.555904
+0.957268
+0.630864
+0.334041
+-0.191705
+-0.692463
+-0.285061
+-0.925556
+-0.974840
+-0.464422
+0.101799
+-0.854430
+-0.586923
+-0.724221
+-0.724790
+-0.207418
+0.099394
+-0.837834
+0.588673
+-0.396044
+-1.003512
+0.580943
+-0.115775
+-0.596382
+0.441404
+0.357364
+0.740686
+-0.651313
+0.499283
+-0.071266
+0.608076
+0.059562
+0.858693
+0.079264
+0.182853
+-0.795707
+0.334818
+0.418362
+-0.446233
+-0.161263
+-0.589632
+-0.032067
+0.826951
+0.316210
+-1.077585
+0.255250
+0.994214
+-0.483015
+-0.845191
+-0.551952
+-0.730976
+-0.648862
+-0.083004
+0.107730
+-0.725188
+0.795644
+0.933122
+-0.609096
+0.522322
+-0.264417
+0.543563
+0.155506
+-0.740246
+0.723356
+-0.291084
+0.616296
+0.900675
+0.248548
+-0.292207
+-0.747883
+0.887664
+0.523186
+0.845219
+-0.978098
+-0.803760
+-0.233553
+0.619455
+0.322369
+-0.037449
+0.251996
+-0.518373
+0.399120
+0.473707
+0.602053
+-0.787177
+-0.530888
+-0.099022
+0.239489
+0.816054
+0.024500
+0.713995
+1.169313
+0.346950
+0.779117
+-0.242210
+0.372817
+-0.825744
+0.512847
+-0.345398
+-0.137710
+-0.270808
+-1.010156
+-0.408215
+0.303819
+0.101234
+0.436453
+-0.317906
+-0.385767
+-0.571187
+-0.499369
+0.660862
+-0.177352
+0.750438
+0.764446
+-0.413298
+-0.901698
+-0.062364
+-0.412087
+0.044277
+-0.629906
+0.600817
+-0.110958
+-0.279660
+-0.746607
+-0.993948
+0.111493
+-0.555480
+-0.456220
+-0.318613
+0.250075
+-0.487436
+0.656516
+-1.000407
+0.967998
+0.601263
+0.004923
+-0.575839
+-0.716425
+-0.539218
+-0.358403
+0.801820
+-0.316006
+0.275251
+0.821166
+0.227195
+0.750495
+0.261338
+-0.957505
+0.601204
+-0.771919
+-0.183830
+-0.627185
+0.378460
+0.433357
+-0.293161
+0.396529
+-0.460495
+-0.462824
+-0.250890
+0.738567
+0.541389
+0.027405
+0.760371
+-0.104998
+-0.308056
+0.913170
+-0.312040
+0.429435
+-0.874579
+-0.950967
+-0.159046
+-0.421250
+0.463217
+-0.046360
+-0.546996
+0.073161
+-0.005096
+0.572351
+0.929816
+-0.271283
+-0.928778
+0.860335
+-0.651810
+-0.193816
+-0.472793
+1.042622
+0.840082
+0.432097
+-0.637091
+-0.352455
+0.460393
+-0.274281
+0.496476
+0.261254
+0.484322
+0.406863
+-0.680885
+-0.540066
+-0.369754
+-0.617020
+0.071747
+0.903264
+0.053494
+0.403745
+-0.362860
+0.520079
+0.262208
+0.169206
+-0.958411
+-0.256695
+-0.524436
+-0.782778
+0.177600
+-0.744293
+-0.668615
+0.253265
+-0.816762
+-0.204552
+0.960527
+-0.052223
+-0.741769
+0.540468
+0.381660
+0.920819
+0.716135
+0.717281
+0.010658
+-0.423899
+-0.140790
+0.851950
+0.885980
+-0.982055
+0.176902
+0.403541
+-0.626465
+0.064370
+0.350646
+0.689542
+0.418235
+-0.057611
+0.843422
+-0.388785
+-0.838893
+-1.013701
+0.601248
+-0.679230
+-0.354532
+0.550559
+-0.515110
+-0.336948
+-0.087705
+-0.030361
+0.630825
+0.592127
+-0.854876
+0.293562
+0.367674
+0.910239
+0.712315
+0.214983
+-0.478763
+0.289417
+-0.499000
+0.078489
+-0.491940
+0.055689
+0.348246
+0.556717
+-0.355018
+-0.281308
+-0.089379
+-0.429409
+-0.841987
+0.609609
+-0.247541
+0.377760
+-0.903195
+0.156464
+0.122723
+0.652398
+0.818054
+-0.255906
+-0.041033
+-0.146998
+0.314342
+-0.484906
+0.492529
+0.262571
+0.861821
+0.120699
+0.275602
+0.459745
+-0.542681
+-0.080399
+0.522236
+-0.078509
+0.465740
+0.765358
+0.072710
+0.727749
+0.167515
+0.194071
+-0.230119
+-0.154634
+0.485448
+0.869925
+0.009190
+-0.063782
+0.796191
+0.712015
+-0.803985
+1.109374
+-0.288644
+-0.192045
+-0.399161
+-0.971503
+-0.768146
+0.370757
+-0.785156
+-0.287160
+0.468025
+0.038155
+-0.368083
+0.875187
+-0.576991
+-0.520740
+0.557627
+-0.627505
+1.005676
+0.566441
+-0.522280
+0.278508
+0.788540
+-0.999437
+0.824477
+0.574303
+0.597083
+0.559753
+0.749825
+0.471243
+0.992897
+0.192098
+-0.312489
+0.425982
+-0.618298
+0.054826
+0.707024
+0.659572
+-0.361788
+-0.109050
+0.153376
+0.121236
+0.871855
+0.240850
+-0.956797
+0.172031
+-0.726277
+0.955639
+0.365604
+-0.604253
+-0.067088
+0.601452
+1.048557
+-0.618802
+0.470805
+0.224297
+0.191779
+-0.690357
+0.136386
+0.748761
+-0.084577
+-0.358708
+-0.763099
+0.629446
+-0.385906
+-0.565788
+0.638048
+-0.527544
+0.832610
+0.608550
+0.223840
+0.740804
+0.941681
+-0.095314
+-0.241159
+0.334374
+0.564041
+0.820610
+0.877469
+-0.580339
+-0.915887
+-0.389454
+0.484614
+-0.192107
+-0.324386
+-0.136979
+0.677647
+-0.096837
+-0.264580
+-0.185339
+0.316438
+0.328101
+0.136964
+0.492551
+0.854036
+0.773072
+-0.223913
+-0.800153
+-0.369854
+0.038100
+0.769375
+0.759161
+0.001000
+0.065501
+-0.935927
+-0.041631
+-0.489102
+0.523436
+-0.874175
+-0.118436
+0.478227
+0.555105
+0.487183
+-0.807678
+-0.326910
+-0.814387
+-0.146113
+-0.414837
+0.749102
+-0.127419
+-0.163917
+-0.951678
+-0.824401
+0.644900
+-0.322435
+0.547517
+0.366649
+0.877901
+-0.911199
+0.235869
+-1.093911
+0.038749
+-0.648384
+0.848242
+0.944804
+-0.822196
+0.831323
+0.089896
+1.037373
+0.487085
+-0.767007
+-0.163204
+-0.117062
+0.970791
+0.092224
+0.951513
+-0.291617
+0.907810
+-0.937633
+-0.783674
+-0.646198
+-0.170944
+-0.323108
+0.785453
+1.087078
+-0.119379
+-1.118380
+-0.022279
+1.002064
+-0.494741
+-0.718228
+0.516998
+-0.785967
+0.058167
+0.359665
+0.041231
+0.576563
+-0.126771
+-0.393590
+0.983453
+-0.142139
+-0.122630
+0.359821
+0.012068
+0.733027
+0.409754
+0.686408
+0.989218
+0.461776
+0.753282
+0.926307
+0.773390
+-0.885383
+-0.538027
+-0.569482
+-0.245900
+0.134463
+-0.241851
+-0.289325
+0.872116
+0.562255
+0.006673
+-0.505998
+0.518172
+-0.737879
+-0.828356
+0.727557
+0.591788
+0.705626
+0.297259
+0.541487
+0.749312
+0.880868
+0.853679
+0.784059
+-0.793715
+-0.540216
+-0.781986
+-0.214999
+0.032839
+0.026730
+0.737296
+-0.390529
+-0.083435
+0.780796
+-0.207390
+-0.951210
+-0.030752
+0.603576
+0.308462
+-0.878810
+-0.007880
+-0.608741
+0.022118
+-0.350556
+-0.539641
+-0.951847
+0.240126
+-0.718202
+0.234767
+0.318705
+0.014814
+0.309220
+0.083589
+0.635026
+0.217962
+0.025064
+0.804912
+-0.007712
+0.015335
+-0.459900
+0.733271
+0.193523
+0.645106
+0.699276
+-0.213703
+-0.506383
+0.861283
+0.758324
+-0.866913
+-0.582645
+-0.630155
+-0.608601
+1.095954
+-0.699820
+-0.757105
+0.171900
+0.897569
+-0.468659
+0.508706
+-0.618243
+-0.915734
+0.008393
+0.174581
+0.279258
+-0.829982
+0.312345
+-0.394011
+-0.463194
+-0.822036
+0.299435
+-0.617056
+0.207868
+-0.778240
+0.424721
+-0.754367
+0.144707
+0.702307
+0.283680
+0.997025
+-0.360156
+-0.620245
+-0.506898
+0.597855
+-0.778664
+0.056256
+-0.481483
+-0.354155
+0.184155
+0.356328
+-0.400280
+-0.832901
+-0.420854
+-0.609523
+-0.339234
+-0.008002
+0.735662
+-0.046049
+0.399024
+-0.686847
+-0.681422
+0.523078
+-0.341569
+-0.526092
+-0.544952
+-0.307754
+-0.050200
+0.857822
+0.367107
+-0.283642
+0.430073
+0.355580
+0.406595
+0.967943
+-0.748938
+0.633920
+0.169859
+-0.552944
+-0.952232
+0.249542
+0.592079
+0.372134
+0.766292
+0.109101
+0.351456
+-0.586986
+-0.386098
+0.349046
+0.119487
+-0.484614
+-0.265160
+0.325676
+0.985062
+0.879410
+-0.250775
+-0.342687
+-0.386017
+0.361693
+0.748266
+-0.318654
+-0.277588
+-0.314599
+-0.675021
+-0.935575
+0.602775
+-0.004345
+0.247473
+0.431353
+-0.821224
+-0.130215
+0.309069
+-0.474138
+-0.890159
+0.586690
+-0.706930
+0.559967
+-0.101074
+-0.097847
+-0.430605
+-0.916809
+0.317616
+0.241426
+-0.929809
+0.827129
+-0.169416
+0.821287
+0.658448
+0.180964
+0.394874
+-0.610964
+0.673883
+-0.095346
+-0.140923
+0.643770
+-0.802134
+-0.190983
+0.420506
+-0.774950
+-0.842086
+0.386054
+0.817868
+0.611166
+-0.161600
+0.418935
+0.168094
+-0.446000
+0.453202
+-0.008414
+-0.202158
+-0.831000
+0.427469
+0.897613
+-0.473539
+0.298460
+-0.007683
+-0.032689
+0.723977
+0.469668
+-0.845081
+-0.505947
+-0.529713
+-0.562571
+0.756172
+-0.087107
+0.531494
+-0.343447
+-0.483260
+-0.262597
+-0.573551
+0.456438
+-0.312938
+0.341075
+-0.480419
+0.116859
+-0.166144
+0.401399
+-0.758081
+-0.890079
+0.513337
+0.169431
+-0.324021
+0.395884
+0.962798
+0.337503
+-0.136786
+-0.223393
+-0.396375
+0.228910
+-0.650952
+0.165245
+-0.808198
+-0.387640
+-0.629855
+-0.374982
+0.346055
+0.273326
+-0.843073
+-0.680803
+0.659024
+0.202909
+0.532336
+-0.135349
+0.664967
+0.733519
+-0.526162
+0.202387
+-0.856849
+-0.765683
+-0.422506
+-0.351906
+-0.841988
+1.012805
+-0.340045
+-0.877240
+-0.191024
+0.801660
+0.243688
+0.728087
+-0.229333
+0.495734
+0.581459
+-0.088316
+0.702280
+0.683747
+-0.688452
+-0.631312
+-0.049213
+0.879078
+0.328300
+0.198935
+-0.927107
+0.806677
+0.144613
+-0.820936
+0.466753
+0.592576
+1.035607
+-0.140355
+0.568466
+0.076630
+-0.673697
+-1.040448
+0.339247
+-0.966245
+1.097925
+0.502282
+-0.403490
+-0.323390
+-0.415216
+0.812714
+0.346632
+0.520065
+0.910382
+0.835421
+-0.132527
+0.720463
+-0.445164
+-0.908822
+-0.467720
+-0.541465
+-0.011513
+-0.980605
+-0.012622
+0.636004
+0.380874
+0.425481
+-0.814592
+-0.823415
+0.328258
+-0.294311
+0.971034
+0.083358
+-0.517030
+0.282226
+0.581661
+0.768217
+-0.219551
+0.452514
+-0.027372
+-0.173564
+-0.168695
+-0.458395
+-0.916829
+-0.785208
+0.705391
+0.587088
+0.259005
+-0.206558
+0.916315
+0.151516
+0.152867
+-0.196108
+0.360842
+-0.227065
+-0.606393
+-0.473771
+-0.870895
+0.021570
+-0.279486
+-0.954109
+0.340403
+0.398637
+0.771984
+-0.002704
+0.506919
+0.441815
+0.644385
+0.060454
+0.527381
+-0.073599
+0.570604
+0.101127
+-0.397417
+-0.770569
+-0.173574
+-0.304025
+0.166042
+0.253025
+-0.805424
+0.145997
+-0.938453
+-0.005085
+1.055241
+-0.334905
+0.274560
+0.516030
+-0.298004
+-0.977541
+0.101310
+-0.141553
+0.795572
+-0.145639
+0.348659
+-0.549877
+-0.462111
+-0.541201
+0.816901
+0.278258
+0.121000
+-0.501217
+-0.436853
+0.902935
+0.575912
+-0.048995
+-0.623467
+0.328226
+-0.011259
+-0.225339
+-0.327392
+-0.835963
+0.452020
+0.182459
+0.400813
+-0.983342
+-0.106012
+0.137958
+-0.379548
+0.978663
+-0.661110
+-0.817644
+-0.227825
+-0.681208
+0.783759
+0.535063
+-0.119339
+-0.697195
+-0.455729
+-0.118283
+-0.470272
+-0.354317
+0.527299
+0.062840
+-0.467213
+-0.588896
+-0.416643
+-0.872817
+-0.644317
+0.905357
+0.755975
+-0.279999
+0.609604
+-0.861487
+0.469791
+0.716630
+-0.758419
+0.706865
+0.413777
+0.097365
+0.507463
+1.001110
+-0.592791
+0.150967
+0.125171
+0.947338
+0.196897
+0.562011
+0.091007
+0.912890
+-0.150548
+-0.830190
+-0.937997
+0.282252
+-0.139442
+-0.034852
+-0.481176
+0.519880
+0.218342
+-0.737529
+0.010695
+-0.017780
+-0.866125
+0.548912
+0.118266
+1.099764
+0.078057
+0.282344
+-0.807775
+-0.133181
+0.218565
+0.198899
+-0.218134
+0.507708
+0.581356
+0.051725
+0.760462
+0.973825
+0.201479
+0.494502
+-0.374436
+0.318554
+0.842548
+0.728023
+-0.420123
+-0.866315
+0.375109
+0.079035
+0.352351
+-0.837101
+0.903599
+-0.717411
+-1.004127
+-0.789714
+-0.262010
+0.527771
+-0.602337
+0.591849
+0.062062
+-0.743838
+0.807957
+-0.704216
+-0.431314
+0.656668
+0.823874
+-0.000503
+0.794254
+0.015457
+0.482141
+-0.846142
+0.907764
+0.935975
+-0.080558
+0.583521
+-0.362488
+-0.805974
+0.751273
+1.041219
+0.125876
+-0.430839
+0.240076
+-0.727560
+0.113667
+-0.052689
+0.449434
+1.005439
+-0.402123
+0.156580
+-0.839127
+0.319008
+0.243763
+0.289271
+-0.389863
+-0.792655
+-0.482604
+-0.489027
+0.385883
+-0.253313
+-0.470512
+0.173447
+0.552458
+-0.293862
+-0.473463
+-0.481517
+-0.289007
+0.045316
+-0.486853
+-0.046070
+-0.323782
+-0.022465
+0.281742
+0.311932
+0.925126
+-0.309534
+0.122543
+-0.465046
+-0.243647
+-0.261380
+-0.937260
+-0.165298
+-0.370390
+0.838932
+-0.266891
+0.834930
+0.564496
+-0.928464
+-0.593504
+-0.477511
+-0.853830
+0.628540
+-0.582437
+0.642955
+-0.411073
+-0.805341
+0.305310
+-0.671566
+-0.817570
+-0.658739
+0.221507
+-0.625220
+0.752421
+-0.267281
+0.774142
+-0.708568
+0.056236
+-0.925247
+0.820482
+-0.185541
+-0.422764
+-0.461538
+-0.498760
+-0.211882
+0.251290
+0.138066
+-0.183466
+0.801843
+-0.765328
+-0.190155
+-0.141342
+-0.302214
+-0.875285
+0.994602
+0.108129
+-0.050607
+-0.871844
+-0.245386
+0.370644
+-0.743373
+-0.523222
+-0.062658
+0.384390
+-0.629185
+0.381062
+0.583087
+0.719997
+0.930321
+0.584895
+-0.493588
+-0.464277
+0.259759
+-0.126175
+0.468263
+-0.778369
+-0.991467
+0.678231
+0.542102
+-0.319246
+0.935741
+-0.816136
+0.871086
+0.810336
+0.526004
+0.570939
+0.486780
+-0.630001
+-0.899383
+0.164317
+0.450731
+-1.208975
+-0.895039
+0.652586
+0.720725
+0.634944
+0.773820
+0.596756
+0.711830
+-0.221753
+-0.186297
+0.185162
+-0.325215
+-0.190436
+-0.663242
+-0.760186
+0.678351
+0.103624
+0.087004
+0.353281
+-0.107600
+-0.664752
+0.514778
+0.032475
+-0.958370
+0.773521
+-0.053718
+-0.725485
+0.862305
+-0.746822
+-0.651701
+-0.693149
+-0.835019
+0.673597
+-0.145346
+0.423046
+-0.525957
+-0.495387
+0.558345
+-0.901743
+0.734192
+-0.109920
+-0.865952
+-0.988203
+0.593662
+-0.629462
+-0.946292
+-0.573348
+-0.790957
+0.858308
+0.681080
+-0.843052
+0.968620
+0.037132
+-0.038433
+0.139104
+0.576285
+-0.668088
+0.610207
+0.749768
+-0.319749
+0.648523
+0.511489
+0.296456
+0.998477
+-0.011806
+0.751213
+0.470302
+0.438816
+-0.451616
+0.907678
+0.888045
+0.612569
+0.029943
+0.411266
+-0.472871
+-0.085962
+0.953781
+0.772652
+-0.087790
+-0.826063
+0.448026
+-0.044877
+-0.850525
+0.618100
+-0.770447
+-0.340976
+-0.430563
+-0.168156
+0.099257
+0.968794
+-0.816007
+1.027329
+0.137852
+0.104566
+-0.296641
+-0.586720
+0.891714
+-0.227233
+-0.484224
+0.555725
+-0.462921
+0.033395
+1.148868
+0.566893
+-0.528849
+-0.497881
+-0.107939
+-0.217040
+-0.512292
+0.635099
+0.576450
+0.285172
+-0.239675
+1.044349
+0.044337
+0.157922
+-0.841339
+0.512557
+-0.569208
+-0.743508
+0.570396
+-0.586560
+0.598046
+0.399164
+-0.479405
+-0.310161
+0.536511
+-0.878023
+0.428468
+-0.876309
+0.864415
+0.433985
+0.081755
+-0.077832
+0.182893
+0.483774
+0.947944
+-0.908576
+-0.738198
+0.445136
+-0.408268
+-0.712908
+0.738969
+-0.180688
+-0.770732
+-0.333464
+0.892012
+0.646741
+0.101995
+0.209842
+0.217811
+-0.599676
+0.126704
+0.822347
+-0.416918
+0.608844
+-0.094388
+-0.758269
+0.144345
+-0.673875
+-0.293294
+0.998701
+-0.773749
+-0.973201
+-0.768438
+-0.735629
+-0.187304
+0.996650
+-0.138663
+-0.674388
+0.226175
+-0.024638
+0.330435
+-0.297890
+0.571100
+-0.623198
+0.489800
+0.561176
+-0.017576
+0.650202
+0.998394
+0.139858
+0.290191
+0.279293
+-0.762158
+0.822248
+0.229355
+-0.210880
+0.274236
+-0.166800
+-0.123187
+-0.161228
+-0.191434
+0.855673
+-0.129062
+0.332657
+0.041737
+-0.236941
+0.285064
+-0.183033
+-1.004516
+-0.327653
+0.896804
+0.854900
+-0.042562
+-0.543918
+-0.656481
+0.644321
+-0.856459
+-0.964509
+-0.820606
+0.680406
+0.127954
+0.151809
+0.623708
+0.290468
+-0.182081
+-0.272564
+0.552669
+0.307779
+0.240214
+0.006133
+-0.295262
+0.657142
+0.289259
+-0.392024
+-0.147080
+0.565105
+0.029754
+-0.302617
+-0.235149
+0.234993
+0.132380
+0.767559
+-0.920090
+0.779769
+0.405724
+0.007018
+0.436792
+-0.116400
+0.919083
+-0.267149
+-0.674436
+0.051596
+-0.218329
+-0.052621
+-0.921038
+-0.058106
+-0.353164
+0.512080
+0.164155
+0.008506
+-0.178031
+-0.204022
+0.227623
+-0.563625
+0.746479
+-0.032580
+-0.048491
+-0.561691
+-0.252914
+-0.390889
+0.656039
+0.075851
+-0.845680
+0.647110
+0.251894
+-0.373492
+0.285800
+0.341243
+1.178472
+0.106966
+0.496011
+-0.800281
+-0.274950
+0.577250
+0.910555
+-0.431978
+-0.660835
+0.528708
+-0.989720
+0.624083
+-0.155052
+0.220536
+-0.638353
+-0.732040
+-0.766324
+0.554808
+-0.722110
+-0.277907
+-0.510644
+0.317291
+0.805021
+0.445316
+0.427110
+-0.938214
+0.169682
+0.363778
+-0.545706
+-0.020719
+-0.055925
+-0.568000
+-0.948667
+0.663721
+0.760559
+0.618368
+-0.074059
+-0.742468
+-0.710411
+-0.705950
+0.155336
+0.577809
+-0.237826
+0.446070
+0.416783
+0.401745
+-0.038532
+-0.444615
+0.272969
+0.824295
+-0.586279
+0.369502
+0.827259
+-0.436294
+-0.682361
+0.450989
+0.666703
+-0.086499
+0.414419
+0.355709
+0.200993
+-0.037074
+0.962330
+0.637080
+-0.265210
+0.780504
+-0.826891
+0.615470
+-0.705598
+0.093322
+0.930067
+0.528350
+-0.845274
+-0.418109
+-0.667530
+0.941015
+0.573295
+0.974262
+0.966645
+-0.242557
+-0.133432
+0.870446
+0.470876
+-0.278321
+-0.796441
+-0.978177
+-0.487823
+-0.589255
+0.335494
+-0.555036
+0.914691
+-0.655869
+-0.674321
+-0.116412
+0.968525
+0.026471
+-0.599711
+-0.361626
+-0.278483
+0.468535
+0.467550
+-0.133922
+0.619302
+-0.138459
+0.233293
+-0.706823
+-0.304684
+0.544027
+-0.335353
+0.101950
+0.159522
+0.712791
+0.605368
+0.154020
+-0.864098
+-0.069258
+0.667083
+0.225516
+0.002976
+-0.988604
+0.450289
+0.698704
+-0.442135
+0.698478
+0.942893
+-0.310649
+0.281022
+0.427028
+-0.034644
+-0.315748
+0.360699
+-0.542667
+-0.248411
+-0.013719
+-0.902138
+-0.649632
+-0.551830
+0.152131
+-0.251826
+-0.268592
+0.136234
+0.641379
+-0.514593
+0.422548
+-0.648681
+-0.403401
+-0.249387
+0.760054
+0.273216
+0.686977
+-0.231784
+-0.193135
+0.051581
+-0.059089
+-0.044211
+0.884520
+-0.412217
+0.638173
+0.171265
+-0.628721
+0.621759
+0.223820
+-0.597892
+0.271860
+-0.163967
+-0.901030
+0.120374
+-0.111223
+-0.592282
+0.659366
+0.623202
+1.018510
+-0.749386
+-0.655046
+0.663126
+-0.310557
+-0.896328
+-0.766880
+-0.584659
+0.931739
+-0.320525
+-1.048414
+0.567235
+0.243637
+0.279926
+0.453392
+0.318999
+-0.751902
+0.354866
+-0.790570
+0.832148
+0.984601
+-0.243826
+-0.684038
+-0.741753
+0.469451
+-0.665939
+0.667909
+-0.972642
+-0.304249
+-0.850664
+-0.502994
+-0.741725
+0.512706
+0.535466
+-0.003978
+-0.110600
+-0.460849
+-0.972132
+-0.674626
+0.255399
+0.171825
+-0.393229
+0.153773
+-0.665072
+-0.095439
+0.073723
+0.536678
+-0.823406
+0.161906
+0.443550
+-0.875958
+-0.732995
+-0.451324
+0.739000
+-0.047342
+0.619653
+-0.344325
+0.000625
+0.747358
+0.927524
+-0.559052
+0.881679
+-0.968110
+-0.272850
+-0.746293
+-0.170022
+0.237678
+0.038878
+0.416032
+0.215867
+0.684179
+-0.330765
+-0.481769
+-0.839552
+0.580821
+0.872657
+0.804219
+0.026769
+0.807753
+0.496151
+-0.848942
+-0.279763
+0.690957
+-0.766817
+1.019765
+0.097355
+0.165451
+0.553866
+0.786540
+0.662928
+0.347126
+-0.101818
+-0.907098
+-0.418675
+0.008414
+-0.784801
+0.498016
+-0.257078
+-0.384815
+0.358754
+0.949634
+-0.556947
+-0.830567
+0.613332
+-0.438159
+0.785320
+-0.535049
+0.001720
+0.525746
+-0.242698
+0.640244
+-0.463306
+-0.041770
+0.823867
+0.970004
+0.615847
+-0.652562
+0.925113
+-0.620485
+0.677837
+-0.305438
+-0.333269
+-0.041501
+0.191316
+0.828565
+-0.542631
+-0.875780
+-0.253887
+0.767751
+0.935480
+-0.852945
+0.928266
+0.800051
+0.104247
+0.986406
+-0.030653
+-0.922340
+0.746648
+0.120424
+-0.096830
+0.136303
+0.088963
+0.296400
+0.032974
+0.324445
+-0.597232
+0.696919
+0.402690
+-0.178805
+-0.124405
+0.534143
+-0.737338
+-0.236198
+-0.262734
+-0.544481
+-0.168794
+-0.115035
+0.808550
+-0.010861
+-0.027165
+-1.033302
+-0.555844
+0.609182
+-0.341471
+0.648522
+0.578622
+-0.296902
+0.880330
+0.734709
+-0.384024
+-0.832163
+0.479717
+0.658781
+-0.652765
+-1.018348
+-0.617414
+-0.494121
+0.842959
+-0.101690
+0.284474
+-0.416061
+-0.586093
+-0.247058
+0.153572
+-0.641259
+-0.471519
+-0.389713
+-0.091058
+-0.693503
+0.013275
+-0.158164
+-0.680462
+-0.421360
+0.232633
+0.501782
+0.292618
+0.352119
+0.361266
+-1.029986
+0.949617
+0.648301
+0.510265
+-0.152255
+0.688701
+-0.553313
+-0.710392
+0.638368
+0.743001
+0.621159
+0.860385
+-0.188491
+-0.580258
+-0.295143
+0.011831
+-0.509393
+-0.097740
+-0.080333
+0.915639
+-0.341390
+-0.381762
+-0.083062
+-0.188105
+0.708527
+-0.414995
+0.902875
+0.612612
+-0.646314
+-0.287605
+-0.722428
+0.404270
+-0.279730
+-0.899760
+-1.009976
+-0.353786
+0.194179
+0.065721
+0.026040
+-0.103026
+0.315505
+-0.270059
+0.287416
+-0.842338
+-0.480036
+-0.235643
+-0.283273
+0.794816
+-0.141620
+-0.365460
+-0.752821
+0.037558
+0.162284
+0.721988
+0.900327
+0.557737
+0.671771
+-0.583972
+-0.077074
+-0.849824
+-0.079053
+0.469198
+-0.421527
+-0.646207
+0.661507
+0.675888
+0.456230
+-1.028001
+-0.703454
+0.795311
+-0.644594
+-0.256351
+-0.184313
+-0.724085
+-0.259247
+-0.083020
+-0.844422
+0.670495
+-0.250969
+-0.154526
+0.016455
+0.995618
+-0.330417
+0.782262
+-0.154884
+-0.680190
+-0.250585
+0.475262
+-0.705692
+0.810129
+0.612971
+-0.460023
+-0.296408
+0.530233
+0.570859
+0.085801
+-0.638202
+-0.275504
+-0.182541
+0.602536
+0.209260
+-0.390036
+0.511087
+-0.894466
+0.669754
+0.628600
+0.299378
+0.485242
+-0.809716
+-0.872713
+0.701177
+0.697140
+-0.235581
+0.649160
+-0.445485
+-0.277380
+-0.755472
+-0.861940
+-0.362635
+-0.875837
+-0.617142
+0.789782
+-0.083080
+-0.587883
+0.642659
+0.161765
+0.518873
+0.256557
+0.163036
+0.560118
+-0.016167
+-0.226516
+-0.509976
+0.868576
+0.124876
+0.062003
+0.767675
+-0.460745
+0.667417
+0.313140
+0.597030
+-1.041877
+-0.955063
+0.531829
+-0.583108
+0.739180
+-0.686514
+-0.913191
+0.433996
+0.408913
+0.702859
+0.791997
+0.862393
+-0.925096
+0.369446
+0.662935
+-0.272493
+0.009781
+0.114152
+-0.391928
+0.636276
+-0.337192
+-0.518546
+-0.613067
+0.370207
+-0.503643
+-0.240271
+-0.798878
+0.000662
+-0.952099
+-0.650631
+-0.680800
+-0.954681
+0.159947
+-0.098022
+-0.248444
+0.248128
+-0.282896
+0.743354
+-0.459496
+-0.317013
+0.738184
+-0.095579
+-0.417912
+0.687873
+-0.570424
+-0.840493
+-0.752145
+-0.455521
+-0.041939
+0.204789
+0.360828
+-0.019924
+-0.184804
+0.676823
+-0.282174
+0.511652
+-0.197093
+-0.211970
+-0.674803
+0.377094
+0.329379
+0.414032
+-0.060428
+0.513697
+-0.092739
+-0.897414
+-0.188245
+0.271893
+-0.077372
+-0.979641
+0.417886
+0.568126
+0.128939
+0.929215
+0.070967
+0.498197
+0.176084
+0.657131
+0.522425
+-0.367252
+-0.638586
+-0.785175
+0.339010
+0.423208
+0.900771
+0.062811
+-0.738565
+0.216744
+-0.358394
+-0.659107
+-0.197575
+0.940506
+-0.519243
+-0.983940
+-0.486515
+0.845257
+-0.390334
+-0.534655
+0.967635
+0.553231
+-0.511961
+-0.736986
+0.855452
+-0.833670
+-0.822909
+0.041736
+-0.739291
+0.269999
+0.129650
+-0.554424
+0.153798
+0.439843
+-0.306622
+0.170394
+1.030697
+-0.628878
+-0.544534
+0.157443
+-0.990924
+-0.812485
+0.077977
+-0.851899
+-0.399242
+0.064752
+0.345998
+0.588974
+-0.035191
+0.742714
+-0.648657
+-0.740015
+-0.908722
+-0.586096
+-0.192035
+-0.060193
+0.948475
+0.296910
+-0.244392
+0.673349
+0.148834
+0.650538
+-0.492711
+-0.052064
+0.471091
+-0.534440
+-0.372815
+-0.378424
+0.546041
+0.771606
+0.424161
+0.462064
+0.882599
+-0.856868
+0.397096
+-0.010843
+0.235561
+-0.428763
+0.435597
+-0.821492
+0.363008
+-0.643951
+-0.885177
+-0.173050
+0.417390
+0.725114
+-0.398257
+-0.211077
+0.964601
+-0.097799
+0.803992
+-0.141388
+-0.859700
+-0.208271
+-0.749575
+-0.809022
+0.387400
+-0.227368
+-0.100394
+-1.071902
+-0.727204
+0.749209
+-0.852316
+-0.499424
+0.160251
+0.924669
+0.874374
+0.081007
+-0.195768
+0.858363
+0.019512
+0.479826
+0.337971
+-0.349168
+0.659723
+-0.943733
+0.392741
+0.480944
+0.554204
+0.440411
+0.221875
+0.229352
+-0.806134
+0.348405
+-0.504036
+-0.787668
+-0.415977
+0.754591
+0.467498
+-0.138366
+0.320968
+-0.826326
+-0.252179
+0.748750
+0.799123
+0.777390
+0.274229
+-0.294059
+0.712186
+0.253119
+-0.833584
+0.832026
+-0.387530
+0.147432
+0.675677
+-0.158278
+-0.325335
+-0.091504
+0.690987
+-0.661349
+0.119631
+-0.462591
+-0.476784
+0.880136
+0.218910
+-0.808073
+0.547435
+0.193217
+0.345493
+0.671362
+0.310416
+-0.846470
+0.661546
+-0.439992
+-0.618612
+0.828448
+-0.891086
+0.177613
+-0.436271
+-0.380908
+-0.461719
+-0.978618
+1.002393
+-0.185165
+0.067758
+0.525524
+0.282156
+0.195458
+0.481327
+-0.842148
+1.065994
+-0.947170
+0.008346
+0.394684
+0.322027
+-0.641511
+0.860910
+0.411225
+0.773104
+-0.522410
+0.926551
+0.797642
+0.154869
+-0.255615
+0.802577
+-0.591979
+0.422395
+-0.118877
+0.538519
+0.881743
+-0.001181
+-0.047040
+-0.214180
+-0.270170
+-0.007457
+0.367215
+0.596606
+0.751062
+-0.399171
+0.224033
+-0.400810
+0.433552
+-0.773583
+1.075398
+-0.082893
+0.392292
+0.643479
+-0.922106
+0.398732
+-0.877142
+-0.878222
+-0.583808
+-0.741516
+1.006173
+-0.529476
+0.522563
+0.048948
+0.843594
+-0.368425
+-0.200498
+0.585374
+-0.008169
+0.314676
+-0.187638
+-0.789359
+-0.476420
+0.782534
+-0.564327
+-0.238457
+0.776593
+0.740933
+0.741806
+-0.727811
+0.169886
+0.610044
+-1.013077
+0.882638
+-0.298685
+-0.766764
+-1.012620
+0.056882
+-0.916530
+0.652487
+-0.476020
+0.050170
+-0.503834
+0.089902
+-0.609349
+0.332762
+-0.849537
+0.230854
+0.446510
+0.377133
+0.634607
+0.399783
+-0.754416
+0.514866
+-0.871002
+-0.124907
+-0.352285
+-0.282738
+0.130297
+0.935596
+-0.899959
+-0.349563
+0.132242
+0.221834
+-0.799411
+0.076567
+0.684374
+0.098164
+0.166636
+0.511997
+-0.374504
+-0.592672
+0.018213
+0.030742
+-0.416142
+0.421763
+0.221672
+-0.584992
+-0.083031
+0.859066
+-0.717528
+0.068014
+0.402071
+0.238868
+-0.648929
+-0.985861
+-0.957478
+0.350216
+-0.559123
+-0.856041
+1.016273
+0.973203
+0.808834
+-0.668021
+-0.422265
+-0.205472
+-0.121485
+0.319504
+-0.594871
+-0.032264
+0.525747
+-0.090902
+0.787360
+0.218175
+0.309183
+0.346578
+-0.754435
+0.838250
+0.018219
+0.406841
+0.241293
+-0.510165
+1.066381
+-0.844236
+1.040556
+-0.959575
+-0.055906
+-0.815378
+-0.184698
+-0.364025
+-0.596052
+0.061732
+0.709545
+-0.244634
+0.930503
+-0.033798
+-0.827822
+0.502257
+-0.408878
+0.686311
+0.041263
+0.078044
+-0.879678
+0.224143
+0.049148
+0.765007
+0.015955
+-0.679431
+-0.772166
+-0.943577
+0.957110
+0.577655
+-0.028454
+-0.140411
+-0.011528
+-0.217236
+0.862778
+0.526687
+-1.065887
+0.801486
+-0.367411
+0.386491
+-0.759384
+-0.394916
+0.445731
+-0.147538
+0.723393
+-0.247085
+0.150811
+-0.542507
+1.010123
+-0.294344
+-0.654592
+0.082165
+-0.823010
+0.830634
+-0.335802
+0.981728
+0.118408
+-0.757715
+0.131572
+-0.735343
+0.153904
+0.255122
+-0.652066
+-0.214095
+0.046711
+0.722949
+-0.294240
+-0.626563
+-0.759108
+-0.752127
+-0.102411
+0.148123
+-0.038432
+-0.997748
+-0.713856
+-0.310047
+0.520594
+0.028962
+-0.516144
+-0.593950
+1.039069
+-0.244665
+0.727720
+-0.708206
+-0.921264
+-0.510805
+0.872208
+0.416462
+-0.790920
+0.553118
+-1.001343
+-0.635389
+0.907293
+0.435727
+-0.697092
+0.319978
+-0.011574
+-0.355021
+0.816433
+-0.699880
+0.362584
+0.133465
+-0.983141
+0.650415
+0.871613
+-0.724052
+0.828293
+0.161914
+0.699961
+0.060362
+-0.507320
+-0.386649
+-0.876239
+0.324712
+0.600196
+-0.864683
+-0.451526
+-0.872535
+-0.060098
+0.508329
+0.130934
+-0.106482
+0.165846
+1.046354
+-0.366851
+0.809286
+0.534304
+-0.140217
+0.239323
+0.069644
+0.294845
+0.674799
+0.689025
+0.906768
+-0.162887
+0.458047
+-0.838091
+0.383890
+-0.157417
+0.552649
+0.212386
+-0.278191
+0.219709
+0.864180
+-0.927353
+0.016519
+0.022469
+-0.580018
+0.452550
+-0.845747
+0.362083
+0.943095
+-0.880954
+0.414076
+-0.115425
+-0.575917
+0.682919
+0.103477
+1.036140
+-0.498768
+0.305670
+0.292877
+-0.267348
+-0.930518
+-1.049396
+0.086205
+-0.550815
+-0.546382
+-0.799986
+-0.359831
+0.064379
+-0.333945
+0.513092
+0.673667
+0.337089
+0.329938
+0.303702
+0.890161
+-0.780054
+-0.692061
+-0.025900
+-0.226113
+-0.002033
+0.480921
+-0.408078
+0.136735
+0.676133
+-0.777385
+0.332078
+-0.750967
+-0.795713
+0.620726
+-0.111284
+-0.377501
+0.048740
+-0.610700
+0.411484
+0.256469
+0.372123
+0.540635
+0.172965
+0.779849
+0.177986
+0.928053
+0.236759
+0.317041
+-0.232470
+0.091919
+-0.007613
+-0.162964
+-0.684100
+-0.084949
+-0.387640
+0.668011
+-0.031602
+-1.049910
+-0.572313
+-0.506207
+-0.814468
+-0.695971
+0.344301
+0.704199
+-0.531131
+-0.520833
+-0.261468
+0.653336
+-0.183602
+-0.047840
+-0.382187
+1.014097
+-0.156376
+-0.769519
+-0.093905
+0.781703
+-0.371115
+-0.701033
+-0.278367
+-0.795512
+0.662403
+0.891133
+-0.068340
+-0.807576
+0.429811
+-0.447373
+0.370655
+0.025573
+0.561713
+-0.783890
+0.815145
+0.019337
+-0.999149
+0.133712
+-0.813895
+1.023220
+0.776964
+0.719585
+0.994497
+-0.619863
+-0.383395
+-0.415252
+-0.728126
+0.337294
+0.416623
+-0.570285
+-0.613488
+0.177124
+0.401235
+-0.330198
+0.592062
+-0.080437
+1.048771
+-0.262836
+-0.454495
+-0.515947
+0.605829
+0.742766
+-0.250256
+0.012140
+-0.970676
+-0.419762
+-0.225754
+-0.517892
+0.001378
+0.431909
+0.989935
+0.174970
+0.060837
+0.636118
+0.287327
+-0.022537
+-0.820961
+0.896085
+0.586957
+-0.521419
+-0.441831
+-0.566880
+-0.707586
+-0.665675
+0.414351
+0.372909
+1.005168
+-0.660238
+0.733350
+0.860644
+0.138223
+0.172578
+-0.197696
+0.489565
+-0.684385
+0.052514
+-0.939499
+0.399673
+0.378327
+-0.727447
+-0.549962
+-1.033063
+0.662016
+0.047647
+-0.258413
+0.016141
+0.558710
+-0.523569
+-0.361476
+-0.888204
+-0.679106
+0.935761
+0.698263
+-0.154761
+0.658503
+0.325589
+0.854461
+-0.511822
+-0.151648
+-0.384827
+-0.002875
+0.153524
+-0.244216
+0.103904
+-0.371246
+0.487772
+0.559949
+-0.755003
+-0.613984
+0.617420
+0.021431
+0.726396
+-0.584215
+0.847378
+-0.810705
+0.906487
+0.044515
+1.124820
+0.479593
+-0.107532
+-0.815043
+-0.916760
+0.277940
+-0.454592
+0.396167
+-0.128123
+-0.863876
+-0.388294
+-0.976865
+0.826737
+0.229748
+0.125519
+0.844211
+0.005764
+-0.385699
+0.798713
+0.250879
+-0.538447
+0.655343
+-0.579337
+-0.877936
+0.779991
+0.264937
+0.375724
+0.119797
+0.909701
+0.662177
+-0.183347
+0.363747
+-0.162579
+-0.331851
+0.010469
+-0.433119
+0.175474
+0.980337
+-0.682927
+-0.591061
+0.685695
+-0.204379
+0.660938
+-0.439929
+0.250883
+0.121059
+-0.704233
+-0.864527
+-0.618279
+-0.051563
+0.242696
+0.547848
+0.135918
+-0.182723
+0.047445
+0.214640
+0.323317
+-1.119213
+-0.204546
+-0.571603
+-0.167119
+0.804312
+0.793408
+0.113291
+-0.748359
+0.086088
+0.292164
+-0.444220
+-0.923624
+0.910233
+-0.830135
+-0.201712
+0.714750
+0.281373
+0.122913
+-0.734771
+-0.065465
+0.833678
+0.035826
+-1.042778
+-0.674449
+0.183626
+-0.134760
+-0.284064
+-0.962051
+0.299391
+-0.480062
+0.648374
+0.362493
+0.504248
+-0.586622
+0.242209
+-0.341804
+-0.276229
+0.609024
+-0.132432
+-0.515610
+-0.626486
+0.498951
+-0.491547
+-0.097569
+0.360620
+0.357172
+-0.930601
+0.938693
+-0.108511
+0.792598
+-0.281639
+-0.417705
+0.444003
+-0.123903
+-0.852331
+0.300723
+-0.925429
+0.854710
+0.233531
+0.175697
+0.551331
+-0.179395
+0.782652
+-1.007104
+0.019241
+-0.019372
+0.512916
+0.720581
+0.216053
+-0.880843
+0.719109
+0.622676
+0.171557
+-0.184208
+-0.932958
+0.727340
+0.535654
+-0.936710
+0.390406
+-0.027428
+-0.581503
+-0.766978
+-0.530361
+0.440506
+0.368258
+-0.010109
+-0.081539
+0.067172
+-0.505718
+0.925276
+-0.782642
+0.398536
+-0.275622
+0.269787
+-0.139357
+-0.172312
+-0.081578
+-0.885671
+0.231821
+-0.112169
+-0.851270
+0.369712
+0.263378
+-0.858098
+0.011388
+0.558254
+0.977354
+-0.076547
+-0.891809
+0.299218
+0.159938
+-0.295162
+0.943118
+0.685898
+0.823916
+0.109151
+0.242439
+-0.654688
+-0.989746
+0.375213
+-0.698559
+-0.880694
+0.615328
+-0.485388
+-0.647735
+0.106387
+-0.019789
+0.045820
+0.375215
+0.422060
+0.272100
+-0.718765
+0.944313
+0.647641
+-0.429561
+-0.676996
+-0.427013
+0.795898
+-0.322866
+-0.484392
+0.112212
+0.582526
+0.892613
+-0.402797
+-0.374411
+0.450270
+-0.428851
+1.021214
+-0.428472
+0.026821
+0.311294
+-0.601219
+-0.590664
+-0.446586
+-0.764370
+0.193891
+-0.169185
+-0.648813
+0.589384
+-0.424046
+0.592941
+-0.668138
+0.907919
+0.462799
+0.881448
+-0.652245
+-0.913929
+0.893996
+0.960711
+-0.233801
+0.044587
+-0.129098
+-0.120983
+0.833849
+-0.088606
+0.373292
+-0.383411
+-0.257068
+0.849957
+-0.379015
+0.273383
+-0.528717
+0.189171
+0.067999
+-0.173002
+-0.513355
+-0.484797
+0.187671
+0.487612
+0.347890
+-0.226004
+0.908606
+-0.551856
+0.492297
+-0.368817
+-0.027372
+0.382372
+0.689528
+-0.268702
+-0.870510
+0.607340
+-0.132914
+0.296269
+0.468274
+0.164080
+-0.525686
+0.646887
+0.198154
+-0.928365
+-0.482869
+-0.373093
+-0.301698
+-0.943408
+-0.384526
+-0.012007
+-0.261513
+0.156969
+-0.549064
+0.373910
+-0.465873
+0.230200
+0.038207
+0.889419
+0.772167
+0.174193
+-0.561152
+0.893698
+-0.100236
+-0.455205
+-0.234004
+-0.596644
+0.864237
+-1.042735
+-0.909086
+-0.835325
+0.102632
+0.855006
+0.839282
+0.858280
+0.263794
+0.694669
+-0.215459
+-0.504728
+-0.320316
+0.670185
+0.844286
+0.619844
+0.977153
+0.956275
+-0.844200
+-0.937226
+-0.444886
+0.324157
+-1.038254
+-0.891556
+-0.925258
+0.622931
+0.061779
+0.513812
+-0.489343
+0.666853
+0.858890
+0.702596
+-0.796879
+-0.488752
+0.747407
+-0.688428
+-0.339350
+0.152013
+0.283920
+-0.273245
+-0.204882
+0.489418
+0.749878
+0.366433
+0.599528
+0.240919
+-0.803260
+0.427880
+0.139222
+-0.509875
+0.292484
+0.658784
+0.497494
+0.499696
+0.683537
+-0.350145
+-0.793808
+0.303098
+-0.876403
+0.033350
+-0.717036
+-0.503406
+0.545020
+-0.454520
+-0.741598
+0.212924
+-0.872034
+1.053559
+-0.148718
+0.723704
+-0.799017
+-0.422354
+0.166477
+-0.564355
+0.336397
+0.591048
+0.378405
+0.425537
+0.744827
+-0.752860
+0.266316
+-0.377813
+-1.028171
+-0.456972
+-0.703458
+-0.523796
+-0.678639
+0.514693
+0.822149
+-0.632936
+0.393243
+0.250275
+0.611664
+-0.174235
+-0.737010
+-0.005437
+0.340276
+0.838721
+-0.137888
+-0.932064
+-0.950499
+0.378837
+0.242386
+-0.009767
+-1.036712
+-0.124018
+0.495488
+0.605420
+0.940191
+0.308130
+-0.534111
+-0.323275
+0.879645
+0.827898
+0.661278
+-0.559380
+0.844794
+-0.217672
+0.475115
+-0.047204
+0.345474
+-0.328964
+-0.785039
+0.841492
+-0.413216
+-0.508480
+-0.444870
+-0.519830
+0.914757
+0.409455
+0.913197
+0.287060
+-0.156301
+-0.798879
+-0.729794
+0.531166
+0.352709
+-0.749876
+0.833156
+-0.759213
+-0.014703
+-0.249677
+0.759590
+-0.403034
+-0.649857
+-0.863639
+-0.163787
+0.315097
+0.312934
+-0.396843
+-0.255833
+0.621984
+-1.006258
+-0.400012
+0.050139
+0.145094
+-0.308117
+-0.002898
+-0.728277
+0.634889
+0.522512
+0.899487
+-0.597043
+0.824695
+-0.020362
+-0.079795
+0.179772
+-0.420470
+-0.363872
+0.268765
+0.398874
+-0.231692
+-0.111465
+0.258897
+0.649919
+0.822027
+-0.201338
+-0.794825
+-0.113552
+-0.749719
+0.207938
+0.826137
+0.358607
+-0.557921
+0.489632
+-0.666933
+0.560357
+-0.861993
+-0.416505
+-0.081307
+-0.802400
+0.033854
+-0.744127
+0.938226
+0.129264
+-0.427413
+-0.099323
+0.648491
+-0.285729
+0.913275
+0.823961
+-0.869335
+0.536675
+0.691438
+-1.026136
+0.010935
+0.586200
+0.869307
+-0.528003
+-0.707572
+0.776114
+-0.637909
+0.676541
+0.725407
+0.359465
+-0.883323
+0.016261
+-0.318453
+-0.922181
+0.481362
+0.242035
+0.937053
+-0.264928
+0.425398
+-0.857287
+0.011865
+0.946207
+-0.075178
+0.756372
+0.052295
+0.458718
+0.246473
+0.665913
+-0.985397
+-0.769695
+0.297270
+-0.482510
+-1.084587
+0.425825
+-0.338939
+0.855994
+0.270738
+0.984677
+-0.452509
+-0.598318
+0.056441
+0.473040
+-0.798905
+0.519779
+0.098384
+-0.890203
+0.649690
+0.558789
+0.787593
+0.484100
+0.403358
+-0.042470
+-0.461791
+0.973339
+-0.589676
+0.207639
+-0.122768
+-0.079807
+-0.392622
+-0.197071
+-0.164915
+-0.857682
+1.010310
+-0.237179
+0.803619
+0.954722
+0.829172
+0.802873
+0.097824
+0.276507
+-0.730738
+0.480110
+-0.424839
+-0.790760
+0.028080
+-0.929002
+0.370671
+-0.488473
+0.249680
+-0.033088
+0.016566
+0.658863
+-0.560142
+-0.662888
+0.173692
+0.325621
+0.025628
+0.989624
+0.668649
+-0.574863
+-0.736922
+-0.510011
+-0.889690
+-0.736166
+-0.755951
+-0.283447
+0.881340
+-0.142005
+0.134336
+-0.084075
+-0.372742
+-0.305135
+0.743756
+1.086483
+0.878611
+-0.423928
+0.545465
+0.687845
+-0.032541
+-0.328547
+-0.033158
+-0.318778
+-0.258626
+-0.414057
+-0.819861
+-0.582858
+0.549499
+1.007847
+-0.246067
+0.545346
+-0.951898
+0.365618
+0.396795
+0.555588
+-0.181273
+-0.576646
+-0.459857
+-0.319960
+-0.930174
+0.663236
+0.803204
+0.172372
+-0.539103
+0.927379
+0.158599
+-0.312681
+0.185468
+0.294113
+-0.974326
+0.085773
+-0.365085
+-0.122152
+-0.493459
+0.906644
+-0.090866
+0.498552
+-0.221293
+-0.766804
+0.364223
+-0.936192
+0.448397
+0.538699
+-0.797405
+-0.354971
+-0.169343
+1.047643
+0.733433
+0.540466
+0.573073
+0.900899
+-0.357505
+0.403512
+0.659557
+-0.317090
+-0.734112
+0.665835
+0.362047
+0.711134
+-0.260296
+0.411996
+0.078731
+-0.057999
+-0.795882
+0.860397
+0.433062
+-0.213614
+-0.231018
+0.768233
+-0.807383
+-1.123841
+0.450244
+-0.586905
+-0.220124
+0.070935
+-0.602306
+0.492750
+-0.095749
+-0.344891
+0.503837
+0.217538
+0.473954
+-0.757080
+0.593108
+0.479133
+0.098686
+-0.397732
+0.863119
+-0.779288
+-0.782953
+0.302287
+-0.608695
+0.313492
+0.571150
+-0.211731
+0.346821
+0.832238
+-0.837296
+-0.849743
+0.397999
+-0.101327
+-0.562165
+0.323774
+-0.588161
+0.081131
+0.547573
+-0.448577
+-0.196219
+0.443992
+-0.552106
+0.855899
+0.926724
+-0.399734
+-0.144510
+1.056545
+0.004376
+-0.027342
+0.273883
+-0.735154
+-0.081063
+0.117005
+0.626735
+0.311891
+0.580433
+0.624421
+0.476354
+0.081414
+-0.966143
+0.287854
+0.041586
+-0.053197
+0.330163
+0.931580
+-1.016114
+0.697513
+0.578201
+0.676674
+-0.066126
+-0.315757
+-0.558200
+0.580082
+-0.951427
+0.075563
+0.706755
+0.739428
+0.759716
+0.011878
+0.663528
+0.293786
+-0.984353
+0.544148
+-0.344318
+-0.537762
+0.669748
+-0.573520
+-0.935452
+0.634535
+0.858160
+0.730851
+-0.596755
+0.353139
+-0.217610
+-0.370390
+0.578360
+-0.270078
+0.607234
+-0.252232
+0.779281
+-0.801583
+0.893292
+-0.064070
+-0.250602
+-0.702355
+-0.610219
+-0.430074
+0.770966
+-0.773363
+-0.244720
+1.028968
+-0.464449
+0.557326
+0.713756
+-0.371849
+0.607441
+0.741259
+0.999705
+0.281927
+0.512367
+0.500155
+0.756607
+0.360603
+-0.457709
+0.494221
+-0.124461
+-0.593073
+0.599911
+-0.381849
+0.328351
+0.466566
+1.014891
+-0.090437
+-0.587362
+0.257196
+-1.057800
+-0.221578
+-0.212097
+-0.576009
+-0.157214
+-0.762271
+0.118947
+0.612273
+-0.257698
+-0.168851
+-0.294445
+0.268441
+0.262434
+0.446817
+0.787970
+0.918270
+0.050928
+-0.209094
+-0.750123
+-0.903529
+0.735079
+-0.730433
+-0.141556
+0.827334
+0.365431
+0.547390
+-0.220726
+-0.815496
+0.747385
+0.691800
+0.031309
+0.881199
+-0.101972
+0.470113
+-0.246496
+-0.043821
+0.870262
+0.852568
+0.312289
+0.855329
+0.781940
+-0.310491
+0.434961
+0.211358
+0.817595
+0.513265
+-0.171021
+-0.817791
+0.910924
+-0.069876
+-0.387877
+-0.028130
+0.449625
+-0.387643
+0.206319
+0.515542
+-0.001148
+-0.349370
+-0.294368
+0.389642
+0.703145
+0.246549
+0.440579
+-0.773421
+0.566847
+0.386351
+0.032171
+0.013658
+0.407999
+0.142267
+0.537533
+-0.640599
+-0.613781
+-0.303601
+0.969100
+0.757984
+-1.048144
+-0.864512
+0.871368
+-0.308029
+0.391861
+0.135757
+0.810823
+0.693336
+0.270191
+0.461597
+-0.436606
+0.062587
+-0.505560
+-0.462031
+0.061369
+0.373819
+0.416050
+-0.769799
+0.760292
+0.527858
+0.563718
+0.124689
+0.987155
+0.995816
+-0.195316
+0.972889
+-0.782868
+-0.434972
+0.907496
+0.257251
+0.681083
+-0.867393
+0.494764
+0.178935
+-0.780790
+0.762986
+0.354016
+-0.042195
+0.187509
+-0.016213
+0.114176
+-0.650966
+-0.993954
+0.435992
+0.555580
+-0.974948
+0.143991
+-0.584414
+-0.371415
+-0.209141
+-0.252108
+-1.078551
+0.107922
+0.508124
+-0.444154
+0.547608
+-0.479825
+-0.347039
+0.089253
+0.429737
+-0.809192
+-0.513292
+0.973528
+-0.952640
+0.398033
+0.458972
+0.269110
+0.435688
+-0.573975
+-0.971887
+0.059264
+0.125963
+-0.409268
+0.035965
+-0.905775
+0.845104
+0.769129
+-0.625110
+0.849937
+0.178924
+-0.382447
+0.694302
+-0.208794
+0.553015
+-0.460699
+0.683768
+0.172009
+-0.854329
+-0.850594
+-0.095001
+0.273636
+-0.191540
+-0.669758
+0.316724
+0.728684
+-0.154086
+-0.966374
+-0.115649
+0.660960
+-0.079287
+-0.080378
+0.210085
+-1.107853
+-0.908085
+-0.027363
+-0.834895
+-0.872349
+0.337958
+0.476406
+-0.318694
+-0.423561
+-0.162713
+-0.544877
+-0.501600
+0.250939
+0.855207
+0.337895
+0.536872
+0.294486
+-0.303579
+0.160595
+-0.390470
+0.638562
+0.462434
+-0.561018
+0.910332
+-0.002194
+-0.006881
+0.222526
+-0.941934
+0.675760
+-0.085133
+-0.174570
+0.460486
+0.437654
+0.627377
+0.255673
+0.809197
+-0.848245
+0.454946
+-0.439296
+0.992034
+0.796091
+0.119735
+-0.344241
+-0.448294
+-0.232548
+-0.069546
+0.616182
+-0.658595
+0.516160
+0.612068
+0.035615
+-0.905608
+0.208963
+-0.050794
+-0.483108
+0.269260
+0.637728
+0.663266
+0.027024
+-0.288231
+-1.029475
+-0.461287
+0.353564
+-0.044065
+0.437590
+0.305736
+0.592858
+-0.762553
+0.958902
+0.047384
+0.817349
+0.751864
+0.394768
+-0.425245
+0.287638
+-0.423702
+-0.809955
+-1.026301
+-0.242007
+0.788621
+0.070349
+-0.602034
+-0.166179
+-0.629087
+0.455160
+0.042502
+0.120958
+0.202995
+-0.220553
+-0.263799
+-0.984593
+0.713737
+-0.842125
+0.316335
+0.374220
+0.442930
+0.065941
+-0.240236
+-0.251535
+-0.772795
+0.669129
+0.430238
+0.311866
+-0.932878
+-0.953584
+-0.551282
+-1.028388
+-0.844979
+0.574795
+0.675089
+-0.639070
+-0.934356
+0.024242
+0.093712
+-0.964700
+-0.669840
+-0.815758
+-0.869801
+-0.701042
+0.435921
+-0.582897
+0.848844
+-0.262535
+0.202685
+0.238948
+-0.806640
+0.363169
+-1.030508
+-1.019382
+0.034888
+0.518239
+0.139781
+-0.427348
+0.227875
+-0.501257
+-0.917657
+0.326784
+0.881099
+0.409130
+0.368796
+0.568827
+0.274574
+-0.152628
+0.270148
+-0.696550
+-0.522698
+-0.029240
+0.328651
+0.895881
+-0.901340
+-0.751624
+-0.816616
+-0.963344
+0.364433
+-0.656301
+0.440738
+-0.960819
+-0.641325
+-0.018655
+-0.204670
+0.730332
+-0.902443
+0.602273
+-0.161501
+-0.873258
+-0.498224
+0.886280
+-0.817611
+0.025366
+0.904176
+-0.838968
+0.699662
+0.702881
+-0.718065
+-0.076693
+0.067600
+-0.660008
+0.640638
+-1.118454
+-0.505432
+0.689607
+0.129637
+0.153920
+0.057386
+0.602384
+-0.010780
+-0.925851
+-0.840499
+-0.014606
+-0.150949
+0.162792
+0.773739
+0.075248
+0.067932
+0.785528
+-0.989695
+0.637109
+-0.667586
+0.903334
+0.927064
+-0.167299
+-0.275688
+-0.083575
+-0.790901
+0.573443
+0.364381
+0.731121
+0.864659
+-0.959282
+0.802643
+-0.305351
+-0.403841
+0.836521
+0.606478
+0.801693
+-0.897342
+0.374531
+-0.318106
+0.583133
+1.021301
+-0.911893
+0.933503
+0.038320
+0.934804
+0.866548
+0.120430
+-0.865103
+0.542008
+0.013189
+0.841313
+0.728111
+-0.571179
+-0.564262
+-0.514917
+0.051512
+-0.961624
+0.215374
+0.901006
+-0.175337
+-0.782128
+0.064289
+0.696714
+-0.140682
+-0.679240
+0.237348
+-0.971343
+0.733752
+0.649073
+0.771115
+-0.718868
+-0.908284
+0.246905
+0.097458
+0.283050
+0.972596
+0.624061
+0.476613
+-0.837006
+0.738873
+0.966121
+-0.985497
+-0.882623
+-0.822626
+-0.060578
+-0.986925
+-0.347509
+0.271896
+0.983911
+0.816200
+0.386008
+0.751953
+0.057630
+0.404768
+-0.410544
+0.186119
+0.929138
+-0.893528
+-0.818877
+-0.164575
+-0.434644
+0.993578
+-0.645710
+-0.161759
+0.593573
+-0.693882
+0.209741
+-0.348800
+0.559135
+-0.499129
+0.723239
+0.036282
+0.295370
+0.671051
+-0.675991
+0.613962
+0.924202
+-0.086467
+-0.215037
+0.404287
+0.411774
+-0.486767
+0.514503
+-0.098360
+0.773335
+0.594849
+-0.951361
+-0.264055
+0.065290
+0.840939
+-0.972021
+0.022909
+-0.243975
+0.671898
+-0.090071
+0.198027
+-0.414452
+-0.029725
+0.365555
+-0.156035
+0.351453
+0.861664
+0.089194
+-0.276067
+0.162537
+0.993722
+-0.350143
+0.921678
+-0.602289
+-0.495894
+0.138006
+0.722670
+0.147612
+1.020218
+-0.776335
+0.215500
+0.376624
+0.174502
+-0.133242
+-0.587061
+-0.272859
+0.220805
+0.811645
+-0.782398
+0.037762
+0.713695
+0.835905
+0.121201
+-0.197437
+0.634547
+-0.244039
+-0.911778
+-0.282569
+0.093152
+0.548613
+-0.737535
+0.528069
+0.333361
+-0.804560
+-0.536469
+0.514684
+0.110779
+0.085002
+-0.939576
+-0.841903
+0.854754
+0.437252
+0.516300
+-0.707298
+-0.895079
+-0.689909
+-0.536880
+-0.548683
+-0.700049
+0.867143
+-0.340454
+-0.566934
+-0.491435
+0.208120
+-0.142197
+0.685986
+0.785387
+0.625931
+0.351195
+-0.736482
+-0.635094
+1.010816
+0.601345
+0.785337
+-0.175973
+0.632924
+-0.840255
+-0.483447
+0.376454
+0.866373
+-0.620701
+0.657096
+0.825471
+-0.837201
+-0.334958
+0.531337
+-0.673009
+0.341023
+1.056645
+0.561152
+0.862280
+-0.293936
+0.746742
+-0.771563
+0.555192
+-0.554280
+0.488362
+-0.115183
+-0.422951
+-0.041818
+-0.148579
+0.705290
+0.816163
+0.844904
+-0.535837
+-0.415498
+0.152615
+0.145862
+0.282387
+0.343757
+0.142814
+0.734970
+-0.699360
+0.914554
+0.330411
+0.891968
+-0.089241
+0.631890
+0.473243
+-0.101620
+-0.135044
+-0.587017
+-0.548670
+0.521944
+0.475938
+0.638962
+-0.171317
+-0.184792
+-0.150676
+0.672516
+0.783873
+-0.363423
+0.844651
+0.198668
+-0.458430
+0.592094
+0.134014
+-0.721718
+0.081312
+-0.843832
+-0.863713
+0.672823
+-0.527087
+0.504752
+-0.110715
+-0.464898
+0.884312
+-0.566470
+-0.729097
+-0.701169
+-0.286439
+-0.055280
+-0.732935
+-0.483842
+-0.411671
+0.636204
+-0.776325
+0.513446
+0.702566
+0.068206
+0.963424
+0.512956
+0.766693
+-0.811089
+-0.945760
+-0.759872
+-0.512500
+0.232565
+-0.269037
+-0.603957
+0.239781
+-0.487587
+-0.149485
+-0.929080
+-0.178353
+-0.139014
+0.338684
+0.297071
+-0.612051
+0.067170
+0.178792
+-0.652219
+-0.650983
+-0.240919
+-0.400767
+-0.850070
+0.290965
+0.749924
+0.344469
+-0.859631
+0.893171
+0.260440
+0.346831
+0.790519
+-0.089500
+-0.812372
+0.668267
+-0.554174
+0.434990
+-0.211082
+0.281283
+-0.027531
+-0.865026
+-0.052772
+-0.992048
+-0.495033
+0.493384
+0.025865
+0.306932
+0.565411
+0.971530
+0.951557
+0.590299
+-0.120783
+-0.531292
+0.041216
+0.160691
+-0.326343
+0.043082
+0.961378
+0.237025
+0.792431
+-0.266052
+-0.221689
+-0.617325
+0.717546
+-0.077368
+0.594270
+-0.399259
+0.304003
+-0.254861
+-0.028938
+-0.546191
+-0.661087
+-0.229177
+-0.654851
+0.830425
+-0.656701
+0.854843
+0.907733
+0.869484
+0.380190
+0.693053
+-0.328325
+0.165334
+0.606160
+0.057150
+0.208122
+-1.009030
+-0.928488
+-0.236405
+-0.048676
+-0.696202
+0.791612
+0.602930
+-0.016121
+-0.056384
+0.354579
+0.542230
+-0.591294
+0.691858
+-0.799273
+-0.642387
+0.636918
+0.231498
+0.984391
+0.360552
+0.877515
+0.294372
+1.012600
+-0.672168
+0.290394
+0.185225
+1.075658
+0.651011
+0.427679
+0.763072
+0.286271
+-0.750419
+-0.069950
+-0.568265
+-0.803693
+-0.564942
+-0.776848
+0.013179
+-0.412617
+-0.206888
+0.532576
+0.660347
+0.949574
+1.046957
+-0.828760
+-0.170947
+0.671353
+-0.035218
+-1.042103
+0.229972
+0.632886
+-0.760030
+-0.068357
+-0.475760
+0.781357
+-0.571882
+-0.943668
+-0.262633
+-0.742997
+0.047070
+0.757597
+-0.470620
+0.426534
+0.586815
+-0.587176
+0.655371
+0.932734
+0.297453
+-0.122451
+0.672175
+0.137244
+-0.627068
+-0.740422
+-0.687694
+-0.707413
+0.305712
+0.554951
+-0.398459
+-0.877023
+-0.972040
+-0.170379
+0.324521
+0.872183
+0.240306
+-0.467263
+-0.453947
+-0.867517
+0.890261
+0.881733
+0.329366
+0.744769
+-0.671631
+-0.712255
+0.121065
+0.001800
+1.023030
+-0.085663
+-0.781898
+-0.082515
+-0.049361
+-0.828349
+-0.736527
+-0.260562
+0.589528
+1.014974
+0.495466
+-0.737883
+0.065683
+0.086018
+0.493422
+-0.231513
+0.546300
+0.581906
+-0.521094
+-0.894859
+-0.072876
+0.455349
+-0.640856
+-0.612290
+-0.463062
+-0.043562
+0.378727
+0.237521
+0.710867
+0.849039
+-0.694601
+0.158086
+0.589298
+0.999073
+-0.215518
+0.353006
+-0.941002
+0.662488
+-0.407861
+0.867208
+0.242691
+0.629512
+0.702466
+0.462364
+-1.033680
+-0.472834
+0.368941
+-0.070470
+0.876000
+0.152498
+-0.152628
+-0.178766
+-0.610702
+-0.325331
+0.992531
+0.855963
+0.404541
+0.206947
+0.977473
+0.713103
+-0.406799
+0.319427
+-0.135793
+-0.842364
+-0.660845
+-0.265880
+-0.785755
+0.009909
+-0.949786
+0.217087
+0.687977
+-0.788252
+0.987801
+0.824699
+-0.706849
+-0.204160
+-0.703075
+0.380462
+0.490334
+0.834894
+0.298177
+-0.730557
+0.363443
+1.007419
+-0.315479
+-0.801056
+-0.868025
+-0.837509
+-0.678677
+-0.061467
+0.477243
+0.657720
+-0.451636
+0.385222
+0.383493
+0.705230
+0.234413
+-0.584737
+-0.882183
+-0.440572
+0.055275
+0.300689
+-0.471550
+0.422526
+-0.927188
+-0.326477
+0.657399
+0.055708
+-0.297145
+0.531813
+0.976173
+0.089838
+0.164692
+-0.609456
+0.256963
+-0.407184
+-0.106426
+0.422661
+0.377984
+0.621883
+-0.567114
+-0.022949
+0.019805
+0.883293
+0.937113
+0.141971
+0.066439
+0.372502
+-0.379979
+0.019386
+-0.047244
+-0.270553
+0.397345
+-0.279262
+-0.739893
+0.885130
+-0.602210
+-0.663823
+0.335355
+-0.990832
+-0.987988
+0.242182
+0.187156
+0.541828
+-1.043259
+0.173044
+-0.215672
+-0.916889
+1.006106
+0.326618
+0.695752
+-0.306188
+0.385556
+-0.431108
+0.067467
+-1.075283
+0.946686
+-0.058316
+0.315942
+-0.894946
+-0.055131
+1.000432
+0.319097
+0.501520
+0.266194
+0.140424
+-0.448259
+0.878064
+-0.086960
+-0.145980
+0.151878
+-0.526667
+0.738976
+0.902409
+0.620188
+0.069757
+0.800409
+0.028586
+0.043936
+0.200115
+0.602038
+-0.342940
+-0.843159
+0.753583
+-0.539738
+0.984195
+-0.917035
+-0.021669
+0.173023
+-0.181014
+-0.712184
+-0.014739
+-0.322196
+0.865642
+0.265067
+-0.228445
+0.743901
+-0.773444
+-0.620429
+0.899130
+-0.773487
+-0.229219
+-0.355504
+0.104381
+0.784131
+0.632634
+-0.257340
+0.285369
+-0.262033
+-0.360262
+0.263729
+0.301736
+0.239002
+0.428434
+0.460424
+-0.248936
+0.331741
+0.734280
+0.112331
+0.989605
+-0.418688
+0.882858
+0.944777
+0.137107
+-0.260385
+0.471244
+-0.067833
+0.313953
+-0.361044
+-0.586853
+0.844351
+-0.145863
+-0.395661
+0.438981
+0.675384
+0.187990
+-0.771811
+-0.980092
+0.299035
+0.487717
+0.758027
+0.228708
+-0.226642
+0.020003
+-0.785554
+-0.939330
+0.711765
+-0.530963
+-0.042854
+-0.058748
+0.509291
+0.015117
+0.857203
+0.916507
+0.805472
+0.846959
+-0.392986
+0.048919
+-0.938911
+0.685184
+0.790183
+-0.445155
+0.046113
+-0.376589
+-0.545041
+-0.759346
+0.369454
+-0.458699
+-0.482280
+-0.401971
+0.674722
+-0.635710
+0.721441
+0.371110
+0.532500
+0.028705
+0.225007
+0.120005
+-0.493982
+1.004578
+-0.809023
+-0.707757
+0.489149
+0.040882
+-0.341726
+-0.497460
+0.481706
+-0.666578
+-0.828696
+0.607957
+-0.791604
+-0.477768
+-0.747675
+-0.356662
+0.231792
+-0.325066
+-0.917836
+0.306314
+0.101921
+-0.594821
+-0.594033
+0.375065
+-0.168950
+-0.963021
+0.019512
+-0.434128
+-0.007572
+-0.049038
+-0.677325
+-0.682078
+0.132902
+-0.476968
+0.521661
+0.037992
+0.901534
+-0.855298
+0.848710
+-0.991199
+0.187933
+-0.120372
+-0.396277
+-0.842930
+0.426959
+0.967135
+-0.206974
+-0.891475
+0.731850
+-0.383906
+-0.411079
+-0.679460
+0.618100
+0.386776
+0.253308
+0.804376
+-0.523986
+0.243481
+-0.429167
+0.748939
+-0.819019
+0.168128
+-0.509195
+-0.878698
+-0.227448
+-0.723735
+1.035553
+0.191116
+-0.486374
+0.802054
+0.091627
+0.271415
+-0.571049
+-0.968751
+-0.385825
+0.902602
+-0.178831
+-0.554037
+0.248757
+1.063235
+-0.439800
+0.335979
+-0.982182
+0.639231
+-0.509776
+-0.441707
+0.388961
+-0.701391
+0.597040
+-0.336225
+-0.310141
+0.488005
+-0.984650
+0.202459
+-0.430054
+0.100226
+-0.313303
+0.222104
+-0.475310
+0.791674
+-0.824377
+-0.892869
+0.579603
+-0.566294
+0.580039
+0.289955
+-0.800393
+0.503936
+-0.062958
+-0.528795
+0.571725
+0.594508
+0.532421
+0.973849
+0.274625
+0.686995
+-0.174328
+-0.123781
+0.211393
+0.146583
+-0.078065
+-0.028535
+-0.253480
+0.985558
+-0.460392
+0.414286
+0.320029
+-0.304144
+0.491694
+-0.658751
+0.161708
+0.517571
+-0.757849
+-0.749106
+-0.995579
+0.178174
+-0.140351
+0.623654
+-0.577092
+-0.339949
+-0.224834
+-0.349341
+-0.732807
+0.150201
+0.420649
+0.132347
+0.027861
+-0.712736
+0.495447
+-0.861709
+0.132889
+-0.151392
+0.672599
+-0.037982
+0.909231
+0.269648
+-0.178115
+-0.657740
+0.433458
+-0.852457
+0.404261
+-0.036007
+-0.862473
+-0.542947
+-0.780396
+0.424836
+0.966140
+0.531414
+-0.637366
+-0.965482
+0.597576
+0.683620
+0.336884
+0.827941
+0.490399
+0.333429
+-0.095898
+-0.196097
+0.058579
+0.085625
+-0.733787
+0.932018
+-0.216874
+1.030663
+0.467584
+-0.725445
+0.353800
+0.494840
+-0.854875
+-0.817183
+0.206764
+0.321255
+0.079228
+-0.201352
+-0.150748
+0.556533
+0.607681
+0.628834
+-0.899560
+-0.573127
+0.525878
+-0.102372
+0.336442
+-0.959009
+0.964807
+-0.647619
+-0.383221
+0.152693
+0.334886
+-0.353530
+-0.860690
+-0.123557
+-0.465753
+-0.150262
+-0.983985
+0.168888
+1.013422
+1.014049
+-0.117683
+-0.086272
+-0.429276
+1.005706
+0.073283
+0.020404
+0.815341
+0.623783
+-0.729399
+-0.221058
+-0.267751
+-0.397628
+-0.151312
+0.204756
+-0.301384
+-0.383431
+0.776864
+-0.789766
+-0.863776
+-0.103252
+-0.898613
+-0.724839
+-0.071091
+0.609553
+0.756182
+0.919541
+0.220219
+0.484737
+0.748689
+-0.150334
+0.241545
+0.902720
+0.397141
+0.084055
+0.906629
+-0.646372
+0.774115
+0.143586
+-0.034794
+-0.475173
+0.542938
+-0.464824
+0.293921
+0.050686
+0.971119
+-0.599828
+-1.118108
+0.256386
+0.780749
+0.157989
+-0.505999
+0.509322
+-0.248805
+-0.311675
+0.907881
+-0.598611
+0.645580
+-0.310562
+-0.857309
+-0.728468
+0.015469
+-0.028149
+0.540834
+-0.920429
+-0.290788
+0.928362
+-0.414907
+-0.327476
+0.441164
+0.583409
+0.098442
+0.958951
+-0.774539
+-0.235495
+0.410581
+-1.025379
+0.542921
+-0.739449
+-0.399873
+-0.397406
+0.048315
+-0.734957
+-0.558715
+-0.234914
+-0.543819
+0.254704
+0.542228
+-0.984641
+-0.418364
+-0.596145
+0.150755
+0.925769
+-0.114757
+0.168263
+0.942877
+0.653780
+0.347617
+0.272333
+0.442042
+-0.686785
+-0.168305
+-0.842055
+-0.105091
+-0.128352
+0.063713
+-0.299427
+0.337537
+0.837557
+-0.130031
+-0.753056
+0.322472
+-0.566955
+0.074972
+0.111782
+0.269836
+-0.942069
+-0.603113
+0.843745
+-0.139380
+-0.692856
+-0.967508
+-0.424239
+0.066423
+-0.221732
+0.569398
+0.066506
+-0.391693
+-0.242780
+-0.732077
+0.149755
+0.351083
+0.302630
+-0.582596
+-0.386395
+-0.183623
+0.966644
+0.789149
+-0.075842
+-0.352540
+-0.436082
+0.697826
+-0.602146
+-0.426023
+-0.234825
+0.640603
+-0.906764
+-0.263605
+0.679756
+-0.097936
+0.817584
+0.169146
+0.970185
+0.175714
+0.072141
+0.308728
+0.336936
+0.212422
+-0.111010
+0.440603
+-0.479413
+0.015407
+0.983946
+0.886304
+0.324905
+0.588979
+0.579320
+0.275706
+0.285368
+1.013473
+-0.568617
+0.568075
+0.517130
+-0.738048
+-0.271759
+0.899777
+0.217974
+-0.178568
+0.791489
+-0.853556
+0.989027
+0.480035
+0.844579
+-0.981511
+0.338441
+-0.473796
+-0.638530
+-0.588671
+0.635197
+0.591879
+-0.556718
+-0.125590
+0.319547
+-0.967907
+0.123040
+0.789902
+0.665011
+-0.329125
+0.478364
+0.109307
+-0.290525
+-0.894531
+-0.240326
+0.074564
+0.065385
+0.240711
+0.036174
+0.110401
+0.611910
+0.715376
+-0.657667
+-0.125086
+-0.256414
+-0.764204
+0.601189
+-0.497578
+0.220239
+-0.553116
+-0.523615
+0.653471
+0.782057
+-0.505663
+0.822176
+0.471112
+0.753155
+0.175555
+0.981854
+0.475039
+-0.162556
+-0.854389
+-0.415641
+-0.161198
+0.636373
+-0.174349
+0.917813
+0.134310
+-0.333569
+0.005728
+0.723776
+0.350668
+0.771732
+0.283820
+0.201265
+0.333138
+0.331630
+-0.181867
+0.021145
+0.904232
+0.764831
+-0.971451
+-0.624833
+-0.288677
+0.991363
+0.594959
+0.996751
+-0.863153
+0.975269
+0.930608
+-0.914952
+-0.806151
+-0.702425
+-0.364060
+-0.121201
+-0.787913
+-0.478929
+0.521020
+-0.086642
+0.723969
+-0.858755
+-0.322847
+0.884615
+-0.704939
+0.827900
+-0.204044
+0.190652
+-0.401216
+-0.405459
+0.127063
+-0.352446
+-0.353193
+0.188825
+0.750221
+-0.907403
+0.271265
+-0.922954
+0.137915
+0.257371
+-0.956424
+0.586903
+-0.953747
+0.500177
+-0.412806
+0.865428
+0.010787
+-0.770915
+-0.559426
+-0.713440
+0.832730
+0.248649
+-0.612747
+-0.330172
+-0.926398
+-0.253683
+0.716263
+-0.429827
+-0.280277
+0.925019
+-0.584903
+-0.116180
+-0.033976
+0.742641
+0.031490
+0.956815
+-0.909955
+-0.249328
+-0.747550
+0.504831
+-0.432827
+0.007504
+-0.733094
+-0.856354
+0.596933
+-0.595910
+0.304308
+-0.403826
+0.099262
+0.407866
+-0.440636
+-0.576472
+0.914398
+-0.714983
+0.836696
+-0.292429
+-0.837751
+-0.474185
+-0.696081
+0.520918
+-0.312060
+-0.905161
+0.774177
+0.830023
+0.545235
+-0.154114
+-0.723632
+0.072803
+0.057497
+-0.965945
+-0.082985
+0.821692
+-0.028220
+-0.057074
+-0.373168
+0.512166
+-0.690512
+0.356936
+-0.568974
+-0.754530
+-0.166422
+0.318494
+-0.111881
+-0.126356
+0.023152
+0.234441
+-0.321211
+-0.606641
+0.697223
+-0.109827
+-0.846685
+-0.723170
+0.485775
+-0.554214
+1.005024
+-0.829971
+0.197350
+-0.408442
+0.636681
+-0.568623
+0.528360
+-0.055410
+-0.186622
+0.057791
+-0.800767
+0.579924
+-0.500492
+-0.672450
+0.785899
+-0.128212
+-0.922419
+0.824682
+-0.808977
+0.082799
+-0.890509
+-0.841352
+-0.879768
+-0.402624
+-0.911437
+-0.739361
+-0.728449
+0.116823
+-0.001946
+-0.836037
+0.765454
+-0.305344
+-0.994249
+-0.091206
+0.999428
+0.161136
+-0.691921
+-0.734222
+-0.956654
+-0.808074
+-0.372422
+0.771173
+0.925479
+-0.314875
+-0.756619
+-0.231875
+0.097648
+0.433179
+-0.614591
+1.089579
+0.132917
+1.053131
+-0.519718
+-0.771876
+0.708198
+-0.551576
+0.662777
+-0.588058
+0.336814
+0.983224
+0.671806
+-0.554738
+0.430450
+0.969819
+0.224871
+-0.518850
+0.986458
+-1.063770
+0.703380
+0.567472
+0.362106
+-0.732481
+-0.120127
+-0.097498
+0.158186
+-0.241921
+0.532755
+0.199350
+0.871128
+0.669259
+1.020327
+-0.220802
+-0.727227
+-0.368236
+0.009911
+-0.771602
+0.710790
+-0.223428
+0.340740
+-0.186258
+-0.030186
+-0.049535
+0.603777
+0.034033
+-0.459254
+-0.806701
+-0.099860
+-0.673680
+-0.133392
+0.447916
+-0.076783
+0.117627
+0.403759
+0.029555
+0.850072
+0.766768
+-0.349521
+-0.145523
+0.321465
+0.870078
+-0.812797
+-0.133270
+-0.768632
+-0.464304
+-0.370493
+-0.742427
+0.613982
+0.107771
+-0.775428
+0.030812
+-0.115464
+0.224570
+0.749645
+0.365721
+-0.592126
+0.225431
+-0.697534
+-0.853193
+-0.823043
+0.579662
+-0.960674
+0.718320
+0.086048
+0.131954
+0.422693
+-0.722944
+0.299337
+-0.409296
+-0.411805
+-0.103767
+0.326002
+0.203088
+-0.645174
+0.574184
+0.875857
+-0.398943
+-0.597090
+-0.390931
+-0.947919
+0.361350
+-0.093817
+0.780960
+0.782502
+-0.990331
+0.909986
+-0.632685
+0.449190
+0.532660
+0.602792
+0.043686
+0.130301
+-0.887299
+-0.403593
+0.056923
+0.993015
+-0.507679
+-0.636907
+-0.938454
+-0.525263
+0.859705
+0.744446
+0.581503
+0.338752
+-0.723041
+0.331929
+0.482792
+0.219482
+0.941546
+-0.399615
+-0.756704
+0.232063
+0.575674
+-0.137839
+-0.760929
+-0.304771
+0.602353
+-0.242700
+-0.068943
+0.880153
+-0.843156
+0.065140
+-0.911327
+0.080864
+-0.750043
+0.519011
+0.562103
+-0.827220
+0.689285
+0.215068
+-0.008442
+-0.853560
+0.605878
+0.378394
+-0.546890
+-0.023198
+0.222294
+-0.490416
+-0.814387
+0.353284
+-0.293401
+0.714603
+0.261988
+-0.794453
+0.399933
+-0.385219
+0.572364
+-0.134295
+-0.441035
+0.592273
+-0.147322
+0.034554
+0.569274
+0.063020
+0.500795
+-0.058158
+-0.542651
+-0.599569
+-0.320496
+-0.809122
+-0.375201
+0.113112
+0.812837
+0.822945
+0.445880
+-0.758350
+0.474042
+-0.410540
+0.555500
+-0.475443
+0.942888
+-0.230245
+-0.540575
+0.190345
+-0.038943
+-0.635852
+0.012741
+0.618382
+-0.795296
+-0.278151
+0.066247
+-0.842425
+0.903337
+0.762156
+-0.341549
+-0.346240
+-1.045208
+-0.434855
+-0.253782
+0.642059
+0.582063
+0.515086
+0.286827
+0.567335
+0.490292
+0.321517
+0.663626
+0.408585
+0.092676
+-0.691681
+-0.572758
+0.477555
+-0.181448
+0.226066
+0.197395
+0.473702
+0.199290
+-0.133188
+-0.350898
+0.619407
+0.082520
+0.237521
+0.142748
+-0.529380
+-0.725034
+0.413509
+0.657326
+0.216882
+0.771973
+0.590580
+0.230796
+-0.704421
+0.214395
+0.600003
+0.178165
+-0.608887
+-0.646941
+0.098994
+0.270265
+-0.809946
+-0.035619
+-0.466207
+0.844744
+0.753624
+-0.773312
+0.800707
+-0.587856
+-0.112808
+0.613719
+-0.557483
+-0.525583
+0.784589
+0.881713
+-0.607302
+-0.732122
+0.660873
+-0.917431
+0.458954
+0.635409
+0.655196
+-0.698102
+-0.282697
+0.851871
+0.598751
+0.313295
+0.328964
+0.457019
+0.641256
+0.814746
+-0.239559
+0.000329
+-0.883495
+0.518058
+0.816581
+0.676450
+0.275098
+-0.685609
+0.564911
+0.491949
+-0.423494
+0.170111
+-0.612695
+0.937500
+0.198065
+-0.053517
+-0.700031
+-0.585122
+0.303030
+-0.869320
+0.779958
+0.236731
+0.168105
+-0.515170
+0.049826
+-0.665186
+-0.522146
+1.026035
+0.497692
+0.797160
+0.080503
+0.668475
+-0.161429
+0.696655
+0.049693
+-0.130033
+0.236451
+0.324588
+1.059464
+-0.524388
+-0.497418
+0.380615
+-0.234258
+-0.336978
+0.726405
+-0.293284
+0.438207
+0.217847
+-0.012451
+-0.603578
+0.821887
+-0.537736
+0.857054
+-0.868582
+-0.311265
+-0.308758
+-0.664775
+0.436273
+-0.904073
+0.558441
+0.847958
+0.881532
+0.606475
+0.259302
+0.085857
+-0.452241
+-1.077532
+-0.795463
+-0.396771
+-0.530196
+0.576334
+0.946038
+-0.973417
+-0.906014
+0.592002
+-0.422491
+-0.601888
+-0.065441
+-0.460469
+0.760310
+-0.482954
+0.837175
+-1.004956
+-0.165306
+-0.055584
+0.947210
+0.911303
+0.556314
+-0.219129
+-0.145668
+-0.994837
+-0.369943
+-0.205643
+-0.472425
+-1.066429
+0.535064
+-0.245163
+0.101314
+0.136416
+0.726265
+-0.868184
+-0.493489
+-0.521266
+-0.677425
+-0.968989
+-0.718076
+0.270502
+-0.317718
+0.486930
+-0.322588
+-0.903913
+0.467756
+0.102353
+-0.044132
+-0.429957
+-0.091951
+0.160771
+-0.616579
+-0.770098
+-0.941463
+0.213624
+-0.823077
+0.891441
+-0.796695
+0.160191
+-1.010424
+0.811789
+0.417379
+-0.559038
+-0.105827
+-0.677800
+0.387531
+0.976631
+-0.811271
+-0.982079
+-0.498038
+0.530675
+0.359169
+0.286310
+-0.400702
+-0.692223
+0.201441
+-0.752407
+0.559215
+0.179118
+-0.433887
+-0.134503
+-0.040104
+-0.254400
+0.577087
+-0.117047
+-0.244745
+1.127496
+-0.651540
+0.665624
+0.689290
+0.741430
+0.147050
+-0.649521
+-0.386015
+0.137606
+0.956006
+-0.500117
+-0.181643
+-0.839929
+-1.048398
+0.212711
+-0.633740
+0.276382
+-0.544717
+0.521023
+0.015067
+0.129123
+0.902294
+-0.637109
+-0.582353
+0.294475
+-0.204018
+-0.015743
+-0.399499
+-0.010887
+-0.425058
+-1.116907
+0.225654
+-0.210980
+-0.823615
+0.954590
+0.156095
+0.913237
+0.116514
+0.543932
+0.286036
+0.462959
+0.347918
+0.039979
+-0.601460
+-0.041917
+-0.754457
+0.945843
+-0.541460
+0.466565
+0.486392
+-0.276565
+0.494950
+-0.829122
+0.516017
+-0.477333
+0.395840
+0.078580
+-0.679641
+-0.506946
+-0.363216
+0.842338
+0.237736
+-0.000612
+0.932277
+-0.755675
+0.483298
+-0.183668
+0.280046
+-0.533734
+-0.205560
+-0.313169
+0.786321
+1.001964
+0.623247
+-0.142301
+-0.608788
+0.593208
+-0.070188
+0.481782
+0.042810
+-0.130785
+-0.487795
+0.651774
+0.349452
+0.909477
+0.261070
+-0.677863
+-0.314439
+0.286463
+0.105539
+-0.316077
+-0.687081
+0.535069
+-0.237091
+0.518607
+-0.681536
+1.032278
+0.392705
+0.438220
+0.622253
+-0.100257
+-0.680010
+-0.619002
+-0.140124
+-0.791297
+0.510059
+-0.269074
+0.524197
+0.591782
+0.648541
+-0.754990
+-0.212592
+-0.903169
+0.153232
+-0.577467
+-1.045188
+-0.386456
+0.178850
+0.372772
+-0.213149
+0.876358
+-0.292641
+0.905510
+-0.081996
+-0.574625
+0.783903
+0.307647
+-0.132418
+-0.910193
+0.104478
+0.881689
+-0.752220
+0.326834
+0.397207
+0.063152
+0.466935
+0.396584
+-0.600227
+0.553346
+-1.001183
+-0.534475
+-0.501555
+0.212268
+-0.385226
+0.191858
+-0.004799
+0.779860
+-0.614145
+0.970525
+0.933748
+0.607003
+-0.443344
+0.915274
+-0.526868
+-0.993956
+0.301559
+-0.887573
+0.877779
+-0.442278
+0.073541
+-0.754393
+0.877134
+0.995753
+0.294524
+0.191990
+-0.815259
+-1.066116
+-0.412838
+-0.399554
+-0.121018
+-0.792669
+0.150431
+-0.453922
+-0.258075
+-0.063572
+0.168443
+-0.618938
+0.379253
+-0.550122
+0.037695
+0.422415
+0.041614
+-0.113916
+-0.912384
+0.139980
+0.714078
+-0.776329
+0.049059
+-0.454886
+-0.242447
+0.771136
+-0.792337
+0.232528
+0.550011
+0.693812
+-0.680461
+-0.157353
+-0.498800
+0.589321
+-0.136430
+-0.972196
+0.456540
+-0.974759
+-0.534568
+0.328934
+-0.752473
+0.554828
+0.917463
+-0.823389
+0.283018
+0.198550
+-0.858533
+-0.247034
+0.347398
+0.675573
+0.865038
+-0.321414
+-0.972888
+0.811428
+-0.257074
+-0.455734
+0.179565
+-0.484222
+-0.647525
+-0.611970
+0.800544
+-0.013889
+-0.799084
+-0.069947
+0.342241
+-0.681117
+0.964232
+0.176595
+-0.113952
+-0.836443
+-0.739195
+-0.527905
+-0.721468
+0.422416
+0.900021
+0.455548
+-0.721537
+-0.695916
+-0.753555
+-0.319125
+0.504093
+0.519276
+0.695874
+-0.994375
+0.455799
+0.904483
+0.839326
+0.599339
+-0.436040
+-0.278751
+-0.545297
+0.530332
+-0.216463
+0.867110
+-0.357292
+-0.243002
+0.328639
+-0.842194
+0.467473
+-0.273934
+0.734969
+-0.009213
+-0.587350
+-0.503886
+0.418996
+0.717915
+0.979895
+-0.280777
+0.377527
+-0.623762
+0.049747
+0.700349
+-0.911257
+0.558220
+-0.728750
+-0.724465
+-0.395431
+0.159645
+-0.592520
+-0.613152
+0.185506
+0.032756
+0.011511
+-0.944489
+-0.853316
+-0.852765
+0.486107
+-0.140373
+0.524357
+0.478686
+0.566128
+-0.198749
+-0.413651
+-0.998893
+0.568508
+0.421986
+-0.727501
+0.816422
+-0.043100
+-0.285413
+0.463646
+0.685665
+-0.249817
+0.978311
+0.295941
+0.362351
+-0.249844
+0.752519
+0.527371
+0.541250
+-0.566502
+-0.414115
+-0.079595
+-0.825640
+-0.434146
+-0.562053
+-0.578904
+0.699940
+0.223289
+-0.379735
+-0.087881
+0.246386
+-0.319911
+-0.248154
+-0.888869
+-0.310472
+-0.200915
+0.347458
+0.932804
+0.323269
+-0.137944
+-0.055325
+0.666642
+-0.341722
+-0.874489
+0.401830
+0.518831
+-0.055141
+-0.931346
+0.360646
+-0.102194
+-0.072699
+0.392297
+-0.327337
+-0.906157
+-0.164737
+-0.755409
+-0.123292
+-0.107450
+-0.769392
+-0.013262
+-0.446600
+0.420837
+0.402370
+-0.950395
+-0.474129
+0.417368
+0.865167
+0.472543
+-0.621875
+0.774030
+-0.122883
+0.582441
+0.396950
+0.574978
+-0.125390
+0.840996
+-0.742417
+-0.448450
+0.987250
+0.100806
+-0.450729
+-0.146860
+0.353675
+-0.093730
+0.041992
+0.106848
+-0.492072
+-0.482237
+-0.224188
+-0.867471
+0.058783
+-0.516262
+0.258986
+0.031680
+0.211074
+0.720466
+-0.208196
+0.447102
+-0.602994
+-0.081280
+0.266835
+0.755001
+-0.698444
+0.951525
+0.911088
+0.290675
+-0.980050
+0.872248
+0.973907
+-0.496392
+0.115755
+-0.847933
+0.432618
+0.858911
+-0.762868
+0.970332
+0.593495
+0.261726
+-0.590458
+0.827084
+-0.010783
+0.077503
+0.960852
+-0.584004
+0.143539
+0.697720
+-0.483128
+0.832077
+-0.746465
+-0.740414
+-0.713734
+-0.484311
+0.625362
+-0.250202
+-0.664836
+-0.208567
+-0.313884
+0.468289
+0.818421
+-0.141341
+0.479430
+-0.114082
+-0.460075
+-0.668307
+-0.686865
+0.392297
+-0.816603
+0.898656
+-0.765092
+-0.788675
+0.704219
+-0.905533
+-0.303370
+-0.755442
+0.415308
+-0.786923
+0.124684
+0.306567
+0.093519
+-0.362473
+0.689569
+0.270594
+-0.582631
+-0.435839
+-0.027461
+-0.598462
+-0.424528
+-0.715935
+0.223608
+-0.757408
+0.398412
+-0.073223
+-0.385015
+0.778833
+0.548902
+-0.919007
+0.983858
+-0.943421
+0.584916
+0.515605
+0.377613
+-0.558370
+-0.075700
+-0.748044
+0.088975
+0.661942
+-0.083894
+-0.244919
+-0.495624
+0.748739
+0.386063
+0.430750
+-0.176266
+0.687000
+-0.295455
+0.565009
+-0.932470
+0.988636
+0.923164
+-0.821412
+0.230168
+-0.956954
+0.292885
+-0.760591
+0.063184
+-0.941406
+-0.056133
+0.174894
+0.278787
+0.402493
+-0.729241
+0.572274
+0.287342
+0.462156
+0.193869
+0.321148
+0.126405
+0.640330
+-0.827308
+0.428235
+-0.348893
+0.516717
+-0.670618
+-0.326005
+0.498204
+0.468260
+0.899568
+0.312549
+0.267843
+-0.893933
+0.446823
+-0.798114
+0.148779
+0.890628
+0.969124
+-0.585736
+0.417710
+0.923537
+0.121722
+0.021877
+-0.590936
+0.195042
+0.217479
+-0.957287
+1.008279
+0.601472
+0.095479
+0.300269
+0.355080
+0.260240
+-0.769546
+0.698511
+0.622976
+-0.614270
+-0.329046
+-0.822356
+0.260882
+-0.901869
+0.915504
+-0.912337
+0.303489
+0.410723
+0.568587
+0.325823
+0.183813
+-0.226608
+0.113013
+-0.453700
+-0.148557
+0.904452
+-0.155381
+-0.279433
+0.701571
+0.493610
+-0.220428
+0.523402
+-0.236966
+-0.279778
+-0.762344
+0.270701
+-0.697963
+-0.636731
+0.756990
+0.297871
+-0.855757
+0.730035
+0.179101
+-0.961904
+0.721782
+-0.702731
+-0.382276
+0.183659
+-0.561453
+0.331229
+-0.599731
+0.059027
+-1.005909
+0.224919
+-0.278153
+0.351952
+0.026761
+-0.931886
+-0.950247
+0.359877
+0.832065
+0.065620
+-0.774553
+0.125551
+-0.327467
+0.363551
+0.831858
+-0.830977
+0.826423
+-0.083443
+0.549673
+-0.423006
+-1.028577
+-0.979416
+0.980735
+-0.801430
+0.090537
+-0.662177
+0.697878
+0.107043
+0.339492
+0.333186
+0.535585
+0.329998
+-0.947591
+0.905461
+0.264117
+-0.755420
+0.533509
+-0.445061
+-0.770729
+0.842300
+0.656717
+0.899468
+0.664941
+-0.040605
+0.179641
+-0.653500
+-0.401578
+-0.863956
+-0.269223
+0.879211
+-0.244142
+-0.853695
+0.674749
+0.980671
+-0.032371
+-0.561619
+0.158270
+0.333755
+-0.570107
+-0.373229
+-0.764969
+0.331928
+0.726505
+0.432432
+-0.337102
+0.568501
+-0.056137
+-0.760848
+0.505994
+0.864264
+-0.987756
+0.272424
+0.439885
+-0.265641
+0.338834
+0.442473
+-0.771651
+0.128772
+-0.130725
+1.113963
+-0.508924
+0.930862
+0.501379
+-0.912420
+-0.779781
+-0.646041
+-0.190503
+-0.279608
+0.497056
+0.677782
+-0.186330
+-0.406164
+0.984835
+0.312236
+0.312109
+0.214484
+0.694327
+-0.303788
+-0.648162
+-0.246418
+-0.661968
+0.230013
+-0.836546
+-0.739842
+0.768668
+-0.252205
+0.384411
+0.972785
+0.183753
+-0.766598
+0.668500
+0.636289
+0.738856
+0.259753
+0.647341
+0.645805
+-0.590895
+1.046285
+0.707335
+0.871903
+0.436173
+0.651053
+0.645755
+0.823645
+0.171363
+-0.200954
+0.528086
+-0.915587
+0.392700
+0.457847
+-0.599282
+-0.431281
+0.892034
+0.935200
+0.967313
+0.868302
+0.316998
+-0.813030
+0.795620
+0.837734
+-0.808877
+0.980602
+-0.493967
+0.626622
+-1.079577
+-0.263477
+-0.517075
+-0.030126
+-0.703230
+0.268806
+0.780508
+-0.050405
+0.870675
+-0.486040
+-0.731951
+0.750796
+0.827420
+-0.696257
+-0.189885
+-0.069818
+0.875230
+0.888530
+0.387687
+0.891066
+-0.476635
+-0.608860
+0.188301
+-0.690097
+0.651650
+-0.008560
+-0.755091
+-0.664627
+0.133143
+0.275953
+0.246577
+0.081223
+-0.389571
+0.655881
+0.111568
+0.382474
+-0.127261
+-0.871623
+-0.210698
+0.974409
+-0.290836
+0.879937
+-0.303995
+0.362201
+-0.001872
+-1.181611
+-0.873331
+0.576915
+-0.223348
+0.343762
+0.141380
+-0.033389
+-0.547206
+0.777491
+-0.113462
+-0.835542
+-0.069951
+0.613886
+-0.564537
+-0.024529
+0.622230
+-0.760002
+0.513774
+-0.413902
+0.137996
+-0.151807
+-0.013790
+-0.241375
+-0.053550
+0.289401
+-0.026353
+0.184856
+0.411638
+0.683586
+1.031993
+0.153537
+-0.031806
+-0.587635
+-0.451575
+-0.028118
+-0.798417
+0.925953
+0.116897
+-0.004339
+0.607866
+0.456805
+0.684956
+0.608429
+-0.893386
+-0.932972
+0.568435
+0.095452
+-0.718789
+-0.750709
+-0.737290
+0.835020
+-0.168804
+-0.722848
+0.550605
+-0.611316
+-0.431689
+-0.136306
+-0.097603
+-0.027032
+-1.112674
+-0.587959
+-0.840885
+-0.935591
+-0.761826
+-0.193273
+0.615149
+0.211130
+-0.434972
+-1.018917
+0.659300
+-0.312948
+0.136937
+0.882550
+0.807239
+0.717617
+-0.020035
+-0.199533
+0.215156
+-0.338942
+0.204216
+-0.773024
+-0.833988
+0.392554
+-0.382507
+0.216579
+0.721662
+0.075138
+-0.430681
+0.181336
+-0.234705
+-0.445688
+-0.733698
+-0.172535
+0.589136
+0.740270
+-0.064931
+-0.551911
+-0.291648
+-0.238302
+0.023660
+0.689303
+-0.665153
+-0.749817
+-0.179728
+0.908648
+-0.207731
+0.154728
+-0.221055
+-0.373608
+0.805868
+0.796630
+-1.154328
+-0.584839
+0.350566
+0.940496
+-0.549774
+0.335050
+0.012945
+-0.531610
+-0.536581
+0.643183
+-0.405705
+-0.676479
+0.155593
+0.607099
+0.283500
+-0.531486
+-0.900749
+0.163078
+-0.819268
+-0.752893
+-0.949539
+0.194927
+0.728407
+0.876111
+0.733042
+0.017337
+-0.244593
+0.784448
+-0.323242
+0.664003
+0.668296
+-0.621595
+0.523679
+-0.689118
+-0.334921
+-0.097512
+0.012530
+-0.558141
+-0.345499
+-0.340248
+0.836113
+-0.078953
+-0.402879
+-1.018222
+-0.682079
+-0.726137
+0.517896
+-0.185018
+0.090654
+-0.016944
+-0.792390
+0.011150
+0.087127
+0.704902
+0.498217
+-0.203526
+0.292777
+0.726222
+-0.764320
+-0.841578
+-0.517936
+0.088620
+0.858925
+0.041802
+-0.400444
+-0.466516
+-0.760321
+0.947131
+-0.929595
+-0.926252
+-0.657921
+0.620871
+0.036939
+0.288840
+-0.366717
+1.049887
+0.194101
+0.206975
+0.614546
+0.474360
+0.465898
+0.706855
+-0.491103
+-0.829956
+0.727700
+-0.806833
+0.267962
+-0.947844
+0.264981
+0.090122
+0.314424
+-0.016708
+-0.834882
+-0.088552
+-0.321684
+0.815488
+-0.568046
+0.762783
+-0.026785
+-0.897336
+-0.039101
+0.293649
+-0.570149
+0.404687
+-0.780736
+-0.913876
+-0.468736
+0.902577
+-0.363323
+-0.089463
+0.114414
+0.387589
+-0.870760
+0.410308
+0.802112
+-0.269614
+-0.023460
+0.879627
+-0.286773
+-0.759771
+0.976388
+-1.047405
+0.280812
+0.169912
+1.028332
+-0.311667
+0.588851
+-0.073199
+-0.667938
+-0.572512
+-1.051318
+0.200862
+-0.206624
+-0.695067
+-0.544802
+0.298151
+-0.917467
+0.354010
+0.426763
+0.732926
+-0.866265
+0.275652
+0.983941
+-0.650474
+-0.425449
+0.469930
+0.625074
+-0.319885
+0.091929
+-0.413267
+-0.735168
+0.273652
+0.029195
+-0.742452
+-0.919668
+0.486841
+-0.906185
+-0.812875
+0.943053
+0.142864
+-0.666305
+-0.917249
+-0.230453
+0.162791
+0.730443
+0.259387
+-0.299427
+-0.130368
+0.203795
+0.414053
+-0.419721
+0.264238
+-0.466381
+-0.642027
+-0.573218
+-0.379463
+0.556133
+0.901278
+0.394308
+1.050636
+0.118000
+-0.372453
+-0.339298
+0.968664
+-0.676577
+-0.954793
+-0.206422
+0.637084
+-0.119837
+0.547629
+-0.167449
+0.292384
+0.455179
+0.541678
+-1.044963
+-0.087591
+-0.405261
+-0.859995
+-0.372871
+0.401947
+0.515961
+-0.911613
+-0.941061
+0.206766
+0.280455
+0.067091
+-0.986408
+0.683465
+-0.476023
+-0.052406
+-0.249341
+0.419181
+1.001262
+0.652972
+-0.087823
+-0.593503
+-0.327507
+0.655319
+-0.193255
+0.391240
+0.144016
+0.972275
+-0.778135
+-0.241503
+0.804859
+-0.482018
+-0.247757
+-0.504532
+-0.180916
+-0.816449
+0.076344
+-0.501626
+0.212542
+0.657009
+0.157298
+-0.323458
+0.096774
+-0.583125
+-1.068168
+-0.951650
+0.898219
+0.971028
+-0.173554
+0.820590
+-0.536952
+0.742959
+-0.782828
+0.091256
+0.702048
+0.190593
+-0.322960
+0.808827
+-0.275393
+0.779801
+-1.020894
+0.489161
+-0.714376
+0.517111
+0.204599
+0.122605
+-0.011827
+0.136858
+-0.047749
+0.934060
+0.376968
+0.555436
+0.786039
+0.587703
+0.849582
+-0.658639
+-0.850991
+-0.370788
+0.295115
+0.678967
+-0.313535
+-0.317827
+0.840498
+0.513354
+0.369772
+0.980111
+0.418801
+0.456981
+0.713938
+0.731528
+-0.608391
+-0.427326
+-0.636974
+0.020693
+-0.159525
+0.260161
+-0.314345
+-0.609030
+0.835195
+0.083896
+0.427080
+0.990215
+0.425549
+-0.924845
+-0.426429
+-0.729599
+0.307320
+-0.685930
+-0.101649
+-0.607522
+-0.428697
+-0.635182
+0.163882
+0.594995
+-0.590698
+-0.032202
+-0.874024
+-0.426180
+1.025334
+-0.616275
+-0.595813
+-0.298458
+0.513402
+-0.885410
+0.214181
+-0.818439
+-0.066138
+-0.562291
+-0.744040
+-0.261709
+0.979953
+0.213864
+-0.253127
+-0.448603
+0.277206
+0.502997
+-0.342816
+-0.219327
+-0.669850
+-0.726381
+-0.931845
+-0.637772
+0.421325
+0.067385
+-0.689206
+-0.963916
+0.454242
+-0.594041
+-0.039209
+0.812748
+0.224391
+0.427025
+0.975829
+0.428225
+-0.236213
+0.836007
+-0.664693
+-0.378613
+0.117791
+-0.034342
+0.212503
+-0.645528
+-0.849807
+-0.733861
+0.835667
+0.417967
+-0.552302
+-0.925850
+-0.157672
+-0.562307
+-0.346397
+-0.450151
+-0.925622
+0.344084
+0.324741
+-0.874585
+-0.629333
+0.774404
+-0.646688
+0.538338
+-0.297575
+0.702205
+-0.958594
+-0.606101
+-0.787438
+-0.241453
+-0.809100
+-0.683373
+-0.027606
+-0.795081
+-0.078701
+0.900282
+-0.408364
+-0.784297
+-0.059764
+-0.359504
+-0.057681
+-0.095394
+0.016758
+0.409188
+-0.669505
+0.412012
+-0.432692
+0.311359
+0.297603
+0.617010
+-1.001223
+-0.518066
+0.736309
+-0.748472
+0.157367
+-0.486569
+-0.082174
+-0.867938
+-0.197624
+-0.086302
+-0.237365
+0.376156
+-0.580616
+0.890741
+0.624827
+-0.305436
+0.848772
+0.525426
+-0.651625
+-0.855898
+-0.138056
+0.636985
+-0.661198
+0.429151
+0.063691
+-0.663691
+0.726930
+0.409154
+-0.262274
+0.541288
+-0.508741
+-0.764937
+-0.568044
+-0.745674
+0.760414
+-0.624087
+-0.407230
+0.181340
+-0.789778
+-0.440736
+0.263466
+0.422598
+-0.074495
+0.962831
+-0.494363
+0.445845
+-0.436871
+-0.648859
+-0.231556
+0.836603
+0.473998
+-0.010629
+0.494563
+-0.270708
+0.224696
+0.943271
+0.606350
+0.233727
+0.459906
+-0.248885
+0.573918
+-0.859929
+-0.677163
+0.296575
+-0.676494
+0.518357
+-0.089546
+-0.156609
+-0.984353
+-0.356931
+-0.979616
+-0.098394
+0.003357
+0.915815
+0.476493
+-0.031511
+0.934668
+0.545064
+-0.643381
+0.580055
+0.325736
+0.805178
+0.658690
+0.365975
+-0.071013
+0.406706
+-0.574294
+-0.650538
+-0.466286
+-0.481384
+-0.863028
+-0.094415
+0.206609
+0.170461
+-0.314473
+0.999368
+-0.789145
+-0.887213
+-0.251237
+0.986581
+-0.284629
+-0.934047
+0.752673
+-0.796229
+0.451140
+-0.632122
+-0.220567
+-0.377367
+-0.470130
+-0.762170
+0.659111
+-0.182377
+-0.489847
+-0.399784
+-0.585448
+0.060153
+0.699709
+0.967281
+0.474484
+-0.802745
+0.628868
+-0.712911
+0.105229
+0.620854
+0.301933
+0.093729
+0.525088
+-0.233863
+0.886165
+-0.422358
+1.015274
+-0.474696
+0.743098
+0.866684
+0.334090
+0.459871
+0.501032
+-0.716597
+0.736444
+0.624023
+-0.278928
+0.778145
+-0.876944
+-0.388509
+-0.070807
+-0.042737
+0.832584
+-0.491901
+-0.643140
+0.848797
+-0.417734
+0.543799
+-0.551338
+0.727923
+-0.482397
+-0.334870
+0.782031
+-0.297797
+0.267683
+0.582213
+0.274574
+0.971584
+-0.806240
+-0.900018
+-0.422540
+0.156753
+-0.985842
+-0.391875
+-0.227296
+-0.130399
+0.386479
+-0.123313
+-0.474387
+-0.028545
+-0.818327
+-1.027444
+0.023585
+0.888303
+-0.576267
+-0.947144
+-0.792269
+0.711335
+-0.021299
+0.879876
+-0.311791
+0.623022
+0.050849
+-0.333041
+-0.579130
+0.506374
+0.358114
+-0.531445
+0.842753
+-0.136104
+0.214187
+0.407075
+0.471478
+0.000630
+0.004564
+0.433542
+0.672395
+-0.682220
+-0.137045
+-0.627490
+0.213646
+-0.015712
+-0.382072
+0.220534
+0.019419
+0.663636
+0.186366
+0.078192
+-0.680272
+0.497645
+0.597319
+-0.789046
+-0.533929
+-0.048583
+1.007099
+-0.427106
+0.215388
+-0.215837
+0.565534
+-0.271748
+0.244099
+-0.148698
+-0.601636
+0.784948
+0.047762
+-0.194861
+-0.645615
+0.758185
+-0.137324
+-0.212816
+0.020803
+0.992822
+-0.045101
+-0.406511
+-0.479270
+0.946851
+0.574102
+0.934706
+-0.620186
+-0.458984
+0.013689
+0.853147
+-0.236558
+-0.384817
+0.605282
+-0.812664
+-0.858953
+0.895281
+0.417758
+0.108408
+0.656066
+0.065033
+0.252705
+-0.134302
+-0.155490
+0.901741
+-1.033867
+0.190403
+0.523337
+-0.889807
+0.103962
+-0.665727
+0.804214
+-0.052821
+0.223978
+0.126660
+-0.461142
+-1.058600
+-0.643120
+0.310492
+-0.480771
+-0.156108
+-0.392915
+-0.720497
+-0.434727
+0.460659
+-0.881607
+0.439369
+-0.461159
+0.104639
+-0.519615
+0.813731
+-0.415304
+0.396794
+-0.604341
+-0.850758
+-0.297133
+-0.116054
+0.376968
+-0.153717
+0.227308
+0.300313
+0.829625
+0.646095
+-0.981033
+0.680596
+-1.044281
+-0.778623
+-0.798834
+0.695438
+-0.278186
+-0.247618
+-0.889281
+0.531948
+-0.166801
+0.969873
+0.759231
+0.684368
+0.333945
+0.725950
+-0.428744
+1.008472
+-0.715668
+0.330546
+-0.459594
+0.683276
+-0.461457
+-0.481042
+0.858097
+0.871408
+0.222923
+-0.619454
+-0.110368
+0.833034
+-0.177720
+0.349452
+-0.345707
+0.233811
+0.256507
+0.251111
+-0.778965
+-0.565219
+-0.764414
+0.563033
+1.019177
+-0.969940
+-0.538250
+0.336922
+0.902324
+0.328136
+-0.145992
+-0.479944
+0.234176
+0.533826
+0.013875
+0.067844
+-0.655244
+0.348045
+0.815763
+0.559490
+0.533867
+0.912805
+-0.266908
+-0.383525
+0.352366
+0.208579
+0.190993
+-0.663216
+-0.416481
+-0.164717
+-0.970101
+-0.910146
+0.192974
+-0.026979
+-0.357366
+-0.751374
+0.229290
+0.607656
+0.319357
+0.758598
+0.778479
+-0.410260
+-0.509773
+0.292401
+0.049450
+-0.952621
+-0.563815
+0.785999
+-0.100813
+-0.799547
+0.666358
+1.089135
+0.435300
+-0.735734
+-0.213051
+0.398462
+0.772318
+-0.081355
+0.849019
+-0.802387
+0.365371
+-0.557307
+-0.806097
+-0.132025
+-0.452294
+-0.706454
+-0.453214
+0.520486
+0.693034
+-0.584957
+0.482895
+0.055867
+-0.809709
+0.658295
+0.069074
+-0.526752
+0.034249
+-0.174651
+0.696615
+0.634396
+0.199266
+-0.705230
+0.510134
+1.025500
+0.965776
+-0.554843
+-0.180498
+0.805600
+-0.649459
+0.558198
+0.909849
+0.659458
+-0.339040
+-0.475124
+-0.776327
+0.566626
+-0.350837
+-0.134604
+-0.681464
+-0.744917
+0.689419
+-0.758797
+-0.756360
+1.007106
+-0.911334
+-0.119970
+0.059071
+-0.918767
+0.658033
+-1.004526
+0.524281
+0.454857
+0.406144
+0.220204
+0.407177
+-0.060933
+-0.814620
+-0.467638
+-0.823272
+1.199307
+-0.192720
+-0.502718
+-0.847360
+0.330940
+-0.657413
+-0.682682
+0.321551
+0.746547
+-0.665361
+0.862167
+-0.430172
+-0.148874
+-0.649202
+0.127371
+0.227857
+0.778532
+0.155339
+-0.646001
+-0.006847
+-0.185491
+0.323762
+-0.093436
+-0.707797
+-0.494246
+-0.143386
+0.516242
+0.663944
+-0.865166
+-0.892517
+0.801820
+-0.358722
+-0.283463
+0.286715
+1.056095
+-0.782808
+-0.578221
+0.189181
+-0.066184
+0.348402
+0.019397
+-0.124409
+0.802781
+-0.794266
+0.160457
+-0.095293
+0.322472
+0.809657
+-0.489516
+-0.223909
+-0.186475
+0.986155
+-0.860591
+0.234292
+0.141892
+-0.549398
+-1.128408
+0.042825
+-0.103723
+0.795452
+-0.686815
+-0.252262
+0.083800
+-0.471418
+-1.015542
+0.412763
+0.545494
+0.001876
+-0.837633
+0.729264
+-0.182619
+-0.209157
+-0.766413
+-0.430533
+-0.101968
+-0.457271
+0.764134
+0.578792
+0.284615
+0.857530
+-0.815111
+-0.298149
+0.517538
+-0.962382
+0.779540
+1.006617
+0.945929
+0.182027
+-0.361261
+-0.184120
+-0.494559
+-1.020557
+0.335289
+1.007283
+-0.300396
+0.207182
+0.868809
+-0.690404
+-0.631063
+0.309276
+-0.814423
+0.005608
+-0.296697
+0.671605
+0.252500
+0.972989
+0.871972
+-0.244104
+0.801216
+-0.802127
+-0.880067
+-0.625396
+-0.932955
+-0.527866
+0.586945
+0.075096
+-0.426908
+-0.016404
+0.743280
+-0.356927
+-0.529690
+-0.498757
+0.179038
+0.545391
+0.649119
+0.320271
+-0.799104
+0.287967
+0.256584
+0.808616
+0.650585
+-0.148038
+-0.648964
+0.126434
+0.338298
+0.703532
+0.586561
+-0.275644
+-0.188685
+0.225336
+0.300981
+-0.872727
+-0.072360
+0.346772
+0.153587
+-0.285393
+0.749623
+-0.975630
+-0.691215
+0.891891
+0.574778
+0.274345
+0.685133
+0.042722
+-0.558600
+0.783383
+-0.652385
+-0.881331
+0.786193
+-0.245446
+0.142553
+-0.574183
+-0.103741
+0.555480
+-0.346434
+0.528995
+-0.525346
+0.699512
+-0.158864
+-0.881012
+0.658403
+-0.382534
+-0.547654
+-0.544273
+-0.073807
+-0.345953
+0.398568
+-0.279528
+-0.951325
+-0.523683
+0.467085
+0.924480
+-0.300318
+-0.759315
+0.499712
+-0.350042
+0.238273
+0.796792
+0.327977
+-0.137756
+0.275906
+-0.728790
+0.125170
+1.017840
+-0.844985
+-0.423732
+-0.747143
+0.663649
+0.414200
+-0.813270
+-0.854305
+-0.660985
+-0.931749
+0.754717
+0.465222
+0.075390
+-0.392751
+0.933131
+-0.669347
+-0.102418
+-0.076455
+0.917495
+-0.622128
+-0.244653
+-0.086205
+0.568449
+-0.962058
+0.438154
+0.844453
+-0.552567
+-0.407454
+0.085630
+0.105724
+0.080011
+1.090541
+0.043695
+0.065529
+0.817335
+0.367096
+0.611404
+0.286846
+0.706306
+-0.402364
+0.172066
+1.005544
+-0.241967
+-0.171666
+0.169194
+-0.880216
+-0.894267
+0.215765
+0.143171
+-0.908265
+-0.116332
+0.514665
+0.814323
+-0.908121
+-0.375706
+0.953654
+-0.206054
+0.637219
+-0.622326
+0.115446
+0.896698
+0.973586
+0.201818
+-0.903740
+-0.935896
+0.415722
+-1.051933
+0.748604
+-0.913597
+-0.001657
+0.124706
+-0.786849
+-0.882800
+-0.941706
+-0.705592
+-0.734813
+-0.046140
+-0.073439
+-0.066630
+-0.007534
+0.622803
+0.854697
+0.355362
+-0.309999
+-0.283102
+-0.138809
+0.799640
+0.322531
+-0.438135
+0.339544
+0.804199
+0.653667
+0.474315
+0.781620
+0.099336
+0.032987
+-0.446421
+-0.444977
+0.774080
+-0.351874
+-0.824045
+0.025241
+0.445025
+-0.888017
+-0.289387
+-0.794914
+-0.655640
+0.645547
+0.795997
+0.918620
+-0.487276
+0.855216
+0.515922
+0.854098
+0.024447
+-0.282598
+-0.827584
+0.123864
+-0.552924
+-0.349143
+-0.339789
+-0.511925
+-0.014927
+0.024882
+-0.677469
+-0.444810
+-0.505397
+0.099765
+-0.715044
+0.676364
+0.352641
+-0.578815
+0.979133
+0.028168
+0.285907
+0.413310
+0.590605
+-0.893051
+-0.740904
+0.225623
+0.968668
+0.591889
+0.499937
+0.114914
+0.476391
+0.237381
+0.835320
+-0.293314
+-0.687092
+-0.670917
+-0.235931
+-0.539321
+0.440261
+0.726565
+0.325907
+-0.419923
+0.098240
+0.301320
+-0.800948
+0.402876
+0.205579
+-0.067890
+-0.293530
+-0.295104
+0.460154
+-0.315092
+0.532310
+-0.412472
+0.324913
+0.152980
+0.026659
+-0.749763
+-0.924343
+-0.236734
+-0.141990
+-0.038792
+-0.974642
+0.663683
+0.046475
+-0.962270
+-0.785828
+0.467299
+0.144672
+0.339729
+-0.872183
+0.063495
+0.407065
+-0.309536
+0.621012
+0.495903
+0.558305
+-0.459012
+-0.411950
+-0.043751
+-0.093291
+0.170861
+-0.882743
+0.009714
+-0.215764
+-0.755930
+0.199769
+-0.651235
+0.931970
+-0.891395
+0.479063
+-0.193616
+0.934434
+-0.174957
+0.696492
+0.150833
+0.748540
+-0.447063
+0.879882
+-0.572102
+0.635259
+-0.590359
+0.756693
+-0.906772
+0.485382
+-0.310511
+0.806097
+0.484349
+0.011814
+-0.922610
+0.520704
+0.733417
+-0.100407
+0.856976
+0.058391
+0.978775
+-0.039552
+0.716914
+0.586708
+-0.452855
+0.773158
+-0.953212
+-0.555099
+0.654129
+0.314724
+0.023870
+-0.885275
+-0.697996
+0.768977
+0.319283
+-0.547153
+0.919219
+-0.300712
+-0.593249
+-0.226596
+-0.704803
+0.663161
+-0.449251
+-0.072645
+-0.356746
+-0.907275
+0.923368
+-0.826785
+-0.859903
+0.133769
+0.502232
+0.618493
+-0.461929
+-0.249496
+-0.164486
+0.759920
+0.734741
+-0.390405
+0.201258
+0.834335
+-0.473717
+0.377655
+-0.820099
+0.737910
+-0.424155
+-0.017359
+0.490398
+-0.688215
+0.167014
+-0.033608
+0.606865
+0.380805
+-0.188601
+0.409992
+-0.699787
+-0.670393
+-0.319201
+-0.670972
+-0.076008
+0.698441
+-0.968390
+-0.688658
+-0.375309
+0.870509
+0.517227
+-0.384987
+0.380233
+-0.864400
+-0.739744
+0.799232
+0.062788
+-0.694837
+0.218251
+-0.188130
+-0.040793
+0.378111
+0.339661
+0.371537
+0.452461
+0.338099
+-0.689603
+0.561035
+0.673257
+-0.939548
+-0.963988
+-0.506105
+-0.038871
+0.474195
+-0.128782
+0.001471
+-0.113505
+0.976410
+-0.954171
+-0.648385
+0.143828
+-0.191602
+-0.847016
+-0.049094
+0.094577
+-0.446161
+0.032633
+0.539777
+0.070648
+-0.285776
+1.028380
+-0.521852
+0.570278
+0.015880
+-0.925272
+0.430460
+-0.261938
+0.839196
+0.920137
+-0.366123
+0.779977
+-0.481646
+0.133446
+-0.782269
+0.889446
+-0.146934
+-0.818843
+0.390438
+-0.314473
+-0.503011
+0.367754
+-0.704536
+-0.821897
+0.801845
+0.115258
+0.187228
+0.277562
+0.270401
+0.745547
+0.213355
+-0.921693
+-0.088985
+-0.995834
+0.279317
+-0.913065
+-0.586283
+0.848732
+-0.767854
+0.777698
+0.762961
+-0.255070
+-0.418636
+-0.543588
+-0.168090
+-0.944932
+0.371570
+-0.829379
+-0.922825
+-0.532545
+-0.861752
+0.002910
+0.682246
+0.468713
+-0.558082
+-0.213308
+0.539345
+0.112298
+-0.489639
+0.272868
+0.911101
+-0.969251
+0.298928
+-0.883020
+-0.837167
+-0.698098
+-1.025457
+-0.918292
+-0.099525
+0.915182
+-0.444295
+0.140766
+-0.714757
+-0.464214
+0.691276
+-0.431738
+-0.036899
+-0.911923
+-0.661207
+0.712147
+-0.918203
+-0.502908
+0.662261
+0.372497
+-0.314020
+-0.969580
+-0.622704
+-0.251004
+0.086914
+-0.587637
+-0.184394
+0.259876
+0.274426
+0.028371
+-0.818889
+0.394308
+0.675786
+0.825812
+0.168985
+0.085567
+0.336045
+0.605391
+-0.775814
+-0.200494
+-0.813035
+-0.313854
+-0.366115
+0.738515
+0.761498
+-0.110622
+0.918935
+0.160616
+-0.620750
+-0.960150
+-0.077928
+-0.800120
+0.920300
+0.470968
+-0.021095
+-0.780523
+-0.155598
+-0.721338
+-0.559404
+0.439079
+-0.096487
+0.079662
+-0.952058
+0.432030
+-0.022523
+0.106887
+0.440806
+0.670983
+-0.784376
+-0.153430
+0.241797
+0.583417
+0.128589
+0.451848
+-0.510689
+0.020231
+-0.312946
+0.748626
+0.483657
+-0.003017
+-0.987100
+0.906924
+-0.412122
+-0.690670
+-0.744764
+0.173353
+0.141524
+0.602443
+0.155430
+0.425039
+0.358244
+0.864589
+0.408207
+-0.546625
+0.111068
+-0.114799
+-0.448799
+-0.108468
+0.468596
+-0.210003
+0.011756
+-0.079171
+-0.709718
+0.963468
+0.682471
+-0.573989
+-0.588205
+0.126914
+0.874116
+-0.397328
+0.364809
+-0.153492
+0.762549
+-0.732199
+0.421458
+0.172283
+-0.601856
+0.468754
+-0.222762
+-0.521925
+-0.313717
+0.718268
+-0.601736
+0.209085
+0.427091
+-0.751515
+-0.857610
+-0.374565
+0.752165
+-0.752864
+-0.349973
+0.698377
+0.584757
+0.458889
+0.929142
+0.817962
+-0.298993
+-0.679687
+0.569165
+0.330079
+0.279729
+0.273451
+-0.785467
+-0.036027
+-0.489632
+-0.787031
+0.481196
+0.278639
+-0.189490
+0.009973
+-0.610297
+0.794618
+0.240040
+0.633972
+0.797316
+-0.180218
+-0.201319
+0.981984
+-0.719884
+0.819229
+-0.322497
+-0.362868
+0.479415
+-0.487358
+0.705423
+-0.706428
+-0.114651
+0.054282
+-0.988618
+-0.438633
+-0.559435
+-0.743607
+0.989022
+-0.915052
+0.652298
+0.903856
+-1.017051
+-0.885706
+-0.917482
+0.239535
+0.162487
+-0.724317
+0.512894
+-0.586459
+0.875177
+-0.889264
+-0.643362
+-0.394390
+-0.491595
+0.011517
+0.948224
+-0.614983
+-0.832241
+-0.124814
+0.462314
+0.095190
+-0.443705
+0.850389
+0.501832
+-0.918956
+-0.440157
+0.660201
+-0.480347
+0.295436
+0.023099
+0.526207
+0.742382
+-0.037537
+-0.270966
+0.463294
+-0.152743
+0.423859
+0.932505
+0.910120
+0.051268
+-0.805820
+0.889264
+0.888263
+-0.881464
+-0.438398
+0.095646
+0.772248
+0.655021
+-0.719014
+-0.738125
+-0.894025
+-0.579902
+-0.705619
+0.843640
+0.610310
+-0.286090
+0.043149
+-0.091168
+-0.380982
+-0.255010
+0.717758
+0.296360
+-0.641910
+0.665241
+0.269364
+-0.298483
+0.972084
+-0.384689
+0.814036
+-0.131110
+0.319920
+-0.786936
+0.173749
+1.064485
+0.556453
+-0.964421
+0.423097
+0.206153
+-0.512947
+-0.049907
+-0.750754
+0.175512
+-0.486349
+0.914674
+-0.247536
+0.718931
+-0.743472
+-0.490799
+0.908698
+0.144928
+0.947549
+0.441292
+0.326665
+-0.677661
+-0.601450
+-0.747326
+-0.159942
+-0.090244
+-0.357997
+-0.034479
+-0.040734
+0.155585
+0.623370
+-0.406315
+0.680615
+0.864172
+0.075855
+0.369608
+0.275212
+0.262731
+-0.524308
+0.116480
+-0.468579
+-0.771458
+-0.819422
+-0.029891
+0.774399
+-0.128620
+-0.568299
+-0.741376
+-0.795485
+0.131772
+0.450748
+-0.317639
+0.111322
+0.253388
+-0.411974
+-0.528739
+-0.419912
+-0.713380
+-0.477403
+-0.727986
+0.446629
+0.792644
+-0.678888
+-0.560306
+0.666025
+-0.197968
+0.567035
+-0.054044
+-0.138636
+0.347024
+-0.829861
+-0.145905
+-0.545329
+0.933170
+0.175982
+0.876799
+0.600009
+0.253300
+0.002774
+0.564351
+-0.954888
+0.489537
+0.338072
+-0.477932
+-0.381078
+0.609958
+-0.260037
+-0.989302
+-0.166801
+-0.825469
+0.116959
+0.181710
+-0.429298
+0.515443
+-0.972181
+0.932424
+-1.062221
+0.540307
+-0.692701
+0.198727
+0.155351
+-0.349569
+1.004158
+0.370845
+0.108006
+0.664495
+-1.036325
+-0.515028
+-0.288871
+0.805166
+0.064243
+-0.960330
+0.853684
+-0.314089
+0.572167
+-0.279693
+0.911561
+-0.743853
+-0.651248
+0.776694
+-0.750634
+0.196696
+-0.630484
+-0.070692
+-0.161062
+0.065986
+-0.763630
+-0.762060
+0.918805
+-0.832244
+0.843539
+-0.466542
+-0.588688
+1.232106
+-0.501890
+-0.857234
+-0.940340
+-0.390267
+0.738056
+-0.810467
+0.165894
+0.197492
+-1.102655
+0.972878
+0.132449
+-0.221309
+0.738347
+0.710235
+-0.347040
+0.024083
+-0.490862
+0.980546
+-0.553417
+0.057057
+0.179976
+-0.511410
+-0.596483
+0.875136
+-0.859166
+0.499336
+0.545988
+0.944154
+0.332131
+0.985152
+-0.722843
+0.500809
+-0.169862
+-0.004403
+-0.496714
+0.142114
+-0.249569
+-0.292654
+0.690125
+-0.735014
+0.066529
+0.170718
+0.914223
+-0.864515
+0.022802
+-0.747789
+-0.813072
+0.241056
+0.030426
+0.036611
+0.856208
+0.362785
+-0.823774
+-0.749737
+-0.469674
+-0.116808
+-0.586269
+-1.092508
+-0.108346
+-0.362498
+0.564110
+0.018368
+0.350394
+0.271938
+0.714799
+-0.403579
+0.226816
+0.320818
+-0.835000
+0.776520
+-0.799844
+-0.548451
+0.054939
+0.540283
+-0.895460
+0.134521
+-0.224910
+0.766082
+-0.386772
+-0.269656
+-0.938562
+-0.464511
+-0.276254
+0.711676
+0.392404
+0.434661
+0.659265
+0.661045
+0.085931
+-0.725458
+0.401365
+-1.014312
+-0.372921
+0.879938
+0.382706
+0.921794
+0.500989
+-0.620249
+-0.477751
+0.891385
+-0.240328
+0.649677
+0.025106
+-1.039876
+0.919662
+-0.391196
+-0.923947
+-0.102998
+-0.756698
+0.568697
+0.526346
+-0.995016
+-0.859658
+-0.976790
+-1.037246
+-0.239788
+-0.481248
+0.480162
+-0.930810
+0.956249
+-0.320067
+-0.397018
+-0.218302
+-0.468394
+0.385157
+-0.327447
+-0.462253
+-0.584024
+-0.189046
+-0.402053
+-0.986646
+0.669513
+0.680191
+-0.311400
+0.839425
+-0.269764
+0.952189
+0.954397
+0.891555
+1.015794
+0.812305
+0.729194
+0.266224
+0.854830
+-0.088628
+-0.619245
+0.883896
+0.768231
+-0.441546
+-0.547677
+0.714500
+0.719324
+0.604714
+0.752533
+0.043133
+0.663604
+0.719705
+0.586253
+0.648778
+-0.547207
+0.899507
+-0.706093
+-0.952179
+0.659273
+0.131630
+-0.068530
+-0.024676
+-0.727734
+-0.483196
+0.689556
+0.004026
+-0.143176
+-0.570361
+0.544997
+0.159950
+0.452204
+-0.772099
+-0.746758
+-0.595295
+0.657144
+0.763432
+0.737521
+-0.741814
+0.306044
+0.957593
+-0.619124
+0.451136
+0.004365
+0.992573
+-0.902252
+-0.411524
+-0.835067
+-0.754632
+0.471230
+-0.835696
+0.549631
+0.271591
+0.513652
+0.484033
+-0.411463
+0.755901
+0.071839
+-0.910121
+0.297546
+0.832619
+0.493045
+0.102797
+-0.138843
+0.010216
+0.480902
+-0.721644
+-0.775299
+0.398400
+0.719016
+0.370332
+0.613153
+0.131343
+-0.328774
+-0.063944
+-0.770481
+0.637886
+-0.997796
+0.881133
+0.864136
+-0.522599
+0.121660
+-0.311245
+-0.055640
+-0.139874
+0.653389
+0.204464
+0.564533
+-0.298713
+1.041133
+0.491100
+-0.532302
+-0.314450
+0.350858
+-0.306377
+0.329554
+-0.462515
+-0.404080
+0.673082
+0.260146
+0.760919
+0.291505
+-0.898856
+-0.736886
+0.586270
+-0.920379
+-0.769605
+0.635826
+0.544657
+0.041830
+-0.752170
+-0.187777
+1.035892
+0.308898
+0.499428
+-1.041138
+-0.973132
+-0.982303
+0.825042
+-0.670596
+0.926478
+-0.847161
+0.520999
+-0.933542
+0.134369
+0.331192
+-0.934300
+0.502670
+0.738625
+0.862143
+0.072744
+-0.278636
+0.833503
+-0.941789
+-0.464294
+0.936700
+-0.465790
+-0.787148
+0.875536
+0.531411
+0.863285
+0.068223
+-0.985735
+0.843716
+0.725844
+0.813741
+-0.831921
+-0.666289
+0.912836
+-0.188613
+0.299639
+-0.779292
+-0.538207
+0.927565
+-0.816847
+0.619843
+-0.584300
+-0.564474
+-0.069130
+0.095803
+0.299032
+0.369187
+0.393892
+-0.328993
+0.122799
+0.464820
+-0.080327
+-0.704123
+0.022099
+0.623468
+0.541783
+0.094869
+0.497338
+0.943246
+0.304707
+0.835664
+-0.076508
+-0.822754
+-0.203345
+0.123537
+0.450177
+-0.222388
+0.762919
+-0.409654
+0.508138
+-0.262858
+-0.749106
+0.691543
+0.856219
+0.216736
+-0.555894
+-0.453632
+-0.961072
+-0.587900
+-0.011557
+-0.462375
+-0.414512
+-0.591694
+0.209220
+0.113691
+-0.265327
+-0.639488
+-0.189233
+-0.198048
+-0.331326
+0.014463
+0.511454
+-0.468695
+0.163199
+0.489701
+-0.303097
+-0.805227
+-0.117002
+-0.770212
+-0.216440
+0.629665
+-0.320901
+0.841737
+-0.388869
+-0.116577
+0.593967
+-0.662648
+-0.569562
+0.426637
+-0.091228
+-0.733318
+0.756662
+-0.991234
+0.884478
+0.275902
+0.676976
+-0.169911
+-0.045735
+-0.523711
+0.519575
+-0.056512
+0.558420
+0.709948
+0.939715
+0.560296
+0.443971
+-0.683108
+0.229745
+-0.220221
+0.677986
+-0.743858
+-0.180404
+-0.575583
+-0.086077
+-0.234186
+0.820000
+0.988097
+-0.837445
+0.304992
+0.017799
+-0.234584
+0.250000
+0.206305
+-0.373810
+-0.150419
+0.270006
+0.158591
+-0.455380
+-0.273048
+-0.429456
+-0.143206
+0.955728
+-0.314622
+0.949680
+-0.179685
+-0.866516
+0.178474
+0.073031
+1.014976
+0.525748
+0.386141
+-0.678773
+-0.682465
+-0.562926
+-0.743061
+0.884929
+0.398684
+-0.417500
+0.960894
+-1.014862
+-0.777222
+-0.322527
+-0.247694
+0.117433
+0.868027
+1.029618
+0.171165
+0.251349
+0.679515
+0.300001
+-0.131899
+-0.590357
+0.419079
+0.597104
+0.817349
+-0.492742
+0.417789
+0.743134
+0.111024
+0.037464
+-0.707332
+0.265998
+0.859542
+0.627264
+0.740924
+0.098065
+0.505768
+-0.584159
+-0.897504
+1.025863
+-0.207001
+-0.407431
+0.623609
+-0.057854
+-0.776756
+0.286208
+0.297049
+0.310428
+0.750094
+0.725286
+-0.252846
+0.101813
+0.380871
+-0.525761
+-0.703905
+0.968349
+0.554083
+0.639300
+0.269060
+0.904383
+0.880472
+0.453189
+-0.831202
+0.835620
+0.890683
+0.717244
+0.220865
+0.615669
+-0.152304
+0.724810
+0.202389
+0.557611
+-0.379632
+-1.071863
+0.186831
+0.616063
+0.044766
+-0.766304
+0.489684
+-0.277053
+0.820811
+0.300200
+-0.220185
+0.418639
+-0.111918
+-0.426539
+-0.537694
+-0.975741
+0.166525
+-0.532130
+-0.407233
+0.896133
+-0.574652
+-0.870113
+1.000696
+-0.097987
+-0.424029
+0.907413
+-0.553554
+0.318844
+0.905953
+-0.653402
+0.384281
+-0.652145
+0.783978
+-0.636401
+0.817108
+0.136389
+-0.221458
+-0.043401
+-0.493596
+-1.014324
+0.456195
+-0.919909
+0.709582
+-0.013007
+-0.160416
+-0.082024
+-0.019265
+-0.042373
+-0.317574
+0.019061
+0.647351
+0.539808
+-0.649501
+0.507991
+0.167759
+0.373503
+0.661279
+0.048189
+0.445737
+-0.521316
+0.783757
+0.628995
+-0.187193
+0.732416
+0.232928
+0.844741
+0.262304
+-0.120643
+-0.620616
+-0.057421
+0.462624
+-0.583306
+0.350439
+0.429167
+-0.067272
+-0.890310
+-0.009272
+0.592390
+0.786504
+0.202504
+-0.422137
+0.635924
+-0.976870
+-0.136003
+0.739498
+-0.050151
+0.056323
+0.800016
+0.915498
+-0.777219
+0.391000
+-0.434277
+0.421668
+-0.637714
+-0.920430
+0.632524
+-0.292114
+1.091314
+-0.780647
+0.282147
+-0.262676
+-0.868749
+0.042175
+0.353024
+-0.427325
+0.501708
+-0.444030
+-0.798338
+0.423686
+-0.380711
+-0.326723
+-0.013763
+-0.742208
+-0.548094
+-0.547890
+-0.701027
+0.060170
+-0.262264
+0.057440
+-0.434924
+0.599327
+-0.762151
+0.075993
+0.313430
+-0.221102
+0.563276
+-0.481981
+0.779867
+-0.691146
+-0.615247
+-0.226049
+0.090393
+-0.485817
+-0.456402
+0.831662
+0.500988
+0.285764
+-0.799499
+-0.090791
+-0.048846
+0.833642
+-0.763536
+0.318488
+-0.490712
+0.122449
+0.629518
+0.075841
+1.041198
+0.563718
+-0.776002
+-0.158179
+0.708456
+0.806409
+-0.197435
+0.190453
+-0.443115
+0.684522
+0.443771
+-0.740270
+-0.448565
+-0.328730
+0.005587
+0.397226
+0.083626
+-1.014948
+-0.849166
+0.490309
+-0.130851
+-0.239701
+-0.587358
+-0.684527
+0.067031
+0.666099
+0.089125
+0.084812
+0.454183
+0.469280
+-0.810914
+-0.429978
+0.408457
+-0.661745
+0.144652
+0.885585
+0.815251
+-0.768006
+0.749954
+-0.579092
+0.987448
+-0.489037
+0.712359
+0.333194
+0.543348
+-0.327673
+-0.850905
+-0.933770
+0.580626
+-0.983413
+0.793268
+0.788890
+-0.614223
+0.217826
+-0.021696
+0.349521
+-0.453673
+1.003559
+-0.056936
+-0.540267
+0.861447
+-0.371617
+-0.044531
+0.769989
+-0.540731
+-0.510699
+-0.806361
+0.441510
+-0.166113
+-0.682173
+0.342664
+-0.618668
+0.152340
+-0.746687
+0.219867
+-0.425129
+0.834920
+-0.682910
+-0.454706
+0.756622
+-0.904069
+-0.342065
+-0.636836
+-0.151272
+0.288487
+0.024364
+0.058283
+-0.701508
+-0.546840
+0.325352
+-0.123180
+0.473563
+-0.468271
+0.863724
+-0.822069
+0.461469
+0.449315
+-1.009830
+0.027703
+-0.705342
+-0.926417
+0.923042
+0.034696
+0.896382
+-0.930528
+0.449212
+0.041641
+-0.837345
+-0.855899
+-0.691200
+0.986889
+-0.059440
+-0.129119
+0.210190
+-0.235201
+0.980057
+-0.383332
+0.419522
+-0.700387
+-0.084886
+0.440446
+0.344283
+0.264839
+0.267358
+0.608593
+0.978954
+-0.862433
+-0.825800
+-0.355720
+-0.400819
+0.654525
+-0.704413
+-1.010719
+-0.577212
+-0.129950
+-0.464027
+0.209454
+0.944358
+0.721344
+0.698274
+0.472224
+0.378666
+-0.909275
+0.766249
+-0.733792
+0.849769
+0.852207
+1.032729
+0.367013
+-0.620787
+-0.096968
+-0.286211
+0.712863
+0.488284
+0.186823
+0.562033
+0.080828
+0.632220
+0.370083
+-0.367234
+-0.463425
+0.669533
+0.623215
+-0.696078
+0.170195
+0.357251
+0.457910
+-0.159089
+-0.612165
+-0.747346
+0.723981
+-0.413783
+-0.562788
+0.252365
+-0.208542
+0.725111
+-0.087289
+-0.221959
+-0.027252
+0.134445
+-0.873687
+0.641219
+-0.939177
+0.826858
+-0.945056
+-0.992466
+0.344470
+-0.714583
+-0.217906
+0.285132
+0.616960
+0.398536
+0.617419
+-0.658117
+0.842508
+0.505033
+0.078655
+-0.262433
+-0.245750
+-1.017899
+0.449226
+-0.218070
+0.408412
+-0.649432
+-0.102710
+-0.536554
+-0.144464
+0.217162
+-0.832305
+-0.107272
+-0.796509
+0.406609
+-0.922439
+-0.812796
+-0.685138
+-0.594779
+-0.902205
+-0.845312
+0.841588
+0.043609
+-0.766973
+-0.025789
+-0.854114
+-0.976420
+0.392046
+-0.367463
+0.445039
+-0.736093
+-1.057425
+-0.441602
+-0.728701
+0.810451
+0.629105
+-0.411417
+0.199618
+0.890637
+0.079819
+0.001358
+0.926168
+0.517368
+0.451460
+0.191015
+-0.065147
+0.870559
+-0.423823
+0.961494
+-0.638325
+-1.019192
+0.423935
+0.256261
+-0.395728
+0.522547
+0.126644
+-0.180328
+0.626174
+0.046329
+0.834631
+0.093838
+-0.106357
+0.926725
+0.376568
+-1.080094
+0.692786
+0.045286
+0.851836
+-0.805738
+-0.868046
+0.638171
+-0.459706
+0.740415
+0.109042
+0.576061
+0.479168
+0.205656
+-0.845132
+0.164370
+-0.704947
+-0.823023
+0.855357
+-0.649476
+0.734526
+0.511326
+0.247917
+0.506739
+-0.299126
+-0.716407
+-0.156214
+0.300946
+0.377585
+-0.067167
+-0.324924
+0.288246
+0.529531
+-0.111620
+1.010226
+0.967262
+-0.351279
+-0.622987
+-0.404539
+0.259998
+-0.018717
+0.753389
+-0.980318
+0.346083
+-0.547509
+0.986964
+-0.699715
+0.911226
+-0.014835
+0.100867
+-0.020239
+-0.473678
+-0.366017
+0.175884
+-0.707788
+-0.141792
+-0.561870
+0.709760
+0.430648
+-0.809967
+0.847616
+0.909443
+-0.848819
+0.082317
+0.641980
+0.055943
+0.495307
+0.910782
+0.367502
+-0.753336
+-0.120917
+0.874052
+0.685658
+-0.294280
+0.753366
+0.291094
+-0.212091
+-0.882514
+0.062483
+0.049185
+-0.725350
+-1.038650
+-0.382567
+-0.408925
+-0.118200
+0.087065
+0.243604
+-0.861677
+-0.298377
+0.612899
+-0.608445
+0.597009
+0.874049
+0.662839
+0.308890
+-0.057448
+0.380477
+-0.176324
+-0.537106
+0.818997
+-0.878576
+-0.800493
+0.464559
+0.252339
+1.100446
+0.300914
+-0.037147
+-0.022931
+-0.784414
+-0.500997
+-0.853927
+-0.322138
+-0.631867
+-0.612645
+-0.147772
+0.643722
+-0.704261
+0.030276
+0.339814
+0.969422
+0.329595
+-0.194473
+0.203079
+-0.872332
+0.727500
+-0.649043
+-0.437521
+-0.891798
+-0.480652
+-1.016508
+-0.313456
+0.572200
+-0.333758
+0.572114
+-0.933594
+-0.240471
+-0.723791
+-0.379040
+-0.248603
+-0.598107
+-0.478706
+0.481667
+0.451360
+-0.739225
+-0.328634
+0.281974
+0.458094
+-0.758134
+0.925888
+-0.196807
+0.369437
+0.904759
+-0.835729
+0.009300
+0.597200
+1.108966
+-0.602077
+0.817035
+0.585207
+-0.124458
+-0.775843
+0.597721
+-0.401312
+0.476127
+-0.875737
+-0.487199
+0.064448
+-0.932957
+-0.890217
+-0.469698
+0.246015
+0.348890
+0.621206
+0.647552
+-0.341789
+-0.364605
+0.464756
+0.337817
+-0.387444
+-0.656473
+-0.931911
+0.429996
+-0.565846
+0.339290
+-0.011669
+0.199443
+0.626512
+-0.383947
+-0.999300
+0.524847
+-0.018402
+-0.017295
+0.519145
+-0.693581
+0.134068
+0.634737
+-0.595707
+0.943566
+0.025030
+-0.917569
+0.865968
+-0.807905
+-0.753082
+0.037596
+0.142789
+0.572805
+-0.703791
+-0.824418
+-0.874815
+0.111424
+0.996046
+-0.522083
+0.145425
+-0.743411
+-0.412928
+-0.675346
+0.406190
+0.521036
+-0.207061
+-0.764693
+0.732785
+0.513451
+0.930119
+-0.360939
+0.023593
+-0.815303
+0.496082
+1.007318
+0.343108
+0.637171
+0.713346
+0.073646
+0.489050
+0.980741
+-0.540145
+0.812446
+-0.429473
+-0.536111
+0.137622
+0.012864
+-1.029519
+0.338725
+0.165939
+0.030365
+0.233403
+0.533842
+0.573296
+0.311685
+-0.173597
+-0.628630
+-0.805768
+0.548097
+0.981041
+0.384940
+-0.894531
+0.417099
+0.843691
+0.288951
+0.067426
+0.601069
+0.303581
+-0.264881
+-0.492022
+0.682359
+0.892442
+-0.223510
+0.445283
+-0.262633
+-0.119574
+0.346117
+0.091668
+1.004600
+-0.665180
+0.845458
+1.015278
+-0.384667
+-0.662302
+0.842947
+-0.842939
+-0.432082
+-0.382877
+0.769413
+-0.118829
+-1.006168
+0.819146
+-0.946554
+0.744379
+0.442735
+0.077866
+0.232729
+0.708864
+0.839258
+-0.979463
+0.755654
+-0.167425
+-0.281634
+0.427289
+0.822271
+0.857940
+0.206258
+-0.108229
+-0.907789
+-0.848548
+-0.896432
+-0.353753
+0.753587
+-0.929587
+0.737529
+0.136213
+0.788531
+-0.255955
+-0.081824
+-0.367768
+-0.078794
+-0.479654
+-0.082639
+0.749753
+0.842000
+0.354761
+-0.506834
+-0.791006
+0.922904
+0.953325
+0.412293
+-0.909170
+1.091500
+-0.805915
+0.276306
+0.670568
+-0.208903
+0.841557
+-0.180972
+-0.414702
+-0.965994
+0.379852
+-0.134898
+0.371688
+0.228335
+-0.160552
+-0.116412
+0.844314
+-0.007671
+0.600809
+-0.264713
+0.410792
+0.618162
+-0.202611
+0.625903
+0.399313
+0.711804
+0.921020
+0.049994
+0.357547
+-0.641272
+-0.097973
+-0.197518
+0.663350
+0.012342
+-0.360349
+-0.780142
+-0.347024
+0.652500
+-0.319612
+0.519452
+0.536330
+-0.154576
+-0.289671
+-0.470922
+-0.261229
+0.409843
+-0.066009
+0.541270
+-0.405409
+-0.541060
+0.725406
+0.605616
+0.225578
+0.134849
+0.848506
+-0.121882
+-0.440726
+0.348948
+-0.275850
+-0.039522
+-0.695042
+0.828692
+0.937303
+-0.749276
+-0.093094
+0.458405
+-0.140116
+-0.072762
+-0.882541
+0.264339
+-0.866447
+0.660323
+-0.536073
+-0.383281
+-0.497992
+-0.106149
+0.316749
+-0.642838
+0.221450
+0.313536
+0.491975
+0.591238
+-0.910383
+0.233937
+-0.836474
+0.524767
+-0.236364
+0.795370
+0.228318
+0.744977
+-0.979414
+0.404604
+0.341602
+-0.060829
+-0.159173
+-0.354794
+-0.862700
+-0.974189
+0.357849
+0.415157
+-0.573222
+0.821628
+0.399811
+-0.818316
+0.529727
+-0.135707
+0.962576
+0.259402
+0.214528
+-0.261747
+-0.046886
+0.495457
+-0.974496
+-0.010869
+0.014892
+-0.984304
+-0.296664
+-0.339388
+-0.148647
+-0.160107
+0.390818
+0.010406
+0.439358
+0.286190
+0.377666
+-0.853267
+-0.533184
+0.533492
+-0.241067
+-0.190157
+-0.781780
+0.275788
+-0.263047
+-0.580952
+-0.412110
+0.262558
+0.056280
+-0.431948
+-0.685080
+-0.650484
+0.354274
+-0.440620
+0.352627
+-0.542308
+-0.405082
+-0.563221
+-0.476882
+0.438448
+-0.446855
+-0.419075
+0.456403
+-0.891633
+-0.011088
+0.326605
+-0.863592
+-0.342099
+-0.062592
+0.238768
+-0.514866
+-0.981133
+0.100777
+0.432833
+-0.000031
+-0.189040
+-0.416510
+0.813059
+-0.991451
+0.529822
+-0.768293
+0.398073
+0.692192
+0.915043
+-0.128749
+0.469698
+-0.640472
+-0.343506
+-0.942264
+-0.052907
+0.577427
+0.004044
+-0.525176
+1.051285
+0.911629
+0.799077
+0.203074
+0.156812
+-0.784323
+-0.479225
+-0.416341
+-0.305060
+0.122323
+0.743365
+-1.041819
+0.129749
+0.753909
+-0.055729
+0.548779
+0.607150
+0.600237
+0.728933
+-0.161967
+-0.613514
+-0.881744
+0.450711
+-0.457381
+-0.304146
+0.446258
+-0.813012
+0.027311
+0.732294
+-0.776007
+-0.465105
+-0.915528
+-0.044760
+0.667822
+-0.213946
+-0.146924
+-0.101497
+0.757504
+0.293673
+0.513432
+-0.399601
+-0.621009
+-0.920792
+0.283225
+-0.649627
+0.508667
+0.044810
+0.425140
+-0.970661
+-0.524344
+-0.157446
+0.604356
+0.225054
+-0.931936
+0.585378
+-0.572207
+-0.611887
+0.254338
+-1.075828
+-0.632089
+0.445148
+0.831950
+0.564909
+-0.807700
+-0.039735
+-0.032005
+-0.710446
+-0.245103
+-0.335804
+0.143329
+0.004195
+0.180011
+0.400829
+-0.238607
+-0.267268
+-0.135109
+0.365061
+-0.280951
+0.864025
+0.262331
+0.363596
+-0.947244
+-0.148925
+-1.008530
+-0.517948
+0.421019
+-0.732389
+-0.580431
+0.021754
+0.997383
+-0.177567
+-0.620314
+0.102607
+0.679657
+-0.537388
+-0.726820
+-0.521290
+0.304615
+0.755795
+0.329917
+-0.578726
+0.268940
+0.314198
+0.511841
+-0.530743
+-0.577848
+0.933056
+0.893996
+0.155360
+-1.043429
+-0.148093
+-0.425291
+0.163407
+-0.723925
+0.901260
+-0.618033
+0.145097
+0.369646
+0.517486
+0.136006
+0.062052
+0.384089
+0.957930
+-0.736953
+0.568117
+-0.116856
+0.077222
+0.445606
+0.870823
+0.257579
+0.583464
+0.630391
+0.267384
+-0.273139
+0.945266
+-0.530342
+0.002499
+0.057510
+0.505804
+0.266455
+-0.208245
+-0.396760
+-0.069009
+-0.570619
+0.543259
+0.532462
+-0.934972
+-0.281905
+-0.552096
+-0.389917
+0.276528
+-0.056406
+0.352901
+-0.759007
+0.885372
+0.015432
+-0.215056
+0.721902
+-0.353063
+0.027028
+0.738172
+-0.335964
+0.344820
+0.740072
+-0.634327
+0.215753
+-0.269378
+-0.356080
+0.786630
+-0.642574
+-0.273124
+0.557422
+1.003856
+0.856722
+-0.273768
+-0.041430
+-0.891367
+1.044740
+0.267898
+-0.115789
+0.633440
+-0.591687
+-0.589800
+-0.392325
+-0.964928
+0.217196
+-0.627334
+0.032406
+-0.228674
+-0.743721
+-0.772520
+-0.954815
+0.787377
+-0.852635
+0.942826
+-0.919600
+-0.040025
+0.402349
+-0.029750
+0.600851
+0.284503
+-0.776825
+0.912271
+-0.831653
+-0.187987
+0.617415
+0.230462
+-0.445949
+-0.786558
+-0.347048
+-0.881392
+0.438655
+0.141458
+0.046937
+0.593955
+-0.114667
+-0.530771
+-0.822717
+-1.043132
+-0.527888
+0.702913
+0.165045
+-0.441019
+-0.737989
+0.187225
+-1.053826
+0.398985
+0.563851
+-0.395302
+0.738210
+-0.189242
+0.129699
+-0.283736
+-0.474271
+0.434898
+-0.732306
+-0.334712
+0.646368
+0.457077
+0.042235
+-0.501074
+0.996996
+0.135966
+-0.130348
+0.295849
+-0.621885
+-0.407579
+0.925941
+0.929508
+0.412719
+-0.111796
+0.690609
+-0.026214
+-0.119703
+0.928879
+0.203326
+-0.974268
+0.758928
+-0.274789
+0.484698
+-0.774117
+-0.218348
+-0.991777
+0.533067
+-0.536824
+0.113658
+-0.519570
+-0.796700
+-0.378449
+-0.835246
+0.526025
+0.375983
+-0.457887
+0.189394
+-0.297446
+0.965739
+0.668201
+0.743026
+-0.726856
+-0.760859
+0.663535
+0.263690
+0.224022
+-0.014513
+0.574275
+0.784175
+0.115774
+0.860083
+-0.552847
+-0.026834
+0.611279
+-0.257705
+0.327332
+0.434212
+-0.193983
+0.189410
+-0.602539
+0.611069
+-0.232250
+-1.062586
+-0.737509
+0.978888
+-0.238529
+0.590992
+0.318116
+-0.599253
+-0.444690
+0.524954
+-0.189142
+-0.480368
+0.477463
+0.116835
+-0.500746
+0.857354
+0.387958
+0.795840
+0.900479
+-0.656864
+-0.817724
+-0.442032
+-0.866026
+-0.663033
+0.408128
+-0.249704
+0.148356
+-0.301042
+0.564394
+0.016234
+0.641269
+-0.937997
+-0.629454
+0.747384
+-0.065331
+-0.605421
+0.789658
+-0.417745
+0.665941
+-0.080121
+-0.001977
+-1.068987
+0.282789
+0.554074
+0.378278
+-0.421488
+-0.940335
+-0.390368
+-0.101899
+-0.022060
+-0.693894
+-0.976001
+-0.354890
+-0.555378
+0.463396
+0.361803
+0.122130
+0.677886
+-0.212237
+0.474254
+0.685832
+0.149903
+0.419096
+0.223985
+-0.425362
+-0.430411
+-0.394201
+-0.588871
+0.996249
+0.686168
+0.809026
+-0.820360
+0.985634
+-0.152805
+0.654721
+-0.366672
+0.752175
+-1.001955
+-0.616316
+0.230672
+-0.141587
+0.725801
+-0.352886
+-0.574177
+-0.468667
+0.734594
+0.433853
+-0.235198
+0.973020
+-0.607495
+-0.734576
+0.033788
+0.956129
+0.158398
+-0.859466
+0.033479
+-0.063876
+-0.500277
+-0.590203
+0.748550
+0.746037
+-0.552257
+0.307113
+0.103710
+-0.190426
+0.554352
+-0.576971
+0.235171
+0.989302
+-0.395849
+-0.707138
+-0.533670
+-0.774541
+-0.498268
+-0.963395
+-0.937423
+-0.269234
+0.992488
+0.402256
+-0.038964
+-0.761370
+0.625020
+-0.574145
+-0.495365
+0.173365
+0.063051
+-0.326136
+-0.746327
+-0.801319
+-0.342145
+-0.601277
+0.084373
+0.558931
+-0.128366
+-0.465668
+-1.014488
+0.828664
+-0.303420
+-0.438664
+-0.233632
+-0.261947
+-0.751902
+0.678714
+-0.670128
+0.639956
+-0.206487
+-0.435067
+-0.129235
+0.844858
+0.802252
+0.535569
+-0.109425
+-0.382564
+0.066374
+0.251799
+-0.246646
+-0.135781
+-0.706127
+0.234852
+0.552434
+0.460996
+-0.012885
+-0.850627
+0.074397
+0.614296
+-0.932542
+-0.176036
+0.505591
+-0.760324
+0.673322
+-0.174920
+-0.964202
+0.901506
+-0.858706
+-0.838914
+-0.495095
+-0.908709
+0.451794
+-0.199198
+-0.102358
+0.913115
+-0.405078
+-0.655626
+-0.694736
+-0.665872
+0.079772
+0.123113
+0.325871
+0.762339
+0.188829
+0.800326
+-0.034676
+0.934895
+0.358932
+0.478102
+-0.240136
+0.016725
+0.757867
+-0.890277
+-0.264667
+0.832813
+-0.802474
+-0.115652
+-0.228285
+-0.291851
+1.038696
+0.107968
+-0.235816
+0.756012
+0.300791
+0.880176
+-0.132329
+0.151901
+0.713857
+0.244325
+0.781097
+0.381617
+0.863644
+0.378746
+-0.120804
+-0.229776
+0.499730
+-0.385228
+0.575668
+0.887535
+-0.129139
+0.463905
+0.729997
+-0.147854
+0.762534
+0.759174
+-0.313836
+-0.963191
+0.751547
+0.610161
+-0.893291
+0.354635
+-0.353292
+-0.576431
+0.401198
+-0.237709
+-0.400222
+-0.442164
+-0.802462
+0.779076
+-0.134551
+0.736405
+-0.111027
+0.703965
+-0.362053
+0.948216
+0.164809
+-0.662636
+-0.548071
+-0.347427
+0.352171
+-0.028732
+-0.171165
+0.456740
+-0.812623
+-0.592165
+-0.692778
+0.024788
+0.143152
+0.160283
+0.407383
+-0.598316
+0.113088
+-0.585446
+0.538580
+0.544259
+0.830372
+0.874133
+1.018688
+-0.622594
+-0.102374
+0.184108
+0.255756
+0.139641
+-0.985157
+-0.582855
+-0.613094
+0.756473
+-0.721172
+-0.320663
+-0.797959
+0.425275
+0.317100
+0.313541
+-0.700531
+0.196159
+0.148219
+0.338881
+-0.023757
+-0.163575
+0.877693
+0.325377
+0.016514
+-0.208690
+-0.802595
+0.764886
+-0.308303
+0.371636
+0.962926
+0.752229
+0.425041
+-0.379885
+0.229150
+-0.800265
+-0.003722
+0.653723
+0.407684
+0.437832
+0.409310
+0.422896
+-0.421698
+-0.185303
+0.947184
+0.589038
+-0.780837
+0.091141
+0.030474
+-0.162350
+0.831334
+-0.084837
+0.981112
+-0.785750
+-0.617779
+-0.828150
+0.880318
+0.622476
+-0.198730
+-0.232166
+-0.645348
+-0.491907
+0.979211
+-0.010404
+-0.303191
+-0.595644
+-0.782319
+-0.483459
+-0.604912
+-0.510913
+-0.843231
+-0.164111
+0.168551
+0.856821
+0.253093
+-0.023634
+-0.028048
+-0.707371
+0.580187
+-0.568337
+0.932676
+-0.828767
+0.454754
+-0.964168
+0.136409
+0.060609
+0.251962
+0.523571
+0.767079
+0.541891
+0.078979
+0.834765
+0.753055
+0.949952
+0.297848
+0.805400
+-0.582908
+-0.666242
+-0.718978
+0.993010
+-0.039778
+0.079991
+-0.819488
+-0.010755
+0.780823
+0.526244
+-0.126724
+-0.611791
+-0.385610
+-0.257275
+0.757421
+-0.424470
+-0.457154
+-0.508676
+0.218295
+0.313909
+0.994702
+-0.204968
+0.269693
+-0.749822
+-0.469213
+0.260473
+0.756606
+-0.248923
+0.013282
+-0.838404
+-0.151844
+0.492701
+-1.000125
+0.318638
+-0.274860
+-0.532263
+-0.757149
+-0.736907
+0.078380
+0.865162
+-0.369686
+-0.577564
+-0.767726
+0.580881
+0.803331
+0.872665
+0.049025
+0.849289
+0.724752
+-0.039489
+-0.830678
+0.381653
+0.868387
+0.618017
+0.256086
+-0.003113
+-0.250864
+0.242041
+-0.549237
+-0.364923
+-0.607631
+0.452798
+-0.494040
+0.942401
+0.759355
+0.388324
+0.873608
+0.274287
+0.713398
+0.229607
+0.015178
+-0.802478
+-0.580581
+-0.905216
+0.306295
+-0.033901
+-0.555298
+-0.971826
+0.604658
+-0.909779
+0.383271
+-0.853049
+0.496029
+0.273362
+0.861030
+-0.245268
+-0.111204
+0.318240
+-0.358193
+0.834494
+0.429629
+0.844606
+0.679175
+-0.336946
+0.280191
+-0.833405
+0.113067
+0.359430
+-0.181337
+-0.814747
+0.331287
+-0.761150
+0.787107
+0.776085
+-0.910142
+0.310008
+-0.480803
+-0.166338
+-0.861378
+0.298643
+0.093245
+-0.482160
+0.580544
+0.048109
+0.605945
+-0.294883
+-0.243330
+0.605060
+-0.226087
+-0.103319
+-0.622754
+0.735969
+-0.307934
+0.451236
+0.269486
+-0.944699
+0.653622
+-0.705468
+-0.160593
+0.085750
+-0.699260
+0.596545
+-0.013585
+0.782078
+-0.897555
+-0.217019
+-0.577546
+0.568271
+-0.705537
+0.386665
+0.331821
+0.136511
+-0.541978
+-0.538929
+0.344957
+-0.514663
+0.926161
+-0.608341
+0.871402
+-0.453797
+-0.700553
+-0.829634
+-0.783159
+0.947820
+-0.050784
+-0.184017
+-0.583145
+-0.292880
+0.485944
+0.132400
+0.877710
+0.081151
+0.093496
+0.206607
+0.713382
+-0.556879
+-0.593959
+0.599592
+0.017428
+0.624847
+0.864209
+-0.609598
+-0.127740
+0.402723
+0.141617
+0.463622
+-0.307794
+0.211760
+0.707846
+-0.411439
+-0.862553
+-0.456201
+-0.438879
+-0.024448
+0.937331
+0.234200
+0.312532
+-0.262079
+-0.267229
+0.553756
+0.555643
+0.599575
+0.745630
+0.586758
+-0.216243
+0.771571
+0.024010
+-0.810522
+-0.587982
+0.075706
+-0.483918
+0.661427
+0.076090
+0.864702
+-0.037292
+0.342298
+-0.651004
+-0.812365
+-0.945192
+-0.174603
+1.036700
+0.842383
+-0.023402
+-0.457924
+-0.802998
+0.788429
+0.194981
+0.612712
+0.060839
+0.735631
+-0.412538
+-0.431782
+0.372243
+0.396668
+0.535564
+0.344829
+-0.653323
+-0.349528
+0.079205
+0.612557
+0.974744
+0.298856
+0.373776
+-0.326226
+-0.138306
+0.595898
+0.726656
+-0.056209
+-0.425865
+0.631240
+0.965096
+-0.083422
+0.176090
+-0.894965
+0.867670
+0.040785
+0.108174
+-0.139352
+0.100273
+-0.745632
+-0.786122
+0.058205
+0.461266
+-0.493702
+0.514485
+-0.617859
+-0.546604
+0.805526
+-0.213289
+0.757849
+0.691987
+-0.529628
+-0.003828
+-0.567748
+0.791901
+-0.463887
+-0.275671
+0.856155
+0.675213
+-0.268897
+-0.494597
+0.710770
+0.168983
+-0.349908
+0.473467
+-0.092936
+0.240366
+-0.897242
+0.573631
+0.401330
+-0.129535
+-0.467742
+0.051986
+-0.207479
+0.264604
+-0.350673
+-0.275079
+0.831464
+-0.442141
+-0.223096
+0.659679
+0.310277
+0.637233
+0.153244
+0.150210
+0.870124
+0.469314
+-0.168155
+-0.515555
+-0.149933
+-0.309451
+-0.311765
+0.140865
+0.110056
+-0.579769
+0.636363
+0.695868
+0.207054
+-0.453490
+0.851680
+-0.103696
+0.070935
+0.597955
+-0.380870
+-0.442728
+0.101108
+-0.313128
+-0.177306
+-0.122964
+0.722992
+0.882538
+-0.753075
+0.363414
+-1.045608
+0.627582
+0.362850
+-0.015774
+-0.539095
+-0.532568
+0.453914
+0.463759
+0.712127
+-0.864964
+-0.096787
+-0.012045
+-0.061887
+0.106329
+0.575986
+0.609607
+0.576641
+1.007635
+0.411752
+0.541983
+-0.774277
+0.817426
+0.590381
+-0.428884
+-0.083101
+0.869079
+0.031247
+0.740206
+-0.936734
+0.724174
+-0.748605
+-0.321004
+0.209365
+-0.589753
+0.953909
+-0.670587
+-0.485120
+-0.492153
+-0.698296
+-0.594078
+-0.545450
+-0.526983
+-0.370729
+-0.002858
+0.986695
+0.672344
+0.726772
+-0.359321
+0.836956
+-0.697360
+-0.447598
+-0.521993
+0.197983
+0.184732
+-0.217571
+0.917644
+-0.819540
+-0.191408
+-0.653233
+-0.779598
+-0.867686
+0.724198
+0.049353
+-0.853186
+0.706259
+0.441747
+-0.851238
+0.538359
+0.270950
+0.556997
+0.500180
+-0.961713
+0.811530
+-0.571552
+-0.941151
+0.482659
+0.585641
+0.777886
+0.519872
+-0.635906
+-0.873744
+-0.176888
+0.385432
+-0.860448
+0.698099
+-0.802975
+-0.155268
+-0.353727
+-0.844873
+0.955124
+-0.227962
+0.628862
+-0.615717
+0.623874
+-1.032142
+-0.595297
+-0.901211
+-0.309839
+0.400723
+0.815800
+-0.699847
+0.123065
+0.531306
+-0.451629
+-0.432227
+0.388498
+-0.836636
+0.858700
+0.294712
+0.742025
+0.097264
+0.214749
+-0.352676
+0.675770
+-1.013240
+0.731048
+0.106987
+-0.166564
+0.318200
+-0.947271
+0.260100
+0.184959
+0.936705
+0.743068
+-0.546112
+0.221362
+0.443013
+1.058630
+0.327010
+0.599988
+-0.229416
+0.081632
+0.138298
+0.440728
+-0.722711
+0.524057
+-0.675908
+0.500519
+0.465461
+-0.132943
+0.526714
+0.195009
+-0.845260
+0.544982
+0.232142
+-0.335393
+0.640521
+-0.407897
+-0.653195
+1.016822
+0.143050
+-0.605881
+0.585168
+0.477632
+-0.783770
+0.754406
+-0.822909
+0.486091
+-0.770618
+-0.126870
+-0.748947
+0.247612
+-0.884507
+-0.495385
+0.226045
+-0.183052
+-0.148399
+-0.888261
+0.320068
+-0.692767
+0.336012
+-0.828555
+0.706500
+0.825270
+0.263015
+-0.067444
+0.660379
+0.307238
+-0.752024
+0.541992
+1.020612
+-0.524062
+0.572592
+-0.699954
+0.099493
+-0.392657
+-0.224027
+-0.218382
+-0.492435
+0.229749
+0.217081
+0.844017
+-0.624816
+0.509860
+-0.278827
+-0.119691
+-0.578509
+-0.978512
+0.502434
+0.550202
+0.060592
+-0.757376
+0.991689
+-0.302824
+-0.612830
+0.496882
+-0.719026
+-0.352769
+-0.230874
+0.869584
+0.872579
+0.258738
+-0.491652
+0.527618
+-0.758986
+0.763432
+-0.662129
+0.996551
+0.654663
+0.644510
+-0.383963
+-0.164065
+-0.945004
+-0.524596
+-0.047842
+-0.727102
+-0.072491
+0.703872
+-0.139953
+0.790241
+0.169450
+0.545830
+-0.592514
+-0.128019
+0.786455
+-0.521888
+0.696976
+-0.278315
+-0.722413
+0.897901
+0.533097
+-0.961240
+0.774039
+0.646687
+-0.065106
+0.281992
+-0.050142
+-0.643112
+0.840924
+-0.873594
+-0.923334
+0.071268
+0.808250
+0.691660
+0.527736
+-0.796617
+0.045653
+-0.976873
+-0.834961
+0.352960
+0.293475
+0.384398
+-0.466791
+-0.429955
+0.385786
+0.288772
+-0.876003
+0.496968
+-0.253343
+0.200816
+-0.118687
+0.600265
+-0.063929
+-0.367836
+-0.345752
+0.874150
+0.719365
+0.739064
+-0.869775
+0.666626
+-0.141327
+-0.411814
+-0.152596
+0.801085
+0.384805
+0.070009
+-0.972096
+-0.812188
+-0.450508
+0.684219
+0.454555
+-0.766652
+-0.753992
+0.473627
+0.451681
+0.205935
+-0.231593
+0.980538
+0.378630
+-0.390701
+0.866242
+-0.522414
+0.558821
+-0.394747
+0.190157
+-0.722137
+0.385000
+0.290265
+0.091418
+-0.635962
+-0.722722
+-0.925208
+0.140045
+-0.567938
+-0.324027
+-0.930951
+-0.052731
+-0.817097
+-0.027828
+-0.904828
+-0.809884
+-0.723945
+-0.371193
+-0.400439
+0.883507
+0.916204
+-0.982953
+-0.127550
+-0.828683
+0.600970
+0.438297
+0.989173
+0.186985
+0.650524
+0.624429
+0.945285
+0.184330
+-0.368177
+0.098571
+0.204504
+-0.500430
+-0.778181
+0.611877
+0.616880
+-0.039756
+-0.051812
+0.195884
+-0.064176
+-0.369197
+-0.748191
+0.419379
+0.282457
+0.360553
+0.718776
+-0.149905
+0.345924
+-0.724352
+-0.905795
+0.076651
+-0.214888
+-0.219851
+0.445846
+-0.235524
+0.219729
+0.664341
+0.336078
+-0.363400
+0.176429
+-0.176311
+-0.190270
+0.400257
+0.299823
+0.945310
+-0.250273
+0.181493
+-0.163149
+1.025842
+0.004271
+0.799805
+-0.495125
+0.269800
+1.051514
+0.879693
+0.220641
+-0.049890
+0.533092
+-0.162720
+-0.019973
+-0.284300
+-0.902624
+0.144096
+0.567907
+-0.016451
+-0.437038
+-0.677891
+-0.765416
+0.077125
+0.645023
+0.469589
+0.253563
+-0.364396
+-0.357119
+-0.849358
+0.083151
+-0.416436
+0.827167
+0.034006
+-0.016318
+-0.103550
+0.394633
+-0.508553
+0.668278
+0.643201
+-0.330322
+-0.575201
+0.323114
+-0.771131
+-0.236011
+0.018222
+-0.073822
+0.308789
+0.010373
+0.096440
+-0.003496
+0.735840
+0.824457
+0.011517
+0.338215
+-0.156988
+0.827897
+-0.902743
+-0.348378
+-0.556097
+-0.619031
+0.057885
+-0.363879
+-0.314969
+0.301406
+0.857492
+0.716102
+0.791387
+-0.647317
+0.432463
+0.067914
+0.319065
+0.336663
+0.614429
+-0.448312
+-0.208122
+0.493217
+0.820418
+0.057696
+0.352000
+-0.845853
+0.268226
+-0.286922
+-0.336913
+-0.455625
+0.806247
+-0.322871
+-1.022898
+0.027460
+-0.811020
+0.030205
+0.202339
+0.128329
+-0.833344
+-0.226090
+0.927390
+-0.078998
+0.497157
+-0.239935
+0.282314
+0.207190
+-0.625698
+0.947266
+-0.773621
+-0.650363
+0.714901
+0.285874
+-0.784460
+-0.966975
+0.078563
+-0.843184
+-1.051169
+-0.945847
+-1.020251
+-0.380325
+0.496272
+-0.975468
+-0.103838
+-0.490968
+0.336773
+-0.056750
+0.970165
+-0.702440
+0.900173
+0.432324
+-0.480592
+0.918065
+0.984300
+-0.627382
+-0.441217
+0.263881
+0.499730
+0.343066
+0.777267
+-0.485015
+0.809510
+0.699787
+-0.758947
+-0.213055
+0.131450
+-0.164177
+0.303500
+0.799603
+-0.782113
+-0.497055
+0.415533
+0.443858
+-0.266601
+0.106304
+0.784957
+-0.362014
+0.521673
+0.563272
+-0.329443
+0.245826
+1.029878
+-0.363824
+0.134271
+-0.891662
+0.420166
+0.815258
+0.126279
+0.661945
+0.724685
+-0.432708
+-0.328993
+0.182351
+-0.111605
+0.575284
+-0.692830
+-0.179370
+-0.955214
+0.895378
+-1.125910
+-0.346627
+0.348312
+-0.213387
+-0.795315
+0.624495
+0.251446
+0.505857
+1.077864
+0.932502
+-0.408235
+-0.165483
+0.374563
+0.228173
+0.075992
+-0.386524
+-0.031729
+0.174015
+-1.139005
+-0.212555
+0.780289
+0.195218
+0.850912
+-0.107456
+0.337702
+-0.613952
+-0.758295
+-0.762464
+0.082171
+-0.526084
+0.220570
+1.020634
+-0.731337
+0.172414
+-0.401055
+-0.645689
+0.207141
+-0.629439
+0.309459
+0.073214
+-0.973895
+0.466591
+0.070830
+0.155492
+0.091811
+-0.498269
+-0.395740
+0.921964
+0.925231
+-0.715860
+-0.750779
+-0.608438
+1.042412
+0.626188
+0.667444
+0.896809
+-0.853271
+0.294808
+-0.605806
+0.711296
+0.576380
+0.476597
+-0.423571
+0.865157
+-0.742357
+-0.739677
+-0.773479
+-0.828090
+0.227561
+-0.115211
+-0.868600
+0.508262
+-0.318369
+0.965779
+-0.416551
+-0.465265
+-0.604617
+0.005539
+0.774584
+-0.204264
+-0.869385
+-0.420592
+-0.635708
+-0.123216
+-0.632340
+0.751751
+-0.030110
+0.436982
+-0.614318
+-0.297514
+0.991408
+0.151324
+0.604750
+-0.591459
+-0.924802
+0.618078
+-0.817443
+-0.823500
+0.138046
+0.164087
+0.250223
+-0.288592
+-0.391424
+0.436299
+0.114531
+-0.616131
+0.920018
+0.958547
+0.285777
+-0.513545
+0.851307
+-0.645527
+-0.182091
+1.000511
+0.538560
+0.492210
+0.378797
+-0.312900
+0.957039
+-0.269239
+0.543095
+-0.247917
+0.318963
+-0.419383
+-0.268991
+-0.330739
+0.622679
+0.057219
+0.566262
+-0.451361
+-0.908049
+0.385041
+0.447777
+0.029808
+0.526481
+0.315295
+0.717042
+-0.189552
+-0.897867
+-0.154358
+0.889438
+0.565464
+0.431415
+0.848209
+-0.449757
+-0.744396
+0.396365
+-0.925983
+-0.113755
+0.601488
+-0.753037
+0.317073
+0.591859
+-0.155407
+-0.184382
+0.779655
+-0.867527
+0.775948
+0.986497
+0.193854
+0.470539
+0.869963
+1.039538
+-0.802461
+-0.516508
+-0.310751
+0.342312
+-0.446093
+0.662782
+0.671317
+-0.565965
+-0.184977
+-0.456720
+-0.759187
+-0.816648
+1.015000
+-0.080746
+0.711032
+-0.667492
+-0.521151
+-0.579667
+0.518869
+-0.742677
+0.274591
+-0.814197
+-0.752996
+-0.478760
+0.452768
+-0.095762
+0.801656
+-0.036717
+0.152052
+-0.451636
+0.646038
+0.340276
+-0.938141
+-0.179498
+-0.531177
+0.301504
+-0.080543
+-0.174998
+-0.023377
+-0.988717
+-0.447454
+-0.004368
+-0.557177
+-0.969373
+-0.546274
+-0.615764
+0.074222
+-0.567995
+-0.814239
+0.201460
+0.653720
+0.908648
+0.528469
+-0.611714
+0.272014
+0.665227
+0.485460
+-0.166027
+-0.352561
+-0.244075
+-0.679889
+-0.088904
+-0.409284
+-0.325642
+0.824380
+-0.881456
+0.779439
+-0.866728
+-0.773563
+0.199652
+0.481458
+-0.363122
+0.475907
+-0.788776
+-0.627352
+0.042940
+-0.711837
+0.764351
+-0.742252
+-1.041188
+0.862938
+-0.293819
+0.144984
+0.735321
+-0.772478
+0.250836
+-0.480413
+-0.302604
+0.349987
+-0.009877
+-0.083019
+0.394478
+0.438934
+0.061618
+-0.088934
+-0.922591
+-0.849643
+0.301457
+0.772473
+-0.283794
+0.642803
+0.409723
+0.163016
+0.783759
+-0.768046
+0.141316
+0.428074
+0.579230
+-0.031326
+-0.672892
+-0.467076
+0.768612
+-0.097697
+0.127854
+-0.846137
+0.238988
+0.191319
+-0.855732
+-0.265140
+-0.915617
+0.933098
+-0.660473
+-0.901064
+-0.275192
+-0.486661
+0.632773
+0.204412
+0.471934
+-0.633763
+0.707497
+-0.810936
+0.473452
+-0.330297
+-0.955454
+-0.871389
+0.655516
+0.361569
+0.308594
+0.603148
+0.187708
+-0.580488
+0.680558
+-0.094043
+0.026589
+0.471980
+-0.554088
+0.201121
+0.803752
+-0.129433
+0.888352
+-0.650870
+0.621525
+-0.008977
+0.107221
+-0.237313
+-0.497323
+0.847463
+-0.225136
+-0.543343
+0.075768
+-0.578297
+1.032401
+0.987115
+0.345115
+0.481233
+0.178861
+-0.340603
+-0.661670
+-0.045938
+-0.584720
+0.234205
+-0.726482
+-0.028655
+-0.289090
+-0.025365
+0.645795
+-0.376066
+0.100626
+-0.993517
+-0.717269
+-0.002147
+0.540335
+0.484479
+-0.231948
+-0.477830
+-0.555902
+0.084140
+0.899815
+-0.427295
+-0.056377
+-0.211754
+-0.337658
+-0.995347
+-0.226021
+0.360522
+0.285009
+-0.622550
+0.071721
+-0.758154
+0.268033
+0.356530
+-0.462746
+-0.322054
+0.920401
+0.097201
+-0.052054
+0.573175
+-0.059771
+-0.689136
+0.149757
+-0.750806
+-0.523286
+0.790902
+-0.079712
+0.897555
+0.143165
+0.186146
+-0.354774
+0.108785
+-0.352557
+0.718567
+0.100303
+0.551145
+-0.946901
+0.290589
+0.555507
+-0.142626
+0.886436
+0.653154
+0.180222
+-0.523330
+0.097665
+0.125413
+-0.764890
+-0.715964
+0.669919
+-0.690834
+0.942598
+0.040670
+0.380477
+-0.509040
+0.342163
+0.158496
+0.257542
+-0.486299
+-0.583643
+-0.300392
+-0.050705
+0.527688
+0.677879
+0.641035
+-0.486370
+0.732146
+0.571073
+0.570740
+-0.889589
+0.599629
+-0.691176
+0.367017
+0.073066
+-0.867611
+0.145939
+-0.245640
+-0.556672
+-0.803891
+1.060464
+0.365521
+0.381258
+0.205644
+-0.766149
+0.432361
+0.364735
+-0.768734
+-0.262649
+0.937278
+-0.510159
+-0.299151
+-0.687888
+0.761980
+0.492233
+0.438244
+-0.604574
+0.332572
+0.241988
+0.227219
+0.246281
+-0.668412
+0.161868
+-0.458346
+-0.922955
+0.300774
+-0.559695
+-0.170184
+0.554904
+-1.001829
+-0.506732
+0.788984
+-0.512239
+0.903230
+0.541041
+0.519710
+0.372141
+-0.412213
+0.153072
+-0.347747
+-0.586164
+0.688339
+0.017801
+0.121971
+-0.542808
+0.653710
+-1.010397
+0.357856
+-0.210398
+-0.138293
+0.611664
+0.523955
+-0.203420
+-0.748051
+-0.209345
+-0.617229
+0.217903
+0.096171
+0.499195
+-0.965633
+0.219685
+-0.612255
+0.932084
+-0.301346
+-0.283807
+0.830514
+-0.912823
+-0.864658
+0.980201
+-0.020953
+-0.642571
+0.281015
+-0.304434
+0.528451
+-0.372899
+0.576707
+0.633004
+-0.806010
+-0.371575
+-0.565953
+0.537096
+-0.475273
+0.894363
+-0.741006
+0.819592
+0.875566
+0.917105
+0.712277
+-0.597527
+0.273806
+0.982141
+0.759255
+-0.793940
+0.220321
+0.006208
+0.060603
+-0.987299
+0.459935
+-0.640974
+-0.153436
+-0.373244
+0.582501
+-0.308491
+0.096193
+0.810570
+0.152853
+-0.927602
+0.877163
+0.516090
+-0.111097
+0.662007
+0.616350
+-0.074708
+-0.139100
+0.991090
+-0.832550
+-0.351553
+0.505503
+0.984647
+0.002150
+0.648204
+-0.321412
+-0.122820
+-0.897020
+-0.658743
+-0.462910
+0.737963
+-0.282947
+0.098040
+0.736447
+0.208163
+-0.840690
+-0.467488
+-0.095178
+0.048732
+0.020189
+0.471502
+-0.275451
+0.512772
+-0.881297
+0.166020
+-0.337315
+-0.151720
+0.367667
+-0.583216
+0.632743
+0.856992
+-0.402104
+-0.754363
+0.960752
+-0.334384
+-0.035724
+-0.714396
+0.169432
+0.176172
+-0.064453
+0.399498
+0.115320
+0.863811
+0.491362
+0.304824
+-0.197833
+-0.899163
+-0.779808
+0.045486
+-0.764395
+-0.938850
+0.235442
+0.124138
+-0.138089
+0.417394
+-0.584593
+-0.149399
+-0.213531
+-0.573610
+0.049938
+0.643364
+0.791158
+0.405256
+-0.121739
+-0.129921
+0.606077
+0.274900
+0.120987
+0.164679
+0.231872
+0.121394
+-0.234432
+0.359722
+-0.433769
+0.537674
+-0.706637
+0.799404
+-0.581619
+0.460601
+-0.533402
+0.537263
+-0.245503
+0.252583
+0.006523
+-0.102151
+-0.703711
+-0.954606
+-0.434495
+-0.246037
+0.272263
+0.477886
+0.232504
+0.395739
+-0.790489
+0.430008
+0.743576
+0.730903
+0.898953
+0.372129
+-0.765808
+0.686529
+-0.314990
+-0.053596
+0.541885
+0.846332
+-0.977527
+0.853962
+0.413954
+-0.657986
+-0.503658
+0.601679
+-0.399026
+-0.617327
+0.946104
+1.002910
+-0.543051
+0.211273
+0.678553
+0.338683
+-0.289012
+-0.300576
+-0.824463
+0.418006
+-0.223282
+0.786187
+1.016091
+-0.318620
+-0.905067
+-0.531417
+-0.193194
+-0.936184
+-0.714889
+0.537301
+-0.805340
+0.828040
+0.072519
+0.938108
+0.661268
+0.080656
+0.667719
+-0.219984
+-0.274423
+0.816753
+0.668884
+-0.733372
+0.888819
+-0.184844
+0.904102
+-0.365190
+-0.365560
+-0.708200
+0.384668
+-0.747211
+1.049653
+0.581382
+-0.348141
+0.748009
+-0.738879
+-0.662080
+-0.551669
+-0.645917
+-0.376601
+-0.227842
+-0.062496
+0.598402
+-0.623182
+-0.243886
+0.735442
+0.834404
+-0.881934
+-0.737698
+0.264787
+0.634618
+0.267768
+0.235042
+-0.662346
+-0.828493
+-0.455890
+0.449032
+0.061866
+0.997839
+0.014942
+0.883360
+-0.053249
+-0.014787
+-0.510322
+-0.932922
+-0.555017
+-0.348459
+0.674508
+0.348613
+-0.949743
+0.115262
+0.453668
+0.710890
+0.876645
+-0.332063
+0.797654
+0.097529
+-0.171934
+0.938255
+0.508161
+0.738060
+0.683967
+-0.861766
+0.651557
+-0.106753
+-0.692885
+-0.095913
+0.393615
+-0.437449
+0.552707
+-0.966550
+-0.700254
+0.693216
+-0.177088
+-0.515503
+0.172126
+0.640189
+-0.570499
+-0.532354
+0.045654
+0.857826
+0.478780
+-0.749068
+0.471505
+-0.862631
+0.091196
+-0.127200
+-0.067058
+-0.032175
+-0.746876
+0.822273
+-0.103725
+0.009392
+-0.361899
+-0.550640
+-0.035815
+-0.459201
+0.901099
+-0.175840
+0.696094
+0.800792
+0.339144
+-0.943961
+-0.783466
+-0.502073
+0.718879
+0.547404
+0.915166
+-0.950550
+0.430341
+-0.284360
+0.864914
+-0.993722
+0.026598
+0.219126
+0.139644
+0.321807
+0.631782
+-0.941559
+-0.894724
+-0.130119
+0.280525
+0.816052
+0.598547
+0.018251
+0.416755
+0.714543
+0.227217
+-0.225409
+-0.332133
+-0.105631
+0.964113
+-0.297681
+0.835799
+0.917386
+0.230219
+0.608106
+0.703007
+-0.608399
+-0.108787
+-0.138382
+0.865633
+-0.353336
+-0.433614
+-0.134468
+-0.060434
+-0.783187
+0.239575
+0.586830
+-0.508935
+-0.524892
+-0.531071
+0.307455
+0.601577
+0.232792
+-0.267260
+0.058223
+0.534944
+0.744366
+-0.590806
+0.094053
+0.936664
+0.432743
+-0.461804
+-0.558434
+0.134181
+0.265831
+-0.958658
+0.507560
+-0.650467
+-0.738797
+-0.863615
+-0.147643
+-0.489390
+0.262505
+-0.383065
+-0.578968
+-0.002047
+-0.542356
+0.650999
+0.053277
+0.720739
+-0.591299
+-0.610610
+0.453096
+0.137758
+0.099641
+0.382595
+0.245898
+1.000352
+-0.469134
+0.443107
+0.177327
+0.474223
+-0.920040
+-0.240232
+0.610207
+-0.197207
+0.535915
+-0.461611
+0.718123
+0.085058
+0.192506
+0.060886
+0.503090
+-0.267376
+0.003343
+0.199553
+0.726106
+-0.182705
+-0.262851
+-0.722187
+0.416112
+-0.131317
+0.451746
+-0.745298
+-0.339033
+0.893626
+0.471753
+0.971358
+0.439710
+0.476195
+0.641692
+-0.957879
+0.539170
+-0.057682
+0.081354
+0.816711
+0.990750
+0.602752
+0.444223
+0.707095
+-0.444134
+0.727406
+-0.406133
+-0.402537
+0.781795
+-0.859069
+0.776231
+0.524598
+-0.559326
+0.389876
+-0.912427
+0.028121
+-0.271507
+0.479060
+0.895015
+0.775528
+0.052284
+-0.083286
+-0.918105
+-0.392032
+-0.528997
+-0.144885
+-0.763981
+-0.934926
+-0.501360
+-0.868941
+0.582308
+0.589613
+0.799595
+0.107898
+-0.957684
+0.973216
+0.329252
+0.504332
+0.983483
+-0.207221
+-0.503837
+0.920075
+-0.794434
+-0.306785
+0.258721
+-0.802109
+-1.013491
+0.286316
+0.776027
+0.202152
+-0.955941
+-0.186712
+-0.309831
+0.151107
+-0.651650
+-0.849113
+0.063986
+0.764393
+0.513031
+0.479140
+0.464304
+0.156126
+-0.302524
+0.494411
+0.621324
+0.060725
+0.525950
+-0.564629
+0.908479
+0.501077
+-0.256055
+0.099815
+0.875337
+0.053482
+-0.762060
+0.048563
+0.710850
+0.446003
+-0.938654
+0.771552
+0.075668
+0.281197
+0.684905
+-0.659794
+0.775438
+0.359291
+1.037041
+0.342315
+0.347341
+-0.601855
+0.345453
+0.805917
+-0.487197
+0.164083
+-0.796843
+-0.079068
+-0.330603
+0.771535
+-0.222159
+0.747219
+0.675074
+0.824803
+0.580898
+0.410615
+0.217697
+0.772742
+0.400516
+0.192696
+-0.635950
+-0.411629
+-0.803987
+-0.469308
+0.566183
+-0.850307
+-0.199308
+0.045765
+0.376851
+0.975409
+0.474218
+-0.980164
+-0.062887
+0.368902
+-1.030674
+0.215344
+0.252915
+0.445520
+-0.004463
+-0.391732
+-0.061838
+-0.745768
+0.767745
+-0.405358
+-0.461157
+0.342020
+-0.026423
+0.931696
+0.433573
+0.110661
+0.475622
+-0.873096
+0.678967
+-0.045523
+-0.890289
+0.226641
+0.925098
+-0.041945
+0.501434
+0.686593
+0.020025
+0.772052
+0.368560
+-0.528528
+0.693579
+0.995925
+-0.427094
+0.434714
+0.750270
+0.770938
+0.335738
+0.052604
+0.327903
+0.610065
+0.954294
+-0.930940
+0.641849
+0.814510
+-0.468397
+0.749150
+0.599270
+-0.934457
+-0.522667
+0.047165
+0.561354
+0.542656
+-0.281444
+0.408097
+-0.172313
+0.267074
+-0.650563
+0.672057
+0.864617
+0.243718
+-0.519501
+0.740425
+-0.897142
+0.514290
+-0.576913
+0.387352
+-0.210327
+-0.615365
+-0.293084
+-0.406364
+0.942593
+-0.948218
+0.234639
+0.394657
+0.689226
+0.110680
+0.825202
+-0.838978
+-0.867780
+0.447838
+-0.388056
+0.425564
+-0.910616
+0.515216
+-0.932505
+-0.327333
+0.087386
+-0.626464
+-0.442879
+0.187694
+0.766647
+-0.954830
+-0.706097
+-0.560697
+-0.972803
+-0.582398
+0.295073
+0.437535
+0.097060
+0.463426
+-0.821486
+0.370831
+0.829958
+-0.903819
+0.885778
+-0.247333
+-0.475275
+0.667796
+-0.320019
+-0.882808
+0.195742
+-0.507037
+-0.272352
+-0.603127
+-0.476870
+0.551489
+-0.974856
+0.916409
+0.555657
+-0.142324
+0.674193
+-0.737716
+-0.211282
+0.121119
+-0.525775
+-0.074034
+0.133076
+-0.890125
+0.372162
+0.478100
+0.069053
+0.638734
+0.837476
+0.126842
+-0.619359
+0.750302
+-0.614693
+0.206789
+-0.012688
+-0.163644
+0.187632
+-0.966137
+-0.499529
+0.764746
+0.863262
+-0.111385
+0.199062
+-0.725579
+0.240620
+0.762603
+0.862564
+0.118095
+-0.729402
+-0.385335
+0.979547
+0.324093
+0.871171
+-0.828540
+0.175548
+0.973695
+-0.065085
+-0.160982
+0.934896
+0.275124
+-0.396397
+-0.033382
+0.315385
+-0.049480
+0.741504
+0.406984
+0.827808
+-0.040834
+0.084415
+-0.691402
+-0.932346
+0.535830
+0.382221
+0.579646
+0.131270
+-0.815882
+-0.773250
+0.357805
+-0.219709
+0.465678
+0.921320
+-0.092260
+0.619813
+-0.115899
+0.962317
+0.927733
+0.565322
+0.777630
+0.283225
+0.330658
+-0.411294
+0.940538
+0.634863
+0.967535
+-0.887880
+0.864039
+0.435577
+-0.701787
+0.662391
+0.262765
+0.056516
+0.059067
+0.894528
+-0.240435
+-0.225591
+-0.694103
+0.359484
+0.115145
+-0.632645
+-0.198434
+0.225018
+-0.936954
+0.812417
+0.864036
+-0.158621
+-0.714159
+0.753551
+0.323872
+-0.708650
+0.183392
+-0.389487
+0.274788
+-0.830230
+-0.504822
+0.141817
+0.655736
+0.912298
+0.808944
+0.863675
+-0.793951
+0.801562
+-0.075385
+0.994048
+-0.416967
+0.693785
+0.625481
+0.596061
+-0.135466
+0.417845
+0.926647
+0.601144
+-0.610741
+0.212451
+0.700927
+0.424300
+0.200643
+0.104065
+0.407708
+-0.507502
+-0.497036
+-0.325725
+-0.643896
+0.255172
+-0.296905
+0.610224
+0.178513
+-0.598556
+-0.842174
+-0.459421
+0.565121
+0.621350
+0.029219
+0.645541
+-0.440539
+-0.668364
+-0.528821
+-0.304153
+-0.414285
+0.633901
+0.431775
+0.187680
+0.541125
+0.568700
+-0.912697
+-0.512997
+-0.764657
+0.378073
+-0.626655
+-0.731440
+-0.015033
+-0.590670
+0.335762
+-0.114519
+-0.106502
+0.586243
+0.402148
+0.471451
+0.087625
+-0.804285
+0.101606
+0.970422
+-0.436715
+0.219626
+0.389977
+-0.076572
+-0.670318
+-0.698260
+0.261987
+0.255486
+-0.809499
+0.361397
+-0.734767
+0.614270
+-0.066716
+0.747578
+0.903131
+-0.718738
+0.889794
+-0.483131
+0.677947
+-0.868604
+0.317968
+0.136970
+-0.647376
+-0.734418
+-0.071482
+-0.642731
+-0.997464
+-0.938509
+-0.048259
+0.210129
+0.242283
+-0.217139
+-0.860456
+-0.524167
+0.515970
+-0.698006
+0.337952
+0.598382
+0.943871
+0.259848
+0.749219
+-0.341446
+-0.046887
+0.471358
+-0.379944
+-0.761697
+-0.517183
+-0.084300
+0.570005
+-0.599468
+0.910432
+-0.289221
+-0.875221
+-0.606735
+0.744949
+0.997660
+-0.465720
+-0.816659
+0.012738
+-0.000175
+0.321346
+0.436186
+-0.323777
+-0.805063
+1.092856
+0.981038
+0.178718
+-0.106726
+-0.898012
+0.477360
+0.495513
+0.083630
+-0.741648
+-0.254040
+0.854288
+0.195285
+0.500310
+0.927772
+-0.800183
+-0.372674
+-0.273648
+-0.843737
+0.343717
+-0.202238
+0.834834
+0.195591
+-0.812554
+0.391896
+-0.175274
+-0.954176
+0.170735
+1.141426
+0.444629
+-0.654977
+0.408038
+-0.029044
+-0.781884
+0.513145
+0.397845
+0.407183
+-0.822301
+-0.527106
+-0.074351
+-0.419415
+-0.431116
+-0.028461
+0.744277
+-0.815135
+0.772736
+-0.748286
+0.009306
+0.527652
+-0.969951
+-0.158128
+0.937830
+0.373170
+-0.873963
+0.516621
+0.240827
+-0.412136
+-0.727939
+-0.531040
+0.641373
+-0.609922
+0.232687
+-0.781798
+0.560399
+0.883248
+0.411278
+0.893269
+-0.958440
+0.109519
+0.596908
+0.814679
+0.538415
+0.071745
+-0.976121
+-0.156984
+-0.989232
+-0.969323
+-0.958596
+-0.046059
+-0.190775
+0.084184
+0.394868
+-0.935906
+-0.451053
+-0.109474
+-0.523057
+0.465361
+-0.637506
+0.521307
+0.246349
+-0.072134
+-0.272660
+-0.296368
+-0.961324
+0.966909
+0.327245
+-0.401084
+-0.056037
+0.344535
+-0.783275
+0.521383
+-0.365709
+0.061687
+-0.632738
+0.799889
+0.175142
+-0.952262
+-0.859241
+0.010336
+-0.705220
+-0.454632
+-0.225397
+-0.227694
+-0.017192
+0.147068
+0.651252
+-0.016198
+-0.798934
+-0.869357
+0.035886
+0.185248
+0.716096
+0.602060
+-0.474272
+-0.846933
+-0.255564
+0.653538
+0.532006
+-0.871279
+-0.933042
+1.015014
+-0.253703
+-1.005317
+0.549444
+0.418309
+0.013294
+1.006683
+0.715910
+-0.523203
+-0.790394
+-0.037316
+0.389515
+-0.485360
+-0.058522
+0.031732
+-0.881167
+0.207796
+-0.297720
+-0.022126
+0.031099
+-0.603518
+-0.336394
+-0.220125
+0.484935
+-0.912174
+0.117887
+0.412369
+0.934521
+-0.066282
+-0.484695
+0.709033
+0.634630
+0.763177
+0.234756
+0.582075
+-0.582694
+-0.609634
+0.113935
+0.300662
+0.380381
+1.063926
+0.453467
+-0.009534
+-0.164294
+-0.577561
+0.434634
+0.164688
+0.670494
+-0.793198
+-0.382540
+0.183733
+0.006892
+-0.902406
+-1.039201
+0.986112
+-0.912302
+0.810068
+0.686846
+-0.544271
+0.837502
+-0.371485
+0.653793
+0.809487
+-0.719233
+-0.663507
+-0.005648
+0.232029
+-0.246067
+-0.059150
+-0.047676
+-0.113666
+0.698872
+-0.712917
+-0.474265
+0.927188
+0.610668
+0.292189
+-0.536897
+-0.397906
+0.961342
+-0.603250
+0.116665
+0.087823
+0.381720
+0.044929
+-0.492272
+0.030189
+-0.962740
+-0.051998
+-0.776614
+0.716070
+-0.759653
+-1.036140
+-0.659180
+0.658690
+-0.438645
+-0.185530
+0.613566
+0.357193
+0.122685
+-0.745862
+-0.612771
+1.058942
+0.411210
+-0.473171
+0.594514
+-0.623080
+-0.412627
+0.807015
+0.112429
+0.015649
+0.910772
+0.858639
+-0.918325
+0.119836
+0.774126
+0.417460
+-0.384794
+0.681825
+-0.595444
+0.884644
+-0.573690
+-0.664496
+-0.854270
+0.938617
+-0.100869
+0.694661
+-0.464691
+-0.709295
+-0.934512
+-0.137166
+0.999519
+-0.642329
+-0.325351
+-0.712429
+-0.542925
+0.403383
+-0.243103
+-0.717123
+0.436809
+-0.420578
+-0.084059
+0.661537
+0.759615
+-0.613738
+0.151331
+0.452368
+-0.584547
+-0.155519
+-0.096547
+-0.158190
+-0.723817
+-0.153138
+-0.224166
+0.199975
+-0.992558
+-0.538453
+0.530739
+-0.953889
+-0.081831
+-0.235272
+0.415255
+0.659351
+-0.885538
+-0.893594
+-0.649302
+-0.917747
+-0.919438
+0.984390
+0.253274
+-0.623756
+-0.784613
+0.981994
+0.309376
+-0.111621
+-0.969468
+-0.464302
+-0.255454
+0.451057
+-0.749214
+0.107419
+0.083982
+-0.526005
+0.783467
+0.597117
+-0.581949
+0.705893
+0.284691
+0.130880
+-0.319511
+1.009651
+0.306963
+0.332890
+-0.544164
+-0.887984
+0.499865
+-0.887434
+0.493894
+-0.245901
+0.652149
+-0.388065
+-1.031805
+-0.816028
+0.196580
+-0.462599
+0.027094
+0.899835
+-0.696591
+0.082390
+-0.287845
+0.420867
+-0.277404
+-0.336398
+-0.683827
+-0.252799
+-0.278543
+1.033097
+0.380353
+0.097650
+0.514286
+-0.598753
+0.258207
+-0.243799
+0.200708
+-0.805855
+0.403380
+0.510011
+0.583191
+-0.759138
+0.394278
+-0.183613
+0.109070
+0.331314
+-0.566203
+-0.170151
+-0.926614
+0.396074
+-0.780100
+0.964326
+0.384619
+0.766185
+0.928764
+-0.558690
+0.131458
+-0.655461
+-0.835893
+0.217847
+-0.861433
+-0.261301
+0.441737
+0.148747
+0.344491
+0.710645
+0.508912
+0.627285
+-0.900381
+-1.004602
+-0.851862
+-0.736250
+0.626136
+0.505512
+0.494811
+0.130395
+0.870798
+0.507517
+0.948461
+-0.808026
+0.182452
+0.423433
+-0.880349
+0.292477
+0.953848
+-0.963562
+0.718657
+-0.957343
+0.131710
+0.017166
+0.310819
+-0.866711
+0.917431
+0.221388
+0.813580
+-0.342919
+-0.084278
+-0.533579
+-0.521641
+-0.934379
+0.946778
+0.135253
+0.345043
+-0.182749
+-0.254223
+-0.464867
+0.822931
+0.101899
+0.728138
+-0.592645
+0.255910
+-0.583292
+-0.655694
+0.292519
+-0.668821
+0.628394
+-0.291409
+-0.888468
+0.941819
+-0.950438
+-0.809497
+0.820435
+0.096820
+0.287546
+0.878166
+0.773743
+0.416423
+-0.832564
+0.684445
+0.481944
+-1.001712
+0.280796
+-0.228415
+-0.010475
+-0.814433
+0.111083
+0.186158
+0.537074
+0.444244
+-0.877851
+-0.187846
+0.091452
+0.663087
+0.604139
+0.767800
+0.785281
+0.131531
+-0.651705
+-0.969999
+0.212369
+0.761995
+0.676110
+-0.234444
+-0.053077
+-0.361099
+-0.282260
+-0.678096
+-0.336586
+-0.037578
+-0.667801
+-0.397787
+-0.988884
+0.283536
+-0.941063
+0.535643
+-0.997314
+-0.263552
+0.134468
+0.040620
+-0.907640
+0.048099
+-0.743117
+-0.956481
+0.395819
+0.002339
+0.791669
+0.397825
+0.161982
+0.823903
+-0.934768
+-0.935055
+0.708229
+0.106564
+-0.218038
+0.275250
+0.375095
+0.761522
+-0.243362
+-0.320986
+-0.189969
+0.249801
+-0.947686
+-0.313291
+0.323506
+-0.010909
+-0.695814
+-0.316258
+-0.075510
+-0.281979
+-0.718480
+0.167434
+-0.840562
+0.726773
+-0.205253
+-0.279147
+-0.297377
+0.755417
+-0.645764
+0.896395
+-0.683353
+-0.382835
+-0.702266
+-0.559394
+-0.834723
+0.146891
+0.576812
+0.196524
+0.592935
+0.549130
+0.308404
+0.847339
+-0.861782
+-0.023588
+0.480145
+0.863902
+-1.005934
+-0.686061
+-0.353103
+-0.637757
+-0.420696
+0.072197
+-0.982781
+-0.484301
+-0.583882
+0.029450
+0.084247
+-0.011315
+-0.796637
+-0.786391
+-0.755208
+-0.424612
+0.392678
+0.212042
+0.408113
+0.640647
+-1.064553
+0.751991
+-0.457138
+0.100968
+0.385930
+0.593628
+0.511958
+0.665868
+-0.636686
+-0.152040
+0.148699
+-0.028813
+-0.414347
+-0.292535
+-0.142350
+-0.632197
+-0.205147
+-0.678154
+0.611853
+0.919738
+-0.391230
+0.768182
+0.144115
+-0.158148
+-0.506299
+0.160836
+0.213869
+-0.518790
+0.172065
+-0.226770
+-0.867943
+-0.999595
+-0.568960
+-1.056361
+0.737645
+0.630455
+-0.798052
+0.967417
+0.732117
+-0.810079
+-0.746885
+-0.873369
+0.340413
+0.627423
+-0.848688
+0.854691
+0.661272
+-0.876974
+0.771049
+-0.578726
+0.290934
+-0.549896
+-0.827053
+-0.079432
+-0.856958
+-0.460927
+0.247173
+-0.113865
+-0.067043
+0.664230
+1.053861
+0.836260
+-0.546202
+0.738646
+0.679411
+-0.830397
+0.511255
+0.692674
+0.052386
+0.315969
+0.838428
+0.886557
+0.972069
+0.437970
+-0.307843
+-0.613617
+0.489323
+-0.547446
+0.147275
+-0.620514
+0.114471
+-0.184120
+-0.725887
+-0.056669
+-0.947905
+0.284379
+0.660600
+0.399648
+-0.012952
+-0.658235
+-0.444185
+-0.079593
+-0.205909
+-0.557790
+-0.113233
+0.144381
+-0.341218
+-0.546583
+-0.258001
+-0.841443
+-0.787895
+0.515629
+-0.255741
+0.424166
+0.252828
+0.819590
+0.075031
+0.424004
+0.194400
+0.256330
+-0.991384
+-0.049912
+0.951092
+0.634067
+0.941739
+0.961830
+0.099678
+0.191448
+0.034629
+-0.427071
+-0.692220
+-0.244600
+-0.083391
+0.775702
+0.362287
+0.523635
+0.187367
+0.307026
+0.631908
+0.074784
+-0.240440
+-0.446416
+0.312661
+0.565608
+0.870326
+0.813312
+0.128192
+-0.627168
+-0.567331
+0.796844
+0.725104
+-0.198198
+0.102639
+0.497947
+-0.983853
+0.044887
+0.262519
+0.164639
+0.741326
+0.409283
+0.401771
+-0.058849
+-0.110687
+-0.015595
+0.276379
+-1.040003
+0.908104
+-0.287618
+0.895960
+0.730183
+0.119908
+-0.157697
+-0.881773
+-0.510980
+-0.201485
+-0.388200
+-0.443974
+0.136888
+0.811752
+0.072702
+0.732031
+-0.046787
+-0.833955
+-0.327895
+0.995869
+-0.997207
+-0.486958
+-0.486109
+-0.343427
+-0.279927
+0.383278
+-0.635724
+0.363635
+-1.140618
+0.128458
+-0.348812
+-0.586051
+0.503264
+0.928487
+0.453686
+0.735177
+0.843962
+-0.423761
+0.412247
+0.933642
+-0.196104
+-0.726492
+0.000838
+0.216198
+0.243826
+-0.646242
+-0.396959
+0.322218
+0.893605
+0.800179
+-0.359921
+-0.845738
+-0.523064
+0.336777
+-0.531337
+-0.279074
+0.312270
+0.726599
+-0.177299
+-0.253569
+0.369625
+-0.317148
+0.157594
+-0.154424
+0.989224
+0.738602
+0.767704
+-0.061078
+0.857182
+0.019541
+0.696725
+0.279742
+-0.525466
+-0.344056
+-0.838052
+-0.480320
+0.560860
+0.866231
+-0.257065
+0.273511
+-0.364392
+0.436821
+0.092200
+-0.157236
+-0.201149
+0.341101
+-0.984855
+0.091507
+0.704607
+0.638889
+0.167271
+-0.270739
+-0.352598
+-0.324050
+-0.426457
+-0.959480
+0.276524
+0.493985
+-0.435003
+0.490624
+-0.465321
+-0.207194
+-0.467203
+-0.724625
+-0.866090
+0.351044
+-0.036111
+-0.031027
+0.904022
+0.864622
+0.501021
+-0.786979
+-0.171840
+0.618570
+0.580328
+-0.249879
+0.118964
+0.585570
+-0.178064
+1.004273
+-0.294239
+0.441536
+-0.878769
+0.056384
+0.249393
+0.234456
+-0.720958
+-0.392074
+-1.038460
+0.899581
+-0.331228
+-0.301286
+0.695032
+-0.202567
+-0.309915
+0.795170
+-0.849985
+0.912043
+-0.541645
+-1.141607
+-0.841452
+0.483099
+-0.056334
+0.874827
+-0.859564
+-0.619681
+0.437812
+-0.359130
+-0.696705
+0.485561
+0.190921
+-0.861715
+0.652292
+-0.064673
+-0.633895
+-0.225881
+-0.621457
+0.227308
+-0.707916
+-0.167419
+0.981866
+0.144387
+0.318459
+0.373135
+0.276677
+0.559315
+0.825132
+0.464136
+0.978074
+0.660976
+0.190956
+0.693339
+-0.087217
+0.846471
+0.306801
+-0.398274
+0.765613
+-0.055829
+-0.934213
+0.008916
+-0.534617
+-0.251582
+-0.636178
+0.328821
+-0.015598
+0.425880
+0.394151
+-0.519492
+0.372203
+-0.640641
+0.255705
+-0.235204
+-0.895329
+-0.053184
+-0.283183
+0.888516
+-0.725210
+-0.031540
+-0.770498
+0.182319
+-0.813489
+-0.937039
+-0.079692
+0.387868
+0.103904
+0.186841
+0.155672
+-0.973366
+-0.793346
+0.375898
+-0.537936
+-0.471293
+0.448786
+0.811089
+-0.419488
+0.344118
+0.969389
+-0.912280
+0.791952
+-0.517101
+0.686324
+0.856454
+-0.765718
+0.356417
+-0.685417
+0.806023
+-0.442510
+0.327814
+-0.588347
+0.361515
+0.463299
+0.079321
+-0.055689
+-0.298211
+-0.129648
+0.326749
+-0.507538
+-0.796715
+-0.163266
+0.326214
+0.372348
+-0.234506
+-0.407458
+0.822520
+-0.687236
+0.692320
+0.975680
+0.880316
+-0.891709
+-0.098914
+0.978700
+0.672031
+0.956009
+0.959975
+0.117882
+0.243272
+-0.587766
+-0.654213
+1.003870
+0.035986
+0.366014
+0.363232
+-0.178413
+-0.377131
+1.032166
+0.313786
+-0.253183
+0.832080
+-0.838122
+0.255895
+-0.627117
+0.557008
+0.549813
+-0.798991
+-0.390129
+1.048525
+-0.930097
+0.965082
+0.485204
+0.369518
+-0.074426
+-0.883162
+-0.529678
+-0.453905
+-0.530891
+0.038559
+0.057306
+-0.156311
+-0.807987
+-0.093676
+0.594039
+-0.756983
+-0.714820
+0.741913
+-1.018151
+0.816463
+-0.172212
+-0.343158
+-0.719483
+0.703426
+-0.421522
+-0.205426
+-0.065719
+-0.839627
+-0.577566
+-0.871929
+0.311457
+-0.490046
+-0.266463
+0.506485
+0.024052
+0.195885
+0.921869
+-1.013628
+-0.092513
+0.658847
+0.625865
+-0.573300
+-0.733094
+0.731287
+-0.628127
+0.548639
+0.517391
+-0.167652
+-0.952237
+0.482933
+-0.108906
+-0.177228
+-0.683771
+0.214637
+0.662064
+0.857844
+0.269666
+0.075561
+0.466840
+0.043966
+-0.433355
+0.071257
+0.574664
+-0.672275
+-0.345162
+0.331414
+0.273779
+-0.134140
+0.915418
+0.798411
+-0.732354
+-0.067475
+0.632021
+0.264359
+0.719040
+0.465739
+-0.302699
+0.543308
+-0.570190
+0.916199
+0.280109
+0.722036
+-0.819266
+-0.726836
+-0.631733
+0.442593
+0.719202
+-0.372151
+0.065701
+-0.783249
+-0.068284
+0.392642
+-0.083963
+0.799320
+-0.677418
+-0.685386
+0.270148
+-0.659024
+-0.095379
+0.205705
+0.196252
+0.499997
+0.156407
+0.563409
+0.524471
+-0.516152
+-0.760983
+0.632871
+-0.668922
+0.046161
+-0.712915
+0.365329
+0.236143
+0.858821
+0.530159
+0.908682
+0.439823
+0.369114
+0.159618
+0.403927
+0.706460
+-0.730110
+0.989664
+0.427739
+-0.715223
+-0.596020
+-0.089166
+0.626091
+-0.026246
+0.373096
+0.026788
+0.210455
+-0.010266
+0.957024
+0.345355
+-0.338311
+0.954405
+-0.892407
+-0.122065
+0.655644
+0.804650
+-0.630236
+-0.934729
+-0.758197
+-0.567365
+0.257187
+0.357963
+-0.943250
+-0.926312
+0.777498
+-0.097679
+0.665013
+-0.459134
+-0.285392
+-0.079955
+0.831464
+-0.176685
+0.048910
+-0.706486
+0.211559
+-0.680563
+-0.947649
+0.633873
+-0.525492
+-0.141811
+0.406187
+-0.555920
+-0.078517
+0.499668
+-0.688300
+-0.764790
+0.195676
+-0.358992
+0.041216
+-0.671095
+-0.503823
+-0.027220
+-0.800875
+0.684113
+0.193308
+0.269622
+-0.287218
+0.486484
+0.002175
+-0.710664
+0.512737
+0.380417
+-0.683294
+-0.738976
+0.338230
+0.772371
+0.585450
+0.943776
+0.047434
+0.843897
+0.071028
+-0.398056
+-0.229439
+0.169211
+0.456285
+-0.775067
+-0.230663
+-0.526489
+-0.301640
+0.523318
+0.678254
+0.341070
+-0.721022
+-0.362090
+-0.637951
+-0.625123
+-0.936899
+-0.277307
+0.496427
+-0.167800
+0.276721
+-0.051447
+0.268222
+0.092389
+-0.509033
+0.680094
+-0.712886
+-0.765323
+-0.681557
+-0.674498
+0.015033
+-0.942304
+-0.271230
+0.651175
+-0.114186
+-0.314833
+-0.546002
+-0.131292
+0.786523
+-0.636673
+0.357315
+-0.005890
+0.520632
+-0.482074
+0.177053
+-0.793762
+-0.727634
+-0.418160
+-0.254363
+-0.871956
+0.261950
+0.913545
+0.017971
+0.147021
+0.472400
+-0.631889
+0.313361
+-0.314044
+0.261749
+-0.153763
+0.554767
+-0.624074
+0.220614
+0.744528
+-0.680357
+-0.352096
+-0.647519
+-0.659369
+-0.814392
+0.398002
+0.313539
+0.745581
+0.090446
+0.916389
+0.759071
+-0.871731
+-0.296753
+-0.183211
+-0.979763
+0.190333
+0.738021
+0.024527
+-0.192251
+0.904564
+0.767093
+-0.707056
+0.953616
+0.834925
+-0.347003
+-0.455450
+-0.706087
+0.088770
+-0.239696
+0.006241
+0.276466
+-0.460152
+-0.654610
+-0.519436
+-0.157170
+-0.113628
+-0.013528
+0.858309
+-0.545858
+-0.976385
+-0.693288
+0.539317
+-0.343205
+0.422302
+0.580589
+-0.772997
+0.586216
+-0.969361
+0.529018
+-0.282354
+-0.488987
+0.381397
+-0.963192
+-0.334265
+0.582964
+-0.205533
+-0.890319
+0.395185
+-0.047828
+-0.923569
+-0.289778
+0.658054
+0.374541
+0.505785
+0.219955
+-0.207363
+0.849199
+0.200288
+0.859076
+0.132759
+0.043812
+-0.397264
+-0.905121
+0.115951
+-0.267853
+0.069335
+-0.774846
+0.042638
+-0.698633
+0.355411
+0.493677
+-0.300811
+-0.048443
+-0.359209
+0.224047
+0.406455
+-0.115938
+-0.495588
+0.467441
+0.555639
+-0.707822
+-0.801876
+-0.053019
+0.185520
+-0.103284
+-0.606369
+0.067980
+0.111036
+0.294291
+0.531451
+-0.224121
+0.141058
+0.427039
+0.953995
+-0.464594
+-0.266179
+0.743020
+-0.188705
+-0.465646
+-0.128781
+0.060567
+0.890124
+0.502980
+-0.724735
+-0.274717
+0.664912
+-0.254738
+0.825420
+-0.395659
+-0.913522
+-0.851237
+0.445325
+0.844791
+0.439600
+0.370347
+-0.463707
+-0.013701
+-0.364434
+-0.267671
+0.976403
+0.409163
+0.751170
+-0.827684
+-0.992736
+0.561616
+-0.501873
+-0.331949
+-0.975037
+-0.071433
+-0.406270
+0.400860
+-0.950926
+-0.765169
+-0.321223
+-0.901932
+0.998439
+-0.225077
+-0.915473
+0.823206
+-0.572412
+0.710575
+-0.939764
+0.611731
+0.231163
+0.403883
+0.180716
+-0.217360
+0.239359
+-0.033680
+0.142298
+0.838222
+-0.410885
+-0.488703
+-0.514359
+-0.030363
+-0.333750
+-0.594357
+0.692115
+-0.697526
+-0.949991
+0.828445
+-0.006758
+0.857329
+0.561060
+-0.495093
+0.017016
+-0.853736
+0.451754
+-0.627329
+0.402430
+0.130142
+0.542858
+0.815252
+0.275172
+-0.381060
+-0.856738
+0.715176
+-0.988977
+0.216479
+0.313577
+0.743536
+-0.309103
+-0.589750
+-0.975090
+-0.367250
+-0.126963
+-0.267140
+0.845241
+0.568319
+-0.891653
+-0.045752
+-0.256016
+-0.231749
+-0.866537
+-0.147923
+0.623205
+-0.047692
+0.069365
+-0.342745
+-0.419203
+-1.062511
+0.215074
+0.423619
+0.543870
+0.005693
+-0.973728
+0.404734
+0.388553
+0.604811
+0.319027
+-0.008856
+0.409375
+-0.506416
+-0.722676
+0.330498
+-0.109922
+0.590435
+0.384637
+-0.906039
+0.563909
+-0.328929
+0.748587
+-0.228396
+0.782863
+-0.214926
+-0.871498
+-0.969904
+-0.469644
+0.548154
+-0.209722
+0.911727
+-0.870519
+0.640823
+-0.372686
+0.241900
+-0.158397
+0.713481
+0.821813
+-1.034918
+-0.300482
+0.004087
+-0.617660
+-0.143855
+0.049703
+-0.554611
+-0.437586
+0.159151
+-0.607309
+0.316780
+0.084436
+0.062117
+0.797528
+0.364086
+-0.308839
+-0.203644
+0.969886
+0.485790
+0.695694
+-0.903493
+-0.886202
+-0.173017
+0.084112
+-0.499859
+0.664516
+0.611745
+-0.392151
+0.137563
+-0.148985
+-0.620986
+-0.345213
+-0.261801
+-0.101145
+-0.054235
+-0.622507
+0.506083
+-0.936133
+0.215380
+-0.941248
+-0.137883
+-0.976771
+0.086100
+-0.468448
+0.605205
+0.167419
+0.733241
+-0.120499
+0.512471
+0.989667
+1.006081
+0.422723
+0.572575
+-0.798717
+0.740285
+-0.674220
+0.052343
+0.783334
+0.730323
+-0.704374
+0.756169
+-0.083011
+-0.491503
+0.100075
+-0.966458
+-0.389064
+-0.612571
+0.009767
+0.358109
+-1.049377
+-0.841514
+0.822425
+0.442229
+-0.765909
+-0.908808
+-0.314236
+-0.254412
+0.496687
+-0.744919
+0.262036
+0.160631
+-0.308616
+-0.200268
+0.086802
+-0.509501
+-0.885281
+0.706430
+-0.778600
+-0.329658
+-0.706575
+0.066557
+0.435600
+0.650356
+0.161381
+-0.288271
+0.647072
+-0.622033
+-0.547636
+0.108732
+-0.237817
+-0.427618
+-0.873900
+-0.719174
+-0.051178
+-0.300966
+0.384075
+-0.899788
+-0.702782
+0.177728
+-1.061988
+0.745570
+0.251958
+0.885225
+-0.929911
+-0.080737
+-0.639107
+0.228370
+-0.060051
+-0.870942
+0.646883
+0.579116
+0.888753
+0.266282
+-0.407022
+0.226347
+0.186848
+0.356695
+0.926421
+0.877963
+-0.178773
+-0.695129
+-0.034891
+0.128903
+-0.840424
+-0.065046
+0.959720
+0.344026
+-0.274692
+0.891659
+-0.673288
+-0.225849
+-0.958224
+0.002365
+0.998407
+-0.906634
+0.356814
+-0.485067
+0.279967
+0.666227
+-0.815623
+-0.473444
+0.240091
+-0.831143
+0.760631
+-0.310819
+-0.332886
+-0.924454
+0.784515
+0.161565
+0.430728
+-0.958766
+-0.776667
+0.630284
+0.509063
+0.513246
+0.314968
+-0.287922
+-0.130566
+-0.790496
+0.065130
+0.230082
+-0.772726
+0.617845
+-0.826044
+1.029632
+0.439424
+0.296397
+0.694240
+-0.524529
+-0.209127
+0.747319
+0.593434
+0.518549
+0.636985
+0.164925
+-0.328913
+0.647656
+0.640267
+-0.551179
+-0.207165
+-0.018293
+0.474793
+0.135291
+-0.098216
+0.279199
+0.550270
+-0.568568
+0.567585
+-0.520852
+0.381065
+-0.407328
+0.908688
+0.603507
+-0.200297
+0.660047
+0.375395
+-0.950052
+0.017751
+-0.682364
+-0.189035
+-0.720244
+0.134329
+-0.336573
+-0.892181
+-0.344543
+-0.553662
+0.523897
+0.535978
+-0.430434
+0.171291
+-0.115080
+0.343063
+0.594449
+-0.216599
+0.229765
+0.910536
+-0.789435
+0.341822
+0.196108
+-0.639600
+0.654723
+-0.184974
+-0.003017
+0.467293
+-0.150542
+-0.483238
+0.558502
+-0.306952
+-0.451163
+-0.484510
+0.333828
+-0.160169
+0.182813
+-0.037290
+0.926888
+0.397676
+0.849275
+-0.528918
+0.368295
+-0.274736
+0.185190
+-0.477103
+0.932114
+0.064004
+-0.591513
+0.001424
+-0.666796
+0.638756
+0.208005
+0.258592
+-0.915310
+-0.746614
+-0.792763
+0.024756
+-0.028905
+0.502909
+-0.424628
+-0.450835
+-0.245680
+1.053137
+0.980648
+-0.426336
+0.495033
+-0.875818
+-0.778661
+0.165311
+0.434163
+0.250460
+-0.032167
+0.900313
+-0.406071
+-0.631809
+0.867407
+0.889648
+0.030191
+0.528317
+-0.839729
+-0.867085
+0.442184
+0.989585
+0.192874
+-0.592349
+0.705934
+0.389821
+0.141267
+-1.032463
+-0.403981
+-0.861588
+-0.601907
+0.839004
+-0.610603
+0.556278
+-0.200449
+-0.483962
+0.823167
+-0.855454
+-0.281406
+0.830923
+0.749568
+-0.146158
+-0.857474
+0.555746
+0.917328
+0.022495
+-0.379215
+0.168553
+0.416779
+0.952445
+-0.699613
+-0.448629
+-0.731462
+-0.814693
+0.835436
+0.412317
+-0.302605
+0.168629
+0.090778
+-0.661202
+-0.672133
+0.808842
+0.638847
+0.982520
+0.118370
+0.892749
+-0.496688
+0.815011
+0.363021
+0.696153
+0.377402
+0.196144
+0.774070
+0.990665
+-0.703043
+-0.843980
+-0.725393
+0.845670
+0.162542
+0.699358
+-0.888047
+-0.989311
+0.185159
+-0.167549
+0.976173
+0.433067
+0.936164
+0.910661
+0.896827
+-0.473139
+-0.536332
+0.143745
+0.398987
+0.332557
+-0.051354
+0.090178
+-0.846864
+0.821413
+0.454301
+-0.627646
+0.794898
+0.214039
+0.845463
+0.785919
+-0.034529
+0.690222
+-0.490400
+-0.509578
+-0.023662
+0.193143
+0.653886
+0.869140
+-0.291870
+-0.657141
+-0.297435
+0.234379
+-0.809456
+0.590069
+0.705731
+0.338632
+-0.020793
+-0.972321
+0.117841
+-0.044720
+0.034510
+0.076463
+0.346884
+0.761390
+-0.838551
+-0.585980
+-0.801396
+-0.827100
+-0.749755
+-0.589151
+-0.047485
+0.122597
+-0.678146
+0.890278
+0.559556
+0.756501
+-0.300395
+-0.023990
+-0.060608
+0.229796
+0.682919
+-0.664329
+-0.461731
+0.576368
+0.797898
+0.575540
+-0.974679
+-0.319354
+0.550894
+0.637871
+-0.954127
+0.615692
+0.323469
+0.488713
+-0.823376
+-0.278303
+-0.655649
+-0.409175
+-0.323062
+0.128194
+1.024077
+-0.029958
+-0.880278
+-0.673548
+-0.534423
+0.302538
+0.749686
+-0.295367
+0.073923
+-0.230868
+0.289854
+0.549824
+-0.843075
+-0.996265
+-0.142350
+0.585918
+0.755688
+-0.303874
+-0.121161
+0.680241
+0.054932
+0.633883
+0.423716
+0.790506
+-0.371062
+0.670667
+0.448703
+0.802260
+-0.959722
+-0.922421
+0.437242
+-0.372974
+-0.558381
+-0.013889
+-0.582739
+-0.541820
+0.945023
+-0.715017
+-0.320203
+-0.420374
+-0.081456
+-0.571862
+0.345630
+0.271375
+0.859074
+-0.683352
+-0.528177
+0.681398
+0.486548
+0.564050
+-0.383472
+-0.126816
+0.004202
+-0.149222
+0.138748
+0.142463
+-0.722130
+-0.743014
+0.093382
+0.005894
+-0.359011
+-0.662990
+-0.550441
+-0.223917
+0.084176
+0.856717
+-0.971347
+0.539251
+0.896322
+-0.111419
+-0.027261
+-0.804882
+0.257087
+-0.451770
+0.229602
+0.326379
+0.356068
+-0.557967
+0.633491
+0.208862
+-0.612539
+0.715131
+0.803832
+0.702901
+-0.042879
+-0.798805
+-0.781573
+0.280502
+-0.047056
+-0.778751
+0.502017
+-0.222670
+0.480248
+-0.755297
+-0.235827
+0.470505
+-0.884539
+-0.848727
+0.557516
+-0.371643
+-0.095600
+0.350399
+-0.255410
+0.167748
+-0.981626
+0.039385
+-0.582265
+-0.097719
+-0.625258
+-0.234701
+-0.444318
+-0.559558
+-0.802422
+-0.799572
+0.652067
+0.946239
+-0.026902
+0.452614
+-1.124680
+-0.475683
+0.459959
+0.674877
+-0.405841
+-0.125057
+-0.042405
+0.811917
+0.586329
+-0.995524
+0.653095
+-0.768195
+-0.992295
+0.288095
+-0.905605
+0.884886
+-0.905466
+0.701878
+0.151051
+-0.279492
+0.140812
+0.827160
+-0.051562
+-0.266256
+-0.527653
+-0.367011
+-0.265041
+0.467351
+-0.682200
+-0.379582
+0.718927
+0.746608
+-0.551005
+-0.082475
+0.013833
+0.357389
+0.414549
+-0.292028
+0.381391
+-0.633336
+-0.880019
+-0.191558
+0.378765
+-0.800848
+-0.466599
+-0.336123
+0.717232
+-0.469823
+0.022281
+0.963198
+-0.781386
+-0.980915
+-0.460865
+0.763429
+-0.213159
+-0.541306
+0.269549
+0.694735
+0.614528
+-0.412205
+-0.269257
+-0.685541
+-0.747915
+0.198944
+-0.184763
+0.671244
+0.469329
+-0.777039
+0.036685
+-0.807402
+0.831021
+-0.236702
+-0.564031
+0.673863
+0.859442
+0.042275
+0.817950
+0.124674
+-0.570732
+-0.367383
+-0.340340
+0.445186
+-0.457920
+-0.597510
+0.873189
+0.130404
+0.840607
+-0.713957
+0.836328
+0.455455
+-0.849046
+-0.496750
+0.955590
+0.180702
+0.611835
+0.366174
+-0.825805
+-0.544357
+0.260643
+-0.740704
+-0.408409
+0.285310
+-0.183647
+-0.838752
+-0.155653
+-0.391894
+0.036207
+0.697652
+0.840783
+0.437852
+-0.979053
+-0.090672
+-0.791509
+-0.557992
+0.435694
+0.579605
+0.952004
+-0.713387
+-0.729329
+-0.281996
+-0.068494
+-0.733394
+-0.426004
+-0.843230
+0.938983
+0.934468
+1.034094
+0.664960
+-0.878376
+-0.532211
+-0.195920
+-0.029395
+-0.741352
+-0.873697
+-0.008282
+0.213330
+-0.872021
+0.512170
+0.414909
+0.101265
+-0.750176
+-0.460281
+-0.054396
+0.798857
+0.032540
+-0.666056
+-0.536935
+0.422549
+-1.024308
+-0.552687
+0.777634
+-0.219966
+-0.567368
+-0.217068
+-0.745341
+-0.681492
+0.390261
+0.968170
+0.440125
+0.020252
+0.801033
+0.547827
+-0.052670
+0.216847
+-0.534067
+-0.560105
+-0.025793
+-0.191042
+0.595652
+0.704132
+-0.468362
+-0.213898
+-0.072671
+-0.187441
+0.516070
+0.947570
+-0.510223
+0.027477
+-0.661608
+0.844635
+0.350183
+0.337806
+0.157936
+0.685665
+-0.651078
+-1.040444
+0.538409
+0.474207
+-0.612227
+-0.722511
+-0.063907
+0.582347
+-0.065745
+-0.728584
+0.834231
+-0.526080
+-0.433042
+1.075395
+0.442575
+-0.238897
+-0.896491
+-0.790113
+0.077004
+-0.489971
+-0.280566
+0.394602
+0.612606
+0.671561
+-0.877900
+0.422929
+-0.739802
+-0.431237
+0.335283
+0.281986
+-0.486615
+-0.514982
+0.923332
+-0.894892
+-0.668199
+-0.234899
+-0.172399
+-0.539880
+0.623874
+-0.354734
+-0.212096
+0.026203
+-0.293006
+0.568042
+0.630203
+-0.957931
+-0.923651
+-0.300406
+-0.090150
+-0.075568
+0.585672
+0.370750
+0.700160
+0.003402
+-0.616859
+0.051007
+0.121018
+0.655059
+-0.245185
+0.393496
+-0.507155
+0.838182
+0.300940
+0.346820
+0.612185
+-0.203855
+0.360893
+0.481327
+0.615845
+0.275893
+0.443879
+0.673102
+-0.957560
+-0.312567
+-0.392317
+0.933759
+0.632321
+-0.288192
+0.958833
+0.971231
+-0.183410
+0.943416
+-0.103917
+-0.384034
+0.891126
+-0.131632
+-0.321065
+0.967886
+0.848734
+0.900201
+-0.574705
+-0.760314
+-0.052990
+0.444339
+0.952278
+-0.037160
+0.505322
+-0.740636
+-0.219858
+-0.822543
+-0.242833
+-0.332037
+-0.952250
+-0.139155
+-0.551084
+0.852879
+0.528297
+-0.724341
+-0.454937
+0.034997
+-0.401881
+0.736491
+-0.220762
+-0.063865
+-0.126958
+0.957738
+0.840004
+0.203518
+-0.745552
+-0.270915
+-0.358893
+0.624020
+-0.584986
+0.882310
+-0.054444
+0.930930
+0.212385
+0.943818
+-0.048353
+0.695084
+-0.448927
+0.410891
+0.681210
+-0.337134
+0.632657
+-0.222051
+0.585766
+1.038975
+0.620713
+0.036675
+0.934161
+0.317102
+-0.556752
+0.784722
+-0.325271
+-0.813417
+0.382689
+-1.073675
+-0.376333
+-0.635777
+-0.381537
+0.912986
+-0.451389
+-0.246487
+-0.700459
+-0.206571
+-0.472105
+0.430119
+0.903281
+-0.026135
+0.254011
+0.257673
+-0.390851
+-0.287456
+0.274917
+0.196406
+-0.888244
+0.602948
+-0.737025
+-0.376458
+0.222974
+-0.940465
+-0.975430
+-0.240731
+-0.816846
+0.672993
+0.260635
+-0.038035
+-0.909890
+0.621874
+0.466990
+-0.825915
+0.413283
+1.005192
+-1.003176
+-0.183459
+-0.441259
+-0.062353
+0.830239
+0.354188
+-0.678496
+-0.417185
+0.400373
+-0.504376
+0.853061
+0.244542
+-0.670770
+0.256838
+-0.595291
+-0.238872
+0.834995
+0.318453
+0.553470
+-0.219654
+-0.920623
+0.970203
+-0.196265
+-0.466692
+-0.450621
+-0.042884
+-0.814746
+0.137072
+-0.565998
+-0.304540
+-0.023297
+0.247714
+-0.927774
+-0.682576
+-0.051081
+-0.855939
+-0.170928
+-0.633529
+0.937806
+0.046634
+-0.903465
+0.809579
+0.633544
+-0.939828
+-0.709222
+-0.411310
+-0.621844
+-0.467749
+-1.016635
+0.184218
+0.764055
+0.927340
+-0.376953
+-0.853724
+0.393326
+-0.062950
+-0.808424
+-0.491981
+0.516044
+-0.909544
+0.798924
+-0.804304
+-0.183010
+0.366390
+0.237476
+-0.514555
+0.847183
+-0.453256
+-0.037445
+-0.358339
+-0.465192
+-0.257601
+-0.519611
+-0.037033
+-0.019005
+-0.916587
+-1.017998
+-0.228899
+-0.703006
+0.872300
+0.937818
+-0.504408
+0.757157
+-0.029270
+0.578604
+-0.135104
+-0.313302
+0.670051
+-0.106920
+-0.958981
+0.335989
+-0.373461
+-0.200218
+0.454707
+0.413424
+1.028351
+0.547388
+0.356379
+-0.562118
+0.215525
+-0.197173
+-0.035683
+0.016667
+0.642252
+0.363795
+0.577653
+0.885220
+-0.117205
+-0.395494
+-0.579578
+-0.986613
+0.519400
+-0.197196
+0.289674
+0.288217
+0.066957
+-0.265130
+0.514425
+1.009136
+0.687708
+-0.885424
+-0.713116
+0.804230
+0.182892
+-0.558920
+0.635030
+0.955115
+-0.056114
+-0.461098
+0.589616
+-0.919485
+-0.057111
+0.190241
+0.039610
+-0.516120
+0.477367
+-0.352251
+-0.971209
+0.436921
+-0.876424
+-0.689582
+-0.663616
+-0.484630
+0.963630
+-0.529806
+0.416132
+0.458702
+0.762093
+0.479644
+-0.626596
+-0.459284
+-0.285397
+-0.569306
+-0.635211
+0.008817
+0.225647
+0.444963
+-0.586478
+-0.240669
+-0.314363
+-0.285134
+-0.958177
+-0.822563
+0.161707
+-0.869850
+0.014148
+0.350416
+0.170210
+0.533814
+0.581777
+0.777568
+0.206510
+-0.230458
+0.194477
+-0.872927
+-0.599289
+0.694539
+-0.358844
+-0.926288
+-0.974796
+-0.733171
+0.431431
+-0.547057
+0.861386
+0.524862
+-0.923032
+0.875713
+-0.195903
+0.686280
+-0.023071
+-0.619488
+-0.301616
+-0.267511
+0.241121
+0.909890
+0.581371
+-0.552702
+0.596829
+-0.068508
+-0.270249
+0.489118
+0.597565
+0.478469
+0.403401
+0.069159
+-0.689275
+-0.513656
+0.778814
+-0.414350
+0.235214
+0.463340
+-0.668667
+-0.190541
+0.826638
+0.325421
+-0.208083
+-0.266639
+-0.234371
+0.456178
+-0.147802
+0.516011
+-0.286688
+-0.063446
+0.155586
+-0.747772
+-0.397164
+0.896419
+-0.547382
+-0.819379
+-0.235943
+-0.232148
+0.351054
+-0.336086
+-0.042955
+0.944992
+0.002382
+-1.031395
+-0.403538
+-0.437390
+0.930052
+-0.122281
+0.552031
+-0.910362
+0.866638
+-0.071035
+-0.971136
+0.828019
+-1.012664
+0.300712
+0.780982
+-0.568797
+-0.591699
+0.881544
+0.410533
+0.835946
+-0.084716
+-0.876512
+0.799848
+-0.343614
+-0.166628
+-0.154836
+0.735625
+-0.616277
+-0.613536
+0.759127
+-0.257483
+-0.139177
+0.994070
+-0.485363
+0.274376
+0.163534
+-0.698122
+0.057755
+0.513391
+-0.217049
+0.511919
+0.447356
+-0.520521
+-0.440523
+0.625075
+0.622725
+-0.026476
+-0.102422
+-0.631998
+-0.655298
+-0.543390
+-0.146158
+-0.285727
+0.020055
+0.908323
+-0.401393
+-0.299389
+-0.132008
+0.925120
+0.582884
+-0.675168
+0.121459
+-0.489925
+-0.353014
+-0.635645
+-0.281901
+0.623522
+0.521198
+0.791225
+0.490376
+-0.163012
+-0.063217
+0.327974
+-0.659146
+-0.502992
+0.461081
+-0.624809
+0.234239
+-0.912389
+-1.045145
+-0.504984
+0.163368
+0.041007
+-0.856054
+-0.876278
+0.379268
+0.681626
+-0.684102
+-0.130372
+0.142413
+0.727280
+1.156126
+-0.112623
+0.505081
+-0.239915
+0.401390
+0.969771
+0.696084
+0.874528
+0.131422
+-0.464959
+-0.769668
+0.714335
+0.795563
+-0.454907
+-0.006004
+0.765746
+-0.420640
+0.490648
+0.220754
+-0.326718
+0.686453
+0.508963
+-0.796351
+0.574530
+-0.515417
+-0.636989
+-0.667021
+-0.351621
+0.359712
+0.090736
+0.365804
+0.453615
+0.099453
+0.170074
+0.265297
+0.635559
+-0.930256
+0.495848
+0.200637
+0.342629
+-0.768267
+-0.370626
+-0.653732
+-0.402810
+0.540440
+-0.447490
+-0.150081
+-0.635161
+0.450431
+-0.179072
+-1.117636
+0.912406
+0.393075
+-0.459327
+-0.896147
+0.066217
+-0.507661
+0.843454
+-0.294873
+-0.106108
+0.271885
+0.156931
+-0.827276
+0.551295
+0.237882
+-0.730475
+-0.458677
+-0.203826
+-0.537136
+-0.848332
+0.117326
+0.686646
+0.260768
+0.888083
+0.672985
+-0.047752
+-0.557743
+-0.913859
+-0.808867
+0.643733
+-0.803580
+0.651223
+0.533052
+-0.529643
+0.154024
+-0.782123
+-0.368484
+0.532205
+0.685875
+-0.726047
+0.509595
+-0.248102
+0.451844
+0.057309
+-0.145525
+-0.754479
+-0.295383
+0.189677
+0.316699
+-0.586269
+0.620076
+-1.141381
+0.761534
+0.578761
+-0.541549
+0.412826
+-0.442154
+-0.954423
+-0.850001
+-0.879608
+-0.694475
+-0.130633
+0.124454
+0.616281
+-0.512624
+0.542506
+0.880956
+-0.142277
+-0.436780
+-0.482653
+0.606511
+0.099154
+-1.035417
+0.382989
+1.092273
+0.709675
+-0.295399
+-0.884141
+-0.414483
+0.747941
+0.392402
+0.332531
+-0.246557
+-0.697362
+0.356957
+-0.412937
+-0.602670
+-0.808346
+-0.398986
+0.816043
+-0.348159
+0.407168
+-0.906385
+-0.471052
+-0.397296
+-0.313879
+-0.280911
+0.948912
+-0.672021
+-0.769280
+-0.331941
+-0.681768
+0.618080
+-0.472254
+-0.602910
+0.605955
+-0.097984
+-0.886800
+0.610061
+0.135863
+0.094217
+0.336418
+-0.378214
+0.902162
+-0.660926
+-0.910919
+-0.421946
+0.407442
+0.836177
+-0.873318
+-0.983384
+-0.732702
+-0.781546
+-0.098489
+0.757061
+0.888392
+-0.749881
+0.078561
+0.768693
+0.224265
+-0.197194
+-0.440790
+0.393620
+0.776509
+0.723276
+0.930602
+-0.691246
+-0.965274
+0.005776
+-0.235684
+0.552433
+0.620843
+-0.329812
+0.728108
+0.551462
+0.382529
+-0.703972
+0.365893
+-0.719807
+-0.795887
+0.219261
+-0.035702
+-0.231956
+-1.201645
+0.129194
+1.032320
+-0.191122
+-0.208803
+-0.228994
+-0.350916
+0.892753
+-0.268123
+0.535971
+0.598063
+0.918989
+-0.817252
+0.620868
+-0.957598
+0.270427
+0.820365
+-0.202779
+-0.760746
+0.458372
+0.788073
+-0.560277
+-0.771209
+-0.813939
+-0.743362
+-0.949592
+0.312617
+-0.704230
+0.934889
+0.386830
+0.127614
+-0.081060
+-1.022252
+0.755099
+-0.639427
+-0.634206
+0.694662
+-0.972091
+-0.347696
+-0.244921
+-0.682453
+-0.604006
+-0.735285
+0.839002
+0.958156
+-0.623639
+-0.912721
+0.850496
+-0.949583
+-0.329343
+0.282066
+-0.033158
+0.501876
+-0.897938
+0.147427
+0.862753
+0.457678
+-0.889461
+0.580567
+-0.964136
+0.267048
+-0.914036
+-0.456192
+0.323810
+0.302388
+0.606024
+-0.598015
+0.742628
+0.031845
+-0.686570
+0.514298
+-0.494307
+-1.155723
+0.578949
+-0.200217
+-0.475610
+-0.789112
+-0.800058
+-0.821756
+0.192765
+-0.069659
+-0.769326
+-0.467244
+-0.221103
+0.894011
+0.423900
+0.519101
+0.827619
+0.678259
+-1.016211
+-0.228391
+0.792457
+0.115785
+0.649302
+0.780673
+-0.822847
+-0.207154
+0.666521
+-0.429927
+0.963827
+-0.736496
+0.142452
+-0.387593
+-0.077232
+-0.003141
+0.420739
+0.209451
+0.281126
+-0.878655
+0.344780
+0.892833
+1.045817
+-0.459553
+-0.061537
+0.533452
+-0.104089
+-0.416649
+0.620637
+0.587597
+-0.182889
+0.958337
+1.068396
+0.451005
+0.548001
+-0.673177
+-0.555115
+0.126512
+0.376169
+-0.398325
+0.817551
+0.480475
+-0.648959
+-0.682211
+0.464760
+0.396868
+-0.630474
+-0.085722
+-0.510450
+0.351189
+0.557669
+-0.237681
+-0.862339
+-0.553979
+-0.742097
+-0.342548
+-0.905974
+0.215216
+0.524967
+0.145656
+0.785902
+0.382761
+-0.034266
+0.768932
+0.746525
+-0.941648
+-0.162391
+0.894680
+0.276711
+0.932673
+-0.917487
+-0.722251
+0.144981
+0.821575
+1.074416
+-0.646056
+0.685130
+-0.259063
+-0.222045
+0.904850
+0.950607
+0.298361
+-0.503228
+-0.295194
+0.990306
+0.692558
+-0.374088
+-0.095944
+0.191443
+-0.339276
+-0.758337
+-0.018326
+0.205696
+0.611494
+0.906338
+-0.344421
+-0.493960
+0.197344
+-0.010357
+0.988219
+-0.036344
+-0.121128
+0.313472
+1.102620
+-0.338744
+0.039757
+0.011449
+0.483477
+-0.404858
+0.259053
+0.556358
+-0.100261
+-0.219921
+-0.666836
+0.907297
+0.817943
+-0.679925
+-0.327243
+0.478698
+-0.013864
+-0.615424
+0.948111
+0.653623
+0.344022
+-0.840517
+0.453063
+0.041982
+0.132060
+0.711509
+-0.228280
+0.673557
+0.569674
+-0.268195
+-0.500032
+0.578648
+0.277022
+0.960775
+-0.353440
+-0.941558
+-0.211866
+-0.427142
+-0.950438
+-0.658912
+-0.263688
+-0.877439
+0.895933
+-0.246868
+-0.665614
+0.607392
+-0.252954
+-0.906283
+0.008042
+-0.884743
+0.877097
+-0.098508
+0.413487
+0.209209
+-0.306922
+-0.493257
+0.425058
+-0.374635
+-0.865513
+-0.002866
+0.666740
+-0.767379
+-0.799081
+0.339781
+0.039181
+-0.731683
+0.005012
+-0.746548
+0.878906
+0.914167
+-0.430735
+0.386682
+-0.212737
+0.751366
+0.658586
+0.132940
+-0.682840
+-0.004058
+-0.804250
+0.032379
+0.719301
+-0.629243
+-0.570671
+0.859325
+0.322035
+0.192745
+0.883430
+-0.309221
+0.827765
+-0.774843
+-0.079329
+-0.398984
+0.039147
+-0.405421
+-0.947486
+-0.696465
+0.644040
+0.725248
+-0.400755
+0.091406
+-0.926410
+-0.889052
+-0.769667
+0.293634
+0.025220
+-0.542233
+-0.610405
+-1.011361
+-0.995017
+-0.346529
+-0.061002
+0.670792
+0.070480
+0.285999
+-0.506828
+1.035251
+-0.639568
+-0.297631
+-0.402710
+-0.759484
+-0.963375
+0.869440
+0.328290
+0.873180
+0.261973
+-0.759123
+-0.802388
+0.646773
+0.815516
+-0.737081
+-0.165088
+-0.424235
+0.397254
+0.648423
+0.834713
+0.569240
+0.562225
+-0.946511
+0.618162
+-0.900375
+-0.862350
+-0.117166
+-0.613820
+0.924237
+0.749995
+-0.860565
+0.970826
+0.136282
+-0.377033
+0.813685
+0.673311
+-0.443567
+-0.831767
+-0.490788
+0.776116
+-0.319175
+0.883046
+0.213604
+-0.361796
+-0.627335
+0.211473
+0.941309
+0.018961
+-0.556903
+0.239364
+-0.108431
+-0.386236
+-0.708643
+0.618748
+0.792469
+0.819007
+-0.638470
+0.962351
+-0.161954
+-0.887387
+-0.577971
+-0.126564
+0.402615
+0.385117
+0.250311
+0.637359
+-0.853465
+-0.886419
+-0.626953
+0.379249
+0.300497
+0.956896
+0.582112
+0.471724
+-0.371869
+-0.087143
+-0.555231
+0.404125
+0.859903
+-0.089501
+-0.606560
+-0.089895
+0.508994
+0.467871
+-0.171265
+-0.910240
+0.333119
+-0.330101
+-0.826415
+0.013723
+-0.176620
+0.405688
+0.625869
+-0.151773
+-0.455139
+-0.053761
+-0.311067
+-0.959788
+0.706489
+0.287474
+0.735665
+-0.586848
+0.162989
+-0.885123
+-0.638706
+-0.712469
+-0.570050
+-0.275907
+-0.166248
+-0.060800
+-0.831473
+0.982561
+0.243535
+0.772799
+0.911917
+0.642185
+-0.344469
+0.294031
+-0.105963
+0.942851
+-0.518303
+-0.456248
+-0.507831
+0.201455
+0.354299
+0.250763
+0.908034
+-0.200397
+-0.238146
+-0.255880
+-0.242766
+-0.065086
+0.893650
+-0.663191
+-0.467051
+0.814009
+-0.192778
+-0.190150
+0.310867
+0.531485
+1.005944
+-0.429000
+-0.493138
+0.699258
+0.908017
+-0.707140
+-0.419594
+0.219637
+0.492302
+0.023948
+-0.296720
+0.362674
+0.597893
+0.671575
+-0.694772
+-0.711134
+-0.795480
+-0.529888
+0.270295
+-0.644597
+0.280793
+-0.585150
+0.553895
+0.292224
+0.133757
+0.029730
+0.109188
+0.312041
+0.918361
+0.568440
+0.554189
+-0.064771
+0.811526
+-0.232050
+0.161619
+0.937735
+0.116606
+-0.560019
+-0.026235
+-0.586273
+-0.423280
+0.495779
+-0.823020
+-0.307251
+-0.695754
+-0.626680
+0.483202
+0.519991
+0.890637
+-0.662079
+-0.640874
+0.484890
+-0.005165
+-0.814678
+0.034653
+-0.392160
+-0.164083
+0.718070
+-0.737274
+-0.068234
+-0.451336
+0.140901
+-0.857585
+-0.346945
+0.638232
+-0.531672
+-0.279250
+0.295171
+0.045641
+0.643582
+0.495235
+0.162788
+0.148707
+-0.325695
+-0.185056
+0.353484
+-0.785805
+0.648679
+0.032288
+-0.357214
+0.980627
+0.104167
+-0.753223
+-0.937957
+0.869119
+0.887039
+-0.417512
+0.358655
+0.835875
+0.829884
+-0.394677
+0.458558
+0.619726
+-0.817590
+-0.004087
+-0.377921
+-0.649813
+-0.763414
+0.273637
+0.261035
+0.879903
+-0.148081
+0.746539
+0.336712
+0.018059
+-0.934818
+0.747348
+0.111051
+-0.637676
+-0.184079
+0.343048
+-0.584829
+-0.764139
+-0.204262
+-0.328929
+-1.064581
+0.155165
+-0.757403
+0.712520
+-0.625715
+0.205508
+0.351074
+0.206561
+0.343567
+0.723363
+-0.606687
+0.585794
+-0.091093
+-0.374444
+-0.037739
+-0.812039
+-0.357588
+-0.411056
+-0.786149
+0.802861
+0.851731
+0.852508
+0.827529
+-0.947248
+0.599427
+0.267773
+-0.961517
+0.794370
+-0.689557
+0.063923
+0.735640
+0.552186
+0.486279
+-0.540594
+0.379393
+-0.501963
+-0.994830
+-0.819384
+0.063408
+0.324195
+-0.396267
+-0.406961
+-0.579830
+-0.986464
+-0.882394
+-0.659251
+-0.550365
+0.948056
+-0.388195
+-0.596256
+-0.907580
+-0.756900
+-0.290264
+-0.123709
+0.979074
+0.152530
+0.710945
+-0.795308
+-0.881488
+0.659365
+1.001230
+-0.289850
+-1.149613
+0.153900
+0.654062
+-0.110801
+-0.353417
+-0.877889
+0.493497
+0.325293
+0.224048
+0.548356
+0.115006
+-0.200471
+0.018176
+0.781044
+0.149749
+-0.477883
+0.806002
+-0.719466
+-0.325975
+-0.089201
+-0.784754
+0.817259
+-0.938550
+-0.003345
+0.624522
+-0.961492
+0.776605
+-0.382308
+0.046089
+0.694238
+-0.880204
+0.833989
+0.314032
+0.334394
+0.527880
+-0.075538
+0.863001
+0.513702
+-0.058671
+-0.806710
+0.820362
+-0.457822
+0.120389
+0.744081
+-0.675832
+0.041730
+0.504180
+-0.773775
+0.257818
+0.571170
+0.830328
+0.891839
+0.402615
+0.689869
+0.768138
+0.682406
+0.270962
+-0.035520
+-0.693803
+0.175743
+-0.812556
+-0.684691
+0.076843
+-0.179201
+-0.968407
+-0.812242
+-0.835414
+0.124200
+1.035324
+0.546894
+0.694226
+0.102780
+-0.114695
+0.890431
+0.016521
+0.868340
+0.703781
+-0.779997
+-0.571438
+-0.437906
+-0.183024
+-0.657739
+0.911240
+0.034641
+0.411471
+-0.381679
+-0.919768
+-1.063471
+-0.453776
+0.494897
+0.783512
+0.644592
+0.587532
+0.603044
+0.633135
+0.853943
+0.638391
+0.842797
+0.488506
+0.969263
+0.664627
+-0.975275
+0.632787
+0.051507
+0.084401
+0.926287
+-0.610178
+-0.452160
+-0.565331
+-0.149512
+0.813793
+0.032956
+0.929604
+0.373145
+0.933518
+-0.617172
+-0.456364
+0.453835
+-0.114536
+-0.406769
+0.649529
+-0.101881
+-0.226177
+0.316329
+0.703770
+-0.173648
+0.723694
+-0.132693
+-0.720358
+0.264838
+-0.072750
+0.748026
+-0.385411
+0.910906
+0.708149
+-0.854155
+-0.285565
+-0.453818
+-0.100872
+0.046314
+-0.536137
+-0.670041
+0.334674
+-0.256902
+-0.032731
+0.381773
+0.304987
+0.097628
+0.727979
+0.621195
+0.614040
+0.233064
+0.870643
+0.988849
+0.617091
+0.411190
+0.846738
+-0.090877
+-0.721423
+-0.282959
+-0.091236
+-0.350122
+-0.215971
+0.180132
+0.771922
+-0.813980
+0.210156
+0.532863
+0.358506
+-0.229655
+-0.224614
+0.115208
+0.610301
+-0.315159
+-0.521592
+0.301338
+0.349711
+0.059299
+-0.318752
+0.134301
+-0.347743
+0.515095
+-0.349054
+-0.442420
+-0.236020
+0.616454
+0.081454
+-0.814506
+-0.795573
+0.476016
+0.774121
+-0.655496
+0.598893
+-0.528191
+-0.374946
+0.861178
+-0.382918
+-0.972480
+-0.027933
+0.895706
+0.458429
+-0.478606
+-0.968157
+-0.255324
+0.864838
+-0.122829
+-0.732347
+0.209237
+-0.434834
+-0.596023
+-0.647962
+0.274101
+0.014026
+0.040539
+0.372938
+-0.184807
+-0.119972
+1.056613
+0.691113
+1.004037
+0.678348
+-0.616179
+-0.789400
+-0.161960
+0.200771
+-0.023622
+0.240501
+0.167690
+-0.021416
+-0.891759
+0.060814
+-0.795122
+-0.802429
+-0.189661
+-0.983335
+-0.056288
+0.879981
+-0.896000
+-0.218620
+-0.540897
+-0.204611
+0.154292
+-0.674377
+-0.431649
+0.647345
+-0.521191
+-1.024490
+-0.443073
+-0.685119
+-0.762347
+0.467887
+0.876269
+-0.241813
+0.360784
+-0.477106
+0.212966
+0.101959
+0.556362
+0.811458
+-0.800689
+-0.606672
+0.635487
+-0.546318
+-0.161004
+0.435290
+0.060351
+-0.032252
+0.279495
+0.272120
+1.005139
+-0.577785
+-0.192700
+0.689231
+-0.866208
+0.392083
+-0.145227
+0.471486
+-0.252978
+-0.411961
+-0.109454
+-0.750778
+-0.790695
+-0.852306
+0.578958
+-0.153083
+-0.563909
+-0.064697
+-0.917235
+0.513236
+-0.118126
+-1.041402
+0.261800
+0.890677
+0.250282
+0.483583
+1.039810
+0.800430
+0.875305
+-0.929828
+0.386437
+-0.756115
+-0.465155
+0.080164
+0.192968
+0.594975
+0.827860
+-0.502612
+-0.757571
+0.614351
+-0.669054
+0.805121
+-0.354477
+-0.221971
+-0.668175
+0.682204
+0.429973
+0.485213
+0.929653
+0.753645
+-0.815497
+0.962993
+0.532401
+-0.252330
+1.008271
+0.687140
+-0.264466
+-0.092632
+-0.399913
+0.710552
+0.981790
+-0.966901
+0.231066
+-0.901192
+0.610459
+0.497854
+-0.159076
+-0.703333
+-0.167132
+-0.863317
+-0.265407
+0.918283
+-0.258567
+-0.394596
+0.715623
+0.169655
+-0.816433
+0.736229
+-0.093372
+-0.188552
+0.473067
+-0.070746
+0.006684
+0.123733
+-0.653437
+0.512100
+-0.162631
+0.046256
+-0.251614
+0.599233
+-0.677275
+-0.193148
+-0.002593
+-0.652098
+-0.727138
+0.414318
+0.692162
+-0.585542
+0.978540
+0.839405
+0.763441
+0.572180
+0.556023
+0.032017
+0.043158
+0.367283
+0.711312
+0.035095
+0.835849
+1.020544
+-0.729349
+-0.299213
+-0.203289
+0.494824
+-0.931985
+-0.155428
+-0.224191
+0.174671
+0.567926
+-0.107782
+0.729815
+0.018687
+0.397582
+0.499538
+0.428758
+-0.585783
+-0.724846
+0.755049
+-0.745565
+-0.339855
+0.836359
+0.313853
+0.767950
+0.491581
+-0.875921
+-0.183531
+-0.046551
+0.368578
+0.149640
+0.126130
+0.736297
+-0.204617
+0.320729
+-0.327625
+-0.752163
+-0.640265
+0.168871
+0.153051
+0.578827
+0.308840
+0.755132
+0.318413
+-0.406999
+0.047979
+-0.102172
+0.448169
+-0.836947
+-0.392144
+0.323590
+0.629305
+-0.459119
+0.060272
+-0.439163
+-0.675904
+0.295422
+-0.628597
+-0.508675
+-0.837534
+-0.016286
+-0.523161
+-0.320379
+0.630140
+-0.004212
+-0.848328
+0.890658
+-0.393856
+-0.803118
+-0.368130
+-1.000149
+0.071707
+0.614813
+0.926716
+-0.718884
+0.999458
+0.096613
+0.593521
+-0.002366
+0.645102
+0.649643
+0.230712
+-0.773076
+0.265372
+0.287320
+0.710007
+0.455293
+0.172963
+-0.957911
+-0.673291
+0.965935
+0.661931
+-0.736715
+0.527753
+-0.849326
+-0.610154
+0.842737
+-0.315624
+0.098106
+-0.231495
+-0.078885
+0.454151
+-0.790395
+0.386030
+0.933513
+0.301344
+0.661936
+-0.309909
+-0.700299
+0.223902
+-0.882259
+-0.695503
+-0.757786
+0.867261
+-0.378497
+0.753267
+0.742921
+-0.414137
+-0.592796
+0.642320
+-0.561261
+0.135470
+-0.962017
+-0.364099
+-0.367560
+-0.010962
+-0.549432
+-0.942715
+0.285007
+-0.921738
+-0.809412
+-0.626948
+0.949330
+0.377557
+0.194551
+0.166928
+-0.917790
+-0.266496
+0.085661
+-0.002002
+0.244851
+-0.551547
+0.213252
+0.403354
+-0.601459
+-0.350087
+0.296054
+-0.572376
+0.913609
+-0.517891
+0.577121
+-0.926068
+-0.408091
+0.503311
+-0.042909
+-0.952876
+0.562506
+0.122890
+0.417989
+-0.498730
+0.689019
+0.657363
+0.680142
+-1.007419
+-0.262698
+-0.421983
+-0.131087
+-0.697918
+-0.250783
+0.384560
+-0.498023
+0.665213
+0.693950
+0.699394
+0.494687
+-0.584598
+0.722819
+0.789061
+0.303900
+-0.362024
+0.243043
+-0.043447
+0.479630
+0.632527
+-0.080207
+-0.304227
+-0.526267
+0.254036
+0.275164
+-0.347141
+0.063574
+1.118459
+-0.369224
+0.363763
+-0.294090
+0.162932
+0.707883
+-0.387733
+-0.706615
+-0.271359
+0.179845
+-0.037620
+0.867038
+0.351843
+-0.905019
+-1.024129
+-0.675510
+-0.634853
+0.175469
+0.960001
+-1.016407
+1.030633
+-0.666458
+0.148974
+-0.159050
+0.132968
+0.622212
+-0.209454
+0.427281
+-0.319995
+-0.354991
+0.953900
+-0.742304
+-0.498165
+-0.562712
+-0.197195
+0.563224
+0.850617
+0.381504
+-0.328800
+0.345843
+0.374072
+-0.429326
+-0.742787
+0.406935
+-0.137839
+0.722187
+0.939157
+0.343004
+-0.357509
+-0.713334
+0.194938
+-0.267077
+-0.821497
+-0.845818
+0.259136
+-0.130939
+-0.735937
+0.103763
+0.905825
+-0.945451
+-0.607663
+1.029004
+-0.940560
+-0.180918
+-0.171035
+-1.066252
+-0.763769
+-0.357626
+0.771126
+-0.257790
+0.816810
+0.517086
+0.636251
+-1.012603
+0.065286
+-0.799312
+-0.277359
+0.602175
+-0.579685
+-0.619597
+0.538457
+0.771795
+0.880104
+-0.146183
+-0.465978
+0.792071
+0.592931
+-0.872300
+0.263030
+-0.515165
+-0.802064
+-0.712626
+0.793494
+-0.310953
+0.033882
+0.374843
+-0.472679
+-0.310692
+0.566585
+-0.473619
+1.042033
+0.134123
+0.674983
+-0.810148
+0.655767
+-0.004966
+-0.322357
+0.401078
+0.272588
+0.022387
+0.395008
+-0.790657
+-0.024229
+0.269179
+-0.125273
+-0.373349
+0.116929
+-0.609113
+0.969427
+-0.634111
+0.417980
+0.568427
+0.368420
+0.017566
+-0.072226
+0.698967
+0.000677
+-0.596538
+-0.384767
+-0.862748
+0.184124
+0.190652
+-0.272514
+0.567174
+-0.788650
+-0.189900
+0.350372
+0.983395
+-0.700930
+0.851410
+-0.165623
+-0.075813
+-0.545610
+-0.606671
+-0.114981
+0.869089
+0.026307
+0.298922
+-0.510264
+-0.179032
+-0.241402
+-0.671250
+0.130310
+0.657964
+-0.221314
+-0.604645
+0.200344
+-0.174168
+-0.977283
+0.401338
+0.497818
+0.332907
+-1.023449
+0.345233
+0.708144
+-0.566231
+-0.810675
+0.651616
+0.656970
+-0.576176
+0.519848
+-0.587085
+0.673480
+0.497716
+-0.225798
+0.715637
+0.509198
+0.132611
+0.092050
+-0.069931
+-0.959737
+-0.433564
+0.960270
+-0.213815
+0.807987
+-0.157458
+-0.883559
+0.078309
+0.578275
+0.261590
+-0.704427
+-0.425903
+1.028734
+-0.697999
+-0.632654
+-0.517921
+0.466881
+-0.810429
+-0.145894
+0.157419
+-0.809868
+0.733423
+0.396841
+-0.903444
+-0.531216
+0.953547
+0.968761
+-0.820868
+0.619330
+0.239114
+0.882259
+0.339957
+0.695647
+0.432863
+1.032059
+-0.742325
+0.660935
+-0.685085
+0.407428
+-0.200048
+-0.736496
+0.745596
+-0.060719
+-0.339402
+-0.680465
+0.351471
+0.661624
+0.436034
+0.195588
+0.724797
+0.073724
+0.751450
+1.011334
+-0.177421
+-0.277542
+0.771815
+0.465837
+-0.694417
+1.014724
+0.100238
+-0.568248
+0.345615
+-0.128883
+0.965885
+-0.512943
+-0.852198
+0.363323
+0.960699
+-0.161197
+-0.634092
+0.324797
+-0.155820
+0.665085
+-0.055256
+-0.257087
+-0.806844
+-0.301965
+0.400956
+-0.375654
+0.729837
+0.843483
+0.386833
+1.034077
+-0.555892
+-0.879088
+-0.647978
+-0.614235
+0.839571
+-0.286271
+-0.798355
+0.909976
+0.651515
+0.312698
+-0.655746
+0.731683
+0.714997
+-0.173863
+0.667460
+-0.453840
+-0.524719
+0.839594
+-0.659308
+-0.868642
+0.737935
+0.794686
+-0.897478
+-0.632213
+-0.376497
+-0.269582
+-0.529996
+0.584019
+-0.211898
+-0.077988
+0.754752
+-0.405137
+0.650633
+-1.012816
+0.660456
+0.580349
+0.548284
+0.613143
+0.065639
+0.446549
+0.680604
+-0.451855
+-0.738243
+0.413990
+-0.131578
+0.020525
+-0.281908
+0.197104
+0.131757
+0.201525
+-0.618568
+0.504705
+-0.713180
+0.827694
+-0.600361
+-0.367728
+0.299142
+0.579364
+-0.596450
+-0.074628
+0.781828
+-0.630786
+-0.104243
+-0.298281
+0.600498
+0.722301
+0.771783
+0.551260
+-0.144668
+-0.369339
+0.329243
+-0.474928
+-0.659071
+0.162500
+-0.873220
+0.943396
+-0.267799
+0.580249
+-0.562558
+-0.570252
+0.320868
+-0.625211
+-0.888584
+0.519258
+0.822967
+0.537831
+-0.161864
+-0.761376
+0.440469
+0.299876
+-0.578372
+-0.931993
+0.937098
+-0.323323
+-0.293339
+0.109623
+-0.888742
+0.049274
+0.898158
+0.984244
+-0.369624
+0.386245
+-0.199344
+0.904264
+0.161610
+0.370673
+-0.192173
+-0.077858
+0.333474
+0.330821
+-0.886763
+0.058676
+-0.227588
+0.045314
+0.359428
+0.735629
+-0.492422
+0.529220
+-0.598987
+-0.409514
+-0.664385
+0.318554
+0.403930
+0.895264
+0.147433
+0.505021
+-0.332604
+0.558625
+-0.458973
+0.104734
+0.979821
+0.316313
+-0.115388
+-0.712047
+-0.780638
+-0.341187
+-0.404451
+0.228544
+-0.443219
+0.393202
+0.372143
+0.425971
+0.670887
+-0.683142
+0.991783
+-0.855393
+-0.680867
+-0.857767
+0.922931
+0.786761
+0.054716
+0.824751
+0.213958
+-0.824421
+-0.974486
+-0.605695
+0.358434
+0.118734
+-0.688611
+0.522338
+-0.578752
+0.943399
+0.554697
+-0.924288
+-0.599085
+0.753777
+-0.958742
+0.976305
+-0.859952
+0.566492
+-0.826513
+-0.317316
+0.516550
+-0.119276
+-0.790565
+0.202789
+0.451140
+0.902679
+-0.820484
+0.638342
+-0.050888
+-0.827476
+-0.177096
+-0.881018
+-0.648249
+-0.563805
+-0.075466
+-0.396519
+0.938332
+0.491266
+0.698323
+-0.598137
+-0.631812
+0.559449
+0.224307
+-0.498367
+0.754179
+-0.853605
+1.063603
+-0.963905
+-0.874176
+-0.647033
+0.458093
+-0.815596
+0.643108
+-0.544514
+-0.207142
+-0.615942
+0.279317
+-0.718783
+0.557273
+-0.006272
+0.231685
+-0.428387
+0.701708
+0.903308
+0.693012
+-0.456992
+-0.637908
+0.371893
+0.788309
+0.176593
+0.693479
+0.276612
+0.448865
+-0.640621
+0.846086
+-0.366781
+-0.459579
+0.405153
+-0.043904
+-0.614136
+0.421121
+0.144428
+-0.750772
+-1.062052
+0.784581
+0.472697
+-0.380122
+0.752141
+0.096056
+0.887979
+0.245877
+-0.163077
+1.005017
+-0.291291
+-0.915943
+0.194104
+-0.958926
+-0.944474
+0.316948
+-0.528946
+-0.649421
+0.179068
+0.113803
+0.009609
+0.857163
+0.026700
+0.427186
+-0.120254
+-0.191062
+-0.742304
+0.739168
+0.988714
+0.204951
+-0.852277
+-0.008360
+-1.050607
+0.661821
+0.700714
+0.046681
+0.892540
+-0.340933
+-0.155404
+-0.648984
+-0.640982
+-0.479507
+-0.178546
+0.438591
+0.252317
+-0.440286
+-0.671659
+-0.731754
+0.293090
+0.405211
+0.093917
+0.336004
+0.223586
+-0.837387
+-0.972591
+-0.136053
+0.575315
+-0.071799
+-0.735029
+-0.757607
+-0.428097
+-0.411342
+-0.933783
+-0.459586
+0.005164
+-0.292652
+-0.738837
+-0.376553
+-0.514922
+0.236642
+0.716738
+0.262534
+-0.047292
+-0.907226
+-0.598570
+0.374825
+0.182565
+-0.352520
+0.159032
+0.146566
+0.853986
+-0.393659
+0.537576
+0.660505
+0.208985
+0.272917
+-0.247196
+-0.198486
+0.546989
+0.144294
+0.705885
+-0.232812
+0.615202
+0.372175
+1.071655
+0.317726
+-0.298727
+0.044642
+-0.785866
+0.169420
+1.005117
+-0.300501
+-0.046726
+-0.120376
+0.973862
+0.070018
+0.902472
+-0.660288
+0.543849
+-0.747167
+-0.332374
+-0.098654
+-0.049797
+-0.508682
+0.699229
+-0.568473
+0.394934
+-0.819568
+-0.897134
+0.180393
+0.839628
+0.807911
+-0.275151
+-0.735100
+-0.079491
+-0.859882
+-0.875912
+-0.353513
+-0.261194
+-0.883644
+0.919000
+-0.248356
+-0.529981
+-0.904580
+-0.925664
+0.677252
+-0.294237
+-0.915184
+0.074956
+-0.635012
+-0.034361
+-0.427996
+-0.736620
+-0.226174
+-0.360085
+0.212906
+-0.255784
+-0.300336
+-0.878361
+-0.321429
+0.619364
+-0.801352
+-0.182437
+0.207089
+0.934752
+-0.388864
+-0.704221
+0.842090
+-0.387229
+-0.443530
+1.024688
+-0.774785
+0.201228
+0.611293
+-0.844565
+-0.856318
+0.197988
+0.168998
+-0.621039
+0.018292
+-0.168462
+0.837710
+-0.418182
+-0.227166
+-0.598991
+-0.105221
+-0.451829
+-0.630904
+-0.851252
+0.053947
+0.438809
+0.374903
+-0.846602
+-0.932330
+-0.652513
+-0.586918
+0.450033
+0.789799
+-0.173482
+-0.786460
+0.613002
+0.979021
+-0.649245
+0.791728
+0.291798
+0.352325
+0.829027
+0.612789
+0.447453
+-0.045894
+-0.760408
+-0.234567
+0.159288
+-0.239033
+-0.125913
+-0.552948
+0.121086
+-0.491240
+0.595911
+-0.594090
+-0.764972
+-0.397128
+-0.409997
+0.990056
+-0.475705
+0.038085
+0.023815
+-0.273559
+-0.814439
+0.820739
+0.334759
+-0.059979
+0.240529
+-0.797999
+-0.502018
+-0.049211
+-0.427160
+-0.384826
+-1.010515
+-0.526780
+0.595445
+-0.823753
+-0.381748
+0.741884
+0.601207
+-0.719924
+-0.296498
+0.230100
+-0.896276
+-0.440964
+-0.730039
+0.758289
+-0.016026
+0.689567
+-0.149063
+-0.957780
+-0.454828
+-0.255817
+0.734013
+-0.558080
+-0.223185
+-0.988871
+0.726203
+0.024744
+0.465757
+0.127730
+0.717413
+0.592561
+0.271062
+-0.049131
+-0.526407
+-0.892025
+-0.077836
+-0.194244
+-0.729532
+-0.092232
+-0.505023
+-0.635133
+0.932305
+0.878501
+-0.492899
+0.551533
+0.865830
+0.976953
+0.030728
+0.357488
+0.570367
+-0.316430
+0.528622
+-0.328377
+-0.617438
+-0.733120
+-0.687152
+-0.193416
+-0.369308
+-0.469550
+-0.455901
+-0.306095
+0.672490
+0.940217
+-0.080237
+0.427338
+-0.771656
+0.227411
+-0.993658
+-0.764078
+0.842926
+0.057771
+-0.692379
+0.560051
+0.091738
+0.585775
+-0.732762
+0.912357
+-0.927492
+-0.543373
+0.367874
+0.922811
+0.957781
+0.965328
+0.965059
+-0.188413
+0.515849
+0.787322
+-0.431060
+0.142763
+-0.509445
+0.580445
+0.857223
+-0.640645
+0.876806
+0.685157
+0.163047
+0.679972
+-0.830031
+-0.195060
+-0.970491
+0.540443
+0.158946
+0.807302
+0.973279
+-0.193294
+0.246183
+-0.682191
+0.116396
+-0.467767
+-0.459420
+0.170977
+0.160928
+-0.269786
+0.037245
+0.220712
+-0.207383
+-0.114993
+0.592364
+-0.011138
+-0.219000
+0.290734
+-0.872486
+-0.196685
+0.194121
+0.359534
+-0.545682
+-0.945582
+-0.245559
+-0.474522
+-0.849107
+-0.636416
+0.437156
+-0.507642
+0.414128
+-0.443415
+-0.034103
+-0.866464
+-0.795383
+0.778569
+-0.085774
+0.407614
+-0.923144
+0.328843
+-0.671646
+-0.332215
+0.398402
+-0.008434
+-0.544375
+0.737371
+-0.090377
+0.335182
+0.440318
+-0.370225
+0.605842
+0.043731
+0.658162
+-0.178117
+0.338874
+0.558024
+-0.031893
+-0.983101
+-0.422698
+-0.617607
+0.590282
+0.606391
+-0.591931
+-0.988016
+-0.259896
+0.353132
+-0.691745
+0.348218
+-0.706804
+0.711304
+0.034060
+0.051411
+-0.523825
+0.543267
+-0.389438
+-0.878179
+-0.877544
+-0.341923
+-0.523137
+0.349850
+0.537821
+1.103504
+0.950100
+0.399132
+0.937847
+-0.775387
+-0.526248
+0.581235
+-0.312012
+0.707289
+-0.239875
+0.020298
+-0.191071
+-0.167816
+0.628210
+0.075414
+-0.948128
+-0.665617
+-0.470674
+0.035884
+0.193528
+-0.239606
+0.224737
+0.279668
+-0.688080
+0.309513
+-0.433380
+-0.835129
+0.760948
+-0.383939
+-0.900119
+0.393368
+0.459943
+-0.363745
+0.320359
+0.193378
+-0.989803
+-0.401584
+-0.849701
+-0.906713
+-0.649041
+-0.003791
+-0.687985
+0.631911
+0.406062
+-0.744106
+-0.209022
+0.993219
+0.395884
+0.145437
+-0.473396
+-0.621042
+0.179936
+0.661317
+0.760562
+0.203373
+0.464239
+0.093246
+-0.477034
+0.679366
+-0.162537
+0.105446
+0.336140
+0.881807
+0.023694
+-0.345104
+-0.648573
+0.628459
+-0.163511
+-0.878143
+-0.886665
+-0.849295
+-0.758945
+-0.413007
+-0.616038
+-0.432888
+-1.087417
+0.900633
+-0.649702
+-0.644018
+-0.306943
+0.397213
+0.611740
+-0.341851
+-0.284517
+-0.128659
+0.347711
+-0.445728
+-0.618331
+0.404004
+-0.572827
+-0.643524
+-0.069094
+-0.968011
+0.370219
+-0.795682
+-0.855764
+0.342136
+0.838368
+0.058636
+0.831888
+-0.166945
+-0.619527
+-0.766378
+0.988533
+-0.927401
+-0.223476
+0.463743
+0.185399
+0.390504
+0.632247
+0.715202
+0.584903
+0.894805
+0.981625
+-0.570251
+-0.975229
+0.862782
+0.783422
+-0.746813
+-0.034693
+0.688707
+-0.089939
+0.762546
+0.496312
+-0.755942
+-0.905321
+0.076679
+-0.659911
+0.848828
+0.435001
+-0.748248
+0.425834
+0.452582
+0.461891
+0.964277
+-0.460200
+0.862100
+0.705591
+0.431050
+-0.382427
+-0.310484
+0.995944
+-0.871518
+0.310895
+0.072544
+0.773516
+0.510541
+-0.968211
+-0.068379
+0.352547
+0.236751
+0.743939
+0.604332
+0.261424
+0.265417
+0.723934
+-0.828250
+0.396557
+-0.954951
+-0.777951
+0.909073
+-0.485456
+-0.758645
+-0.960659
+-0.101440
+-0.863638
+0.689731
+-0.361884
+-0.589711
+-0.996679
+-0.764907
+-1.004716
+0.015047
+-0.809757
+0.833030
+-0.339589
+-0.152196
+-0.404139
+0.991922
+-0.706418
+-0.713334
+-0.860584
+0.346293
+0.680964
+-0.680982
+-0.303772
+-0.580494
+-0.231578
+-1.006541
+-0.617274
+-0.734566
+1.000652
+-0.945128
+0.567077
+0.337953
+0.900647
+0.520888
+0.141759
+0.094476
+0.518932
+0.192169
+0.703996
+0.903536
+0.215279
+-0.770936
+0.619703
+0.033867
+0.162691
+-0.472391
+-0.546767
+0.105704
+0.501827
+-0.351394
+0.910183
+0.538022
+-0.485592
+-0.778836
+0.215099
+0.871739
+0.349108
+0.933366
+0.628459
+0.819454
+-0.636133
+0.278223
+-0.738844
+-0.129467
+-0.787870
+-0.418683
+-0.459781
+-0.093844
+-0.291386
+0.778400
+0.978193
+-0.218901
+0.882636
+0.095371
+0.704332
+-0.977255
+-0.785119
+-0.821723
+-0.594140
+0.224768
+-0.618554
+0.245430
+0.194372
+-0.249131
+-0.301723
+-0.679921
+-0.878946
+-0.520723
+-0.133902
+0.166176
+0.834935
+0.733005
+0.309538
+0.126370
+0.779936
+0.457093
+0.817954
+0.955473
+-0.368764
+0.455895
+0.442520
+0.178453
+0.468616
+-0.377990
+-0.159822
+0.596939
+0.831157
+-0.183469
+0.623510
+-0.132057
+0.482470
+1.014100
+0.181400
+0.862493
+0.004284
+0.690415
+0.415287
+0.007734
+0.137460
+0.527045
+-0.075051
+0.561974
+-0.039787
+-0.054716
+-0.492453
+0.724154
+0.649624
+0.792319
+-0.074121
+-0.833927
+0.533016
+0.728248
+0.489479
+0.170096
+-0.706926
+-0.435096
+-0.304913
+-0.972894
+0.533529
+0.983692
+-0.706457
+-0.320263
+0.618762
+-0.106259
+-0.212483
+0.273586
+0.319659
+-0.470357
+0.937440
+0.147847
+-0.541548
+-0.428804
+-0.119230
+-0.129960
+-0.762104
+-0.771139
+0.441698
+-0.590836
+0.620100
+-0.493644
+0.664667
+-0.967464
+-0.765841
+-0.885051
+0.946268
+-0.184810
+0.560392
+0.636582
+-0.853122
+1.115805
+0.733579
+-0.626209
+0.543676
+0.131921
+0.130359
+-0.461543
+-0.894684
+-0.431455
+0.730321
+0.634743
+0.399135
+-0.246187
+0.436531
+-0.340818
+0.498065
+0.976508
+0.384907
+-0.343805
+-0.998480
+-0.381929
+0.343106
+-0.804523
+0.827882
+0.539793
+-0.700129
+-0.595129
+-0.473099
+0.297461
+-0.415020
+0.043699
+0.795271
+0.424052
+0.649629
+-0.791122
+-0.319049
+0.618517
+0.088913
+-0.097118
+-0.981990
+-0.284420
+0.265505
+0.011361
+-0.892851
+-0.794544
+-0.230711
+0.655530
+-1.117070
+0.641930
+0.882872
+0.431852
+0.699356
+0.409019
+-0.531719
+-0.532902
+-0.297574
+0.742069
+0.771613
+-0.942107
+0.682958
+-0.981396
+0.375407
+0.590677
+-0.081328
+0.865255
+0.078084
+0.193953
+-0.072928
+0.822435
+-0.449652
+-0.466730
+0.518646
+-0.346720
+-0.206814
+-0.013016
+-0.759663
+0.228103
+-0.842854
+0.720064
+-0.624734
+-0.411567
+-0.268279
+-0.836020
+0.630951
+0.912798
+-0.781356
+-0.535660
+-0.647138
+-0.253273
+0.382025
+0.040535
+-0.144522
+-0.732202
+-0.040754
+-0.914285
+0.007560
+-0.337117
+-0.289211
+-0.391842
+0.227861
+-0.244115
+-0.386250
+0.986930
+-0.481563
+0.866608
+-0.845900
+-0.267488
+0.791576
+-0.195968
+-0.943133
+-0.766453
+-0.007539
+0.907528
+-0.556459
+-0.060628
+0.152347
+0.385030
+-0.512032
+-0.376178
+0.737183
+0.845396
+0.242431
+-0.036961
+0.460633
+-0.251452
+-0.825411
+0.857323
+0.175557
+0.313629
+-0.274727
+0.088263
+0.226246
+0.898603
+0.527819
+-0.372002
+0.730384
+0.530090
+-0.887070
+-0.233687
+-0.638453
+-0.280980
+-0.919505
+0.942231
+0.640037
+0.525024
+-0.160888
+-0.528516
+-0.936199
+-0.332554
+0.853820
+0.838979
+0.082514
+0.204031
+0.357565
+-0.109590
+-0.698076
+0.063427
+-0.971891
+0.724838
+-0.774230
+-0.491187
+-0.305196
+-0.909774
+0.942405
+0.834656
+0.255893
+0.111014
+0.842863
+-0.691508
+-0.167356
+1.048420
+-0.551258
+-0.756804
+0.679947
+-0.145630
+0.650591
+-0.022803
+-0.525319
+-0.094003
+0.904875
+0.309181
+-0.783032
+0.615743
+0.944391
+0.366590
+0.808613
+0.804067
+0.426146
+-0.105530
+-0.086417
+0.680371
+-0.446035
+0.677754
+-0.145139
+-0.360578
+0.868794
+-0.688703
+0.953027
+-0.376398
+-0.642423
+-0.841226
+-0.346679
+-0.215259
+0.928981
+-0.904130
+0.488384
+0.863171
+0.813031
+-0.399817
+-0.395110
+-1.020734
+-0.558182
+-0.741636
+0.023505
+-0.771033
+0.428699
+0.936473
+0.022236
+0.064784
+-0.207708
+-0.611958
+0.781638
+0.042415
+0.058364
+-0.093097
+0.001296
+-0.626122
+0.464208
+-0.134260
+0.601569
+0.925343
+-0.845573
+0.476641
+-0.442628
+-0.961550
+-0.664916
+-0.490460
+0.373965
+-0.069494
+0.493156
+0.915678
+-0.950321
+-0.076069
+-0.089091
+0.659476
+-0.906413
+-0.301555
+0.553862
+-0.728699
+0.700327
+-0.951030
+-0.301557
+-0.578134
+-0.355589
+-0.043436
+0.456082
+0.353491
+0.107921
+0.833604
+-0.583699
+-0.284116
+-0.384108
+0.069845
+-0.058608
+0.079154
+-0.548164
+-0.605021
+-0.734387
+-0.150636
+-0.508958
+-0.590526
+0.816671
+-0.782190
+-0.668170
+0.148296
+-0.944868
+-0.535600
+0.641688
+-0.980534
+-0.039608
+0.234270
+0.621865
+0.678375
+0.894820
+0.089063
+-0.054563
+0.447748
+-0.128051
+-0.411820
+-0.329755
+0.192928
+0.427649
+0.194464
+1.087515
+-0.752546
+0.222876
+0.614362
+-0.286410
+-0.517664
+0.178543
+0.538582
+-0.986732
+0.749010
+0.621575
+0.973595
+0.229660
+-0.432383
+0.950729
+0.770858
+-0.085761
+-0.669456
+-0.801748
+-0.982895
+0.375825
+-0.729358
+-0.380613
+-0.170470
+-0.357875
+0.157204
+0.119441
+0.655967
+-0.030565
+0.622430
+-0.015014
+-0.089812
+0.480776
+-0.074836
+-0.662554
+0.659963
+0.896560
+0.430056
+0.422028
+-0.626835
+-0.031292
+-0.797106
+0.039204
+-0.924656
+-0.076493
+-0.575227
+0.418069
+0.008061
+0.063056
+-0.773153
+0.799404
+-0.520121
+0.163932
+0.755478
+0.882666
+-0.230833
+-0.378910
+0.074962
+0.582053
+0.314772
+-0.126888
+0.300310
+-0.607303
+-0.827973
+0.080571
+0.503288
+0.827571
+-0.770238
+0.873869
+0.608305
+-0.823918
+0.943847
+0.527194
+0.520787
+0.733010
+0.181216
+-0.782441
+0.379898
+-0.191243
+-0.687641
+-0.818738
+0.748925
+-0.952880
+-0.102063
+-0.579820
+-0.119932
+0.505899
+0.522417
+-0.709465
+-0.937884
+0.612977
+-0.446370
+-0.317219
+-0.863980
+-0.331708
+0.886880
+0.401092
+0.781933
+-0.778256
+-0.831214
+0.085644
+-0.430237
+-0.251156
+-0.870818
+0.733846
+0.068949
+0.093181
+-0.866989
+-0.313291
+0.976267
+1.032617
+0.716124
+-0.296848
+-0.038546
+0.322122
+0.241449
+-0.112256
+-0.041297
+-0.166727
+0.376337
+0.206465
+-0.974973
+-0.947785
+0.376649
+0.786065
+0.016514
+-0.911819
+-0.698529
+-0.819237
+0.369818
+0.115586
+0.456271
+0.774501
+-0.246648
+-0.260110
+0.362121
+0.538009
+0.079437
+0.939945
+0.349925
+0.815934
+0.617105
+-0.349061
+-0.198364
+0.193707
+-0.486530
+0.828924
+1.032421
+0.626675
+0.020125
+-0.072477
+-0.184204
+-0.710720
+-0.530665
+-0.579977
+-0.271998
+-0.480923
+-0.211500
+0.593879
+-0.922472
+-0.040552
+0.247709
+-0.866050
+0.727422
+-0.797538
+-0.516329
+-0.693413
+0.452747
+0.435729
+-0.820469
+0.801785
+0.267434
+0.834772
+-0.405107
+-0.136688
+-0.571407
+-0.828903
+0.084531
+-0.599819
+0.268534
+0.233020
+-0.616502
+-0.339874
+0.946138
+0.723855
+-0.296709
+0.881453
+0.489682
+0.106183
+0.198541
+0.250955
+0.659765
+-0.151471
+-0.126144
+-0.485363
+-0.674517
+0.752224
+-0.813786
+1.031245
+-0.877552
+0.328466
+-0.893771
+0.405825
+0.206472
+0.401465
+0.041867
+0.117011
+0.578094
+0.345197
+-0.513183
+0.581695
+-0.504199
+0.389211
+0.288931
+-0.712059
+-0.509271
+0.677048
+-0.464424
+0.039812
+-0.539722
+0.616968
+-0.089520
+0.375570
+0.145386
+0.057271
+-0.021984
+0.376977
+0.776417
+-0.632247
+-0.278117
+-0.927045
+0.034842
+-0.542360
+-0.651642
+-0.474215
+0.900715
+-0.312296
+0.965414
+-0.287733
+-0.934015
+0.523714
+0.465398
+0.478705
+0.358552
+-0.381489
+-0.088586
+0.578861
+-0.972783
+0.876927
+-0.131658
+-0.713392
+-0.464099
+-0.301129
+-0.906343
+0.549076
+-0.154424
+-0.690942
+-0.601531
+0.790959
+0.844721
+-0.339684
+-0.117826
+0.675009
+-0.011497
+-0.663110
+0.212243
+-0.994454
+0.951950
+0.217914
+-0.324688
+0.671718
+-0.245102
+-0.267443
+0.881829
+-0.559867
+-0.017043
+-0.745656
+-0.062429
+0.745504
+0.127498
+0.288174
+-0.301648
+-0.650317
+0.287638
+0.419460
+0.436223
+0.133990
+-0.721029
+-0.385920
+-0.526041
+0.678026
+-0.167952
+0.883785
+-0.610379
+-0.969345
+0.262499
+-0.292414
+-0.999995
+0.176443
+0.881381
+0.056317
+0.470549
+-0.305359
+0.367902
+0.778646
+0.610094
+-0.090008
+0.426974
+0.503355
+1.043919
+-0.906085
+-0.523979
+0.621017
+0.750888
+0.756000
+0.504752
+0.273007
+-0.832970
+0.340052
+0.463776
+0.024959
+0.534342
+-0.173752
+-1.028266
+-0.870344
+-1.111299
+-0.230731
+0.401344
+-0.469302
+-0.825420
+0.822602
+0.618224
+0.909573
+0.797561
+0.665812
+-0.712789
+0.354921
+-0.775954
+0.841050
+0.621347
+-0.493705
+-0.806800
+0.632168
+-0.883704
+0.676408
+0.207523
+-0.567807
+-0.708040
+-0.325933
+-0.201161
+0.000599
+0.897427
+0.018942
+0.126585
+-0.351490
+-0.413781
+-0.843120
+-0.262226
+-0.928483
+0.631062
+-0.262064
+-0.786423
+0.134547
+0.035133
+0.713834
+0.514206
+0.743833
+-0.918991
+0.227738
+-0.375506
+0.152513
+0.325842
+-0.681005
+-0.631523
+0.964238
+-0.016349
+-0.302019
+-0.181781
+0.446828
+0.051259
+-0.156287
+-0.452882
+-0.751848
+-0.913875
+0.093865
+0.460219
+-0.641341
+-0.504012
+0.056692
+0.581221
+0.299323
+-0.646637
+-0.132991
+-0.380653
+-0.888974
+0.006675
+-0.121117
+-0.030071
+-0.295404
+-0.980070
+-0.166276
+0.893787
+0.984340
+-0.382264
+0.316187
+0.279356
+-0.330047
+0.407410
+0.784887
+0.630123
+-0.195188
+0.711439
+-0.826414
+-0.908327
+-0.899746
+-0.676975
+-0.248337
+0.048935
+0.279488
+0.368692
+0.950769
+-0.507340
+-0.903498
+-0.384513
+0.383342
+-0.170976
+0.883363
+-0.376503
+-0.487771
+-0.912182
+-0.870013
+-0.147744
+0.573685
+0.255007
+0.911045
+-0.267630
+-0.227057
+-0.654424
+0.581614
+0.049710
+-0.430639
+-0.446420
+0.913078
+-0.869638
+-0.683293
+-0.752853
+-0.751431
+0.565202
+-0.176761
+0.656944
+-0.524191
+-0.114780
+-0.208498
+0.071398
+-0.707976
+0.274183
+0.000281
+-0.343012
+-0.486788
+0.262102
+0.974705
+-0.678792
+0.876158
+0.806262
+-0.774423
+0.727916
+-0.646280
+-0.755845
+-0.640088
+0.152945
+0.781608
+0.396662
+0.787829
+-0.628305
+0.188552
+0.806227
+0.561443
+0.811766
+0.356300
+0.510311
+0.563371
+-0.516000
+0.189605
+0.416175
+-0.687360
+-0.842023
+0.739203
+0.654191
+-0.508502
+0.274044
+0.208692
+-0.350860
+-0.249377
+0.189932
+0.067529
+0.586104
+-0.911994
+-0.419966
+0.316881
+0.320734
+0.399635
+0.849216
+0.327002
+0.682300
+0.798253
+0.823565
+0.168884
+-0.645407
+-0.911833
+-0.353859
+0.111775
+-0.030561
+-0.399443
+-0.642204
+-0.007671
+-0.633425
+0.993481
+-0.707719
+0.251498
+-0.165480
+-0.824220
+-0.026884
+-0.137282
+-0.322412
+0.334355
+0.403934
+0.701279
+-0.958358
+0.141071
+-0.567305
+-0.478591
+-0.643058
+-0.171883
+-0.495663
+-0.543013
+-0.219038
+0.811514
+0.917127
+0.715443
+-0.410737
+0.270519
+0.522120
+-0.607778
+-0.636774
+-0.557771
+-0.695053
+-0.912156
+-0.913492
+-0.737065
+0.320301
+0.649815
+-0.076178
+0.285459
+-0.485140
+-0.243868
+-0.239076
+-0.721773
+-0.633781
+-0.168188
+-0.622225
+-0.851820
+-0.294477
+0.077573
+0.881908
+0.583094
+-0.749138
+-0.330189
+-0.424724
+0.462166
+0.279756
+0.126058
+0.077626
+0.384468
+-0.250656
+-0.631206
+0.498528
+-1.027088
+-0.883925
+-0.709866
+0.883623
+0.935946
+-0.528710
+0.179165
+-1.074343
+0.401355
+0.545591
+-0.747329
+-0.287914
+0.777666
+-0.124352
+0.581659
+0.045674
+-0.483694
+0.845169
+0.367885
+-0.776952
+0.377353
+-0.477253
+0.627758
+-0.913558
+-0.738096
+0.605482
+-0.466649
+-0.303606
+-0.273107
+-0.250618
+-0.802581
+-0.145115
+-0.479595
+-0.755717
+-0.400500
+-0.640635
+0.356919
+-0.047357
+-0.703563
+-0.281792
+-0.114764
+0.610102
+-0.135784
+0.097720
+0.921395
+-0.446050
+0.477815
+0.876980
+0.799140
+-0.280952
+-0.966780
+0.269840
+-0.179240
+-0.201690
+0.951696
+-0.614464
+0.147592
+0.579779
+-0.821720
+-0.240867
+-0.549668
+0.693858
+0.105906
+-0.732155
+0.140786
+-0.636069
+-0.773009
+0.629495
+-0.094704
+-0.247450
+0.974116
+-0.347401
+0.724089
+0.837071
+-0.724586
+-0.979093
+0.187338
+0.806031
+-0.658578
+-0.433745
+-0.099039
+-0.079574
+-0.421538
+-0.499667
+0.942879
+0.367442
+0.891301
+0.692627
+-0.383986
+-1.015446
+0.174881
+0.886338
+0.682040
+0.445148
+0.070256
+0.665796
+-0.485869
+-0.175060
+0.908081
+-0.405614
+-0.488281
+-0.461027
+-0.587804
+-1.013212
+-0.127517
+0.652244
+0.869090
+0.831032
+0.577252
+-0.705066
+0.161880
+0.293014
+0.725167
+0.425723
+0.384859
+0.006415
+-0.615849
+0.057533
+0.133319
+0.011720
+0.100488
+-0.574045
+0.372833
+-0.274144
+-0.388320
+0.601868
+0.116968
+-0.810862
+0.613321
+1.075290
+-0.597041
+-0.107561
+0.778545
+0.208088
+0.770043
+0.748246
+-0.591235
+-0.698004
+-0.895298
+-0.553570
+-0.538097
+-0.516390
+0.860762
+0.113945
+-0.494416
+0.058641
+0.691060
+-0.311155
+0.098983
+0.297800
+-0.778383
+1.071558
+-0.610930
+-0.354977
+0.867092
+0.062657
+-0.782735
+-0.259725
+0.892380
+-0.794772
+-0.455590
+0.040071
+0.443371
+-0.863033
+-0.114345
+-0.226137
+0.013612
+0.685815
+-0.021984
+0.077338
+-0.751714
+-0.071782
+-0.337847
+0.359298
+-0.782281
+0.504722
+0.647656
+-0.786551
+-0.929150
+0.786638
+0.757847
+-0.774654
+0.601539
+-0.656649
+-0.272715
+0.319512
+0.750368
+-0.055183
+-0.235489
+-0.883935
+-0.191637
+0.558153
+-0.442525
+-0.727636
+-0.750143
+0.878692
+-0.037731
+0.390051
+-0.964835
+0.692946
+0.238452
+-0.197278
+-0.198186
+0.690186
+-0.372872
+0.162573
+-0.112456
+-0.047541
+0.836906
+-0.227171
+0.740523
+0.659859
+0.423375
+0.727151
+0.575328
+-0.733651
+0.284783
+0.860611
+0.233385
+0.784306
+0.254702
+-0.337078
+0.361965
+-0.651726
+-0.365357
+-0.680301
+0.413809
+0.260657
+0.932184
+-0.485755
+0.732986
+-0.417571
+0.806783
+0.800659
+-0.353690
+0.637474
+-0.782043
+0.600134
+0.871786
+0.627045
+-0.562904
+-0.357544
+0.998357
+0.146631
+0.062704
+0.546269
+0.023268
+-0.108620
+-0.353382
+-0.807276
+-0.350940
+-0.921114
+0.664660
+1.099769
+0.131236
+-0.804288
+-0.188403
+0.933100
+1.026663
+0.616543
+-0.546887
+0.519390
+0.642756
+0.180200
+0.439688
+0.654277
+-0.092994
+-0.085105
+-1.007371
+0.290722
+0.814127
+-0.801964
+-0.634780
+-0.424411
+-0.590209
+-0.222517
+-0.473512
+0.505283
+1.002250
+0.531507
+0.682843
+-0.780172
+-0.455591
+0.267637
+-0.759281
+0.416552
+-0.154629
+-0.928967
+-0.694360
+-0.754277
+-0.338140
+-0.292064
+-0.488647
+0.534373
+0.334566
+0.485128
+0.017238
+0.043312
+-0.679011
+-0.026990
+0.456113
+-0.387046
+0.580561
+-0.779101
+-0.183284
+0.670421
+0.337991
+-0.092323
+0.141434
+1.066473
+-0.012295
+0.354177
+0.391424
+0.001807
+0.750677
+0.022898
+-0.735229
+0.036004
+-0.195303
+-0.256490
+-0.712549
+0.599697
+0.811756
+-0.913832
+-0.712506
+0.041216
+0.149218
+-0.880315
+0.169364
+-0.772746
+0.727367
+-0.255645
+0.619225
+0.526451
+0.539602
+-0.672266
+0.526941
+0.524501
+0.141229
+0.763192
+-0.216601
+0.897845
+1.020331
+0.697171
+-0.211652
+0.063650
+-0.593574
+0.927405
+-0.354445
+0.752253
+-0.393347
+0.462405
+-0.566376
+-1.010285
+0.756508
+0.764017
+0.651152
+0.043918
+0.413155
+-0.726335
+-0.630435
+-0.037569
+0.754624
+0.121540
+-0.959340
+0.484587
+-0.171805
+0.529941
+0.432124
+-0.587551
+0.825361
+-0.736277
+-0.822138
+0.513673
+-0.298162
+-0.489112
+0.386232
+0.469887
+0.693828
+-0.042413
+0.899623
+0.465983
+0.644262
+0.451969
+-0.605687
+-0.620723
+0.598981
+-0.114886
+-0.501709
+0.256426
+-0.376877
+-0.534713
+-0.898062
+0.862412
+0.137040
+-0.218498
+-0.099532
+0.146424
+-0.871596
+-0.279508
+-0.403177
+-0.576378
+-0.074849
+-0.047036
+-0.764930
+0.581935
+0.844688
+0.591959
+-0.260167
+0.349339
+-0.457475
+1.052256
+-0.207806
+-0.377055
+-0.487216
+-0.178550
+0.238861
+0.003776
+-0.573945
+-0.760883
+-0.112740
+-0.184070
+-0.834055
+-0.511809
+-0.904943
+0.176643
+-0.770148
+0.094944
+-0.652980
+-0.026550
+-0.821504
+0.139599
+0.296726
+0.085150
+-0.484422
+0.569208
+0.608280
+0.602154
+-0.101325
+-0.387984
+0.296814
+-0.584311
+-0.773776
+-0.068311
+-0.224068
+-0.513747
+0.629918
+-0.363061
+-0.810872
+0.760650
+0.675838
+-0.428021
+0.962263
+-0.272646
+0.026458
+-0.218609
+-0.989257
+-0.573855
+0.634278
+0.427313
+-0.835328
+-0.630971
+-0.027001
+0.563954
+0.904953
+-0.511554
+0.436902
+-0.478193
+-1.307439
+0.362764
+0.112281
+-0.207721
+0.280217
+-0.498300
+-0.343253
+0.316041
+-0.991048
+-0.436815
+0.235740
+0.705143
+0.736688
+-1.020669
+0.001782
+0.851837
+-0.837390
+-0.639218
+-0.180839
+-0.299508
+0.981444
+-0.035784
+0.095902
+-0.115760
+0.628916
+-0.241933
+-0.885978
+0.785344
+0.903500
+0.350160
+-0.806703
+0.891215
+0.123704
+-0.633426
+-0.172436
+0.886748
+-0.565187
+-0.334917
+-0.635845
+0.862635
+0.855889
+0.251137
+-0.350164
+0.709636
+0.219646
+0.368202
+-0.143104
+0.241184
+-0.655314
+0.818237
+0.228956
+-0.415880
+-0.193785
+-0.915709
+0.347450
+-0.872390
+-0.506154
+-0.901636
+-0.580812
+-0.291038
+0.677913
+0.963739
+0.702427
+0.110703
+0.672801
+0.005495
+0.533705
+0.356809
+-0.750713
+0.786962
+-0.337061
+0.763202
+-0.464754
+-0.564103
+0.951475
+0.321673
+-0.433737
+0.200192
+0.266971
+-0.682939
+0.048176
+-0.355967
+0.143840
+-0.251427
+-0.608916
+-0.253937
+0.258105
+0.086836
+-0.513905
+0.026998
+0.208452
+-0.590927
+0.785802
+0.489288
+0.343614
+0.855903
+0.939598
+0.573575
+-0.566083
+0.862451
+0.669837
+0.542509
+-0.420252
+-0.720937
+-0.693700
+0.429064
+0.416534
+-0.792001
+0.138113
+0.922575
+0.109669
+-0.008121
+-0.502245
+-0.128959
+0.874916
+0.632182
+-0.030711
+-0.507295
+0.462536
+-0.255353
+0.430438
+0.561103
+0.222445
+0.868980
+-0.880096
+0.074566
+-0.399280
+-0.324265
+0.083675
+0.755140
+-0.200268
+0.763897
+0.087191
+0.325213
+-0.390113
+-0.800172
+-0.802915
+-1.080824
+0.538745
+-0.959315
+0.120069
+0.875292
+0.865136
+-1.734606
+0.536847
+1.471392
+-0.753255
+-0.317802
+0.753951
+0.804051
+-1.924859
+-0.184131
+-0.038593
+1.473948
+-1.121259
+-1.530000
+-1.583529
+0.712499
+1.295192
+-1.909407
+-0.903179
+-1.393237
+-0.796837
+-0.009518
+1.170631
+-0.571100
+-0.645758
+-0.997793
+-1.256665
+-1.145748
+0.165351
+0.884538
+0.486977
+-0.736369
+-0.195957
+0.317438
+0.802075
+-1.410775
+0.542638
+-0.951378
+0.067400
+-0.320556
+0.101659
+0.392473
+-0.381320
+-1.269062
+0.367311
+-0.739513
+-2.118683
+-0.978172
+1.685643
+-0.008736
+-1.004350
+1.320438
+2.068474
+-1.728484
+-1.465617
+0.378408
+0.374025
+0.544943
+0.079119
+0.719855
+0.303017
+0.915704
+0.919103
+-0.740518
+-0.850735
+0.095188
+-2.062545
+0.281004
+1.191364
+-1.955382
+-0.046624
+-1.087826
+1.028185
+-0.348177
+-0.679902
+-0.373497
+-0.616251
+-1.841681
+1.528586
+-1.074292
+1.461243
+-1.643881
+-0.740921
+1.277326
+-1.156861
+-1.097563
+-0.007587
+-0.211083
+1.451801
+-1.637570
+1.307488
+1.426301
+-0.744970
+-0.161558
+-0.832176
+0.183305
+0.954079
+-0.079145
+-0.226681
+0.289491
+-0.829107
+0.395527
+1.315863
+0.151480
+-0.133477
+-0.088778
+0.220755
+1.531671
+0.917703
+-0.412860
+0.063431
+-0.961603
+-1.600897
+0.645660
+-0.901086
+-0.739524
+0.276613
+-0.993600
+1.176410
+0.501687
+-0.502146
+0.329320
+-0.219385
+0.155851
+0.633561
+0.166256
+-0.082574
+0.735124
+0.387447
+0.083446
+0.887161
+-0.297914
+-0.076954
+0.882499
+-0.968150
+-0.596465
+2.227646
+-1.178961
+1.142398
+-1.619999
+-2.327231
+-1.267243
+-0.693476
+0.506393
+1.641099
+-0.347470
+0.071434
+2.105840
+-2.102572
+-1.188810
+2.572890
+-1.801702
+1.280781
+-1.120991
+1.674225
+-0.999162
+1.142930
+0.715889
+1.307622
+0.074294
+-0.284056
+1.914244
+-0.435195
+-2.399966
+-0.480023
+0.455103
+0.147161
+0.671517
+-0.607645
+-0.057447
+0.230627
+0.676494
+-0.529723
+-0.342502
+-2.485715
+-0.728841
+-1.178915
+-1.298928
+-1.209556
+-0.449841
+0.121710
+0.285569
+-0.805388
+-0.168916
+0.398785
+-0.709545
+0.097043
+0.665890
+-0.182388
+0.483945
+0.017244
+-2.537643
+0.020704
+-1.578353
+-0.975220
+-0.659844
+-2.458859
+2.369110
+1.134665
+-0.978194
+-2.148439
+0.643023
+-1.220437
+1.416277
+1.021293
+-0.044118
+0.284077
+0.958409
+-1.866156
+-0.313091
+-1.888196
+1.679480
+0.287696
+-0.982328
+-0.354197
+0.855237
+1.098070
+-1.043717
+-1.155252
+-1.477166
+0.452767
+-0.052982
+1.193717
+0.280471
+0.304896
+-0.034847
+0.513168
+0.644562
+-0.158216
+-2.214304
+0.091273
+-0.977921
+0.692158
+0.082383
+0.572748
+0.367315
+-0.583164
+-0.473031
+-0.237632
+0.976214
+0.271093
+-0.143612
+0.465177
+0.972854
+0.007396
+-0.104097
+1.486619
+-0.846631
+-0.197449
+-1.231515
+0.648426
+-0.862547
+1.436974
+-0.982570
+-0.757341
+0.828283
+-0.848894
+-0.125525
+-0.786711
+0.898796
+0.240585
+0.905355
+-0.908863
+-0.463548
+0.866132
+-1.043157
+0.429768
+-0.197899
+-0.845134
+-0.030473
+0.248815
+-0.574720
+-1.293896
+-0.986874
+-0.184022
+-0.132134
+-2.368964
+-1.188076
+-0.192775
+1.175420
+-0.626422
+-0.259857
+-0.244481
+0.079868
+-1.418012
+-0.238089
+0.349009
+0.701976
+1.059427
+0.196862
+-2.195531
+-1.732057
+-0.094086
+-0.837138
+1.250680
+0.499629
+0.750829
+-1.123716
+-0.290033
+-0.040186
+-0.958085
+-1.177602
+1.583260
+-0.081832
+-1.309620
+0.115707
+0.348353
+0.184410
+-0.392512
+-0.159268
+-0.508814
+-0.312983
+-0.839211
+-0.610091
+-1.422420
+-0.097478
+-0.144605
+-1.320616
+1.576159
+0.896971
+2.056638
+-2.198023
+-1.243605
+-2.172279
+1.084376
+0.374088
+-0.556425
+-1.502337
+1.724095
+-0.341358
+0.514385
+-0.015139
+-0.031953
+1.300947
+-0.999830
+-0.352468
+-0.985143
+-0.291962
+-1.938277
+0.016890
+0.732193
+-0.992253
+0.788197
+2.653383
+0.230942
+-0.398776
+0.180675
+-1.721836
+-1.444122
+-1.359598
+-0.991193
+-0.829177
+0.351235
+-0.342326
+-0.472919
+-1.022646
+-1.173001
+-1.604344
+-1.653590
+0.104371
+0.549297
+1.600401
+0.598401
+-1.737759
+0.677333
+0.251062
+-0.939260
+-2.309992
+-2.339758
+0.556870
+-0.482619
+0.469046
+-2.000936
+1.089188
+0.552764
+-0.467470
+-1.026888
+-0.960165
+0.700274
+0.712150
+0.195380
+0.443507
+-0.547202
+0.121866
+0.057753
+0.547377
+-1.870021
+-0.729696
+0.186684
+1.982995
+-1.320402
+-1.032751
+0.427476
+0.535434
+-0.545288
+-0.227412
+0.397646
+-0.518306
+0.408603
+-0.251802
+0.600426
+-0.846491
+0.851887
+0.188981
+-0.857931
+-0.098600
+-1.694482
+1.561075
+-0.821177
+0.393717
+-1.006012
+-1.110884
+0.428980
+1.693937
+-1.124187
+-0.259284
+-0.489618
+-1.478662
+-0.480179
+0.152085
+0.055785
+-0.052295
+-1.219396
+-0.295467
+-0.941827
+-0.670617
+-1.437901
+-2.590186
+-0.954777
+0.219017
+-0.997149
+0.325664
+1.137011
+0.962882
+2.201466
+0.349667
+0.682923
+-0.309719
+-0.371218
+0.836303
+0.114400
+0.110261
+-0.313761
+-0.316179
+-0.569970
+-0.127723
+-2.456452
+1.704919
+-2.024981
+-2.161326
+0.651434
+0.821113
+0.044799
+0.726905
+1.011081
+0.175982
+-0.256209
+-0.830197
+-0.761391
+-0.587017
+-1.620948
+0.548630
+0.466889
+0.634850
+-0.968077
+-0.699969
+-0.907874
+0.504868
+-0.136301
+1.152948
+-1.094672
+-0.180649
+0.531951
+-1.163854
+1.468980
+-1.186591
+-0.035749
+-0.905054
+-0.905135
+-1.631288
+-1.287840
+0.382528
+-1.427789
+0.024868
+-0.235736
+-0.951634
+0.710947
+0.780671
+-0.179662
+0.616429
+-1.832243
+-0.604070
+-0.348805
+-0.430182
+-1.732082
+0.434168
+-0.541670
+-0.001420
+-0.729005
+0.257359
+-0.499178
+-0.089005
+-1.005410
+-1.289473
+-0.826896
diff --git a/app/src/main/res/values-v11/styles.xml b/app/src/main/res/values-v11/styles.xml
new file mode 100644
index 0000000..67abee0
--- /dev/null
+++ b/app/src/main/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/values-v14/styles.xml b/app/src/main/res/values-v14/styles.xml
new file mode 100644
index 0000000..ee02366
--- /dev/null
+++ b/app/src/main/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..a22cf11
--- /dev/null
+++ b/app/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,10 @@
+
+
+
+ 64dp
+
+
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..2e0e2ae
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..23e988e
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,16 @@
+
+
+
+ Puzzle Master
+ Hello world!
+ Settings
+ Edit
+ Load Puzzle
+ Capture Puzzle
+ LoadPuzzleActivity
+ Load
+ Section 1
+ Section 2
+ Section 3
+
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..536d5c4
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..856d3d7
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,15 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.1.0'
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..122a0dc
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Dec 28 10:00:20 PST 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/import-summary.txt b/import-summary.txt
new file mode 100644
index 0000000..51513b7
--- /dev/null
+++ b/import-summary.txt
@@ -0,0 +1,76 @@
+ECLIPSE ANDROID PROJECT IMPORT SUMMARY
+======================================
+
+Ignored Files:
+--------------
+The following files were *not* copied into the new Gradle project; you
+should evaluate whether these are still needed in your project and if
+so manually move them:
+
+* .DS_Store
+* .gitignore
+* .idea/
+* .idea/.name
+* .idea/PuzzleMaster.iml
+* .idea/compiler.xml
+* .idea/copyright/
+* .idea/copyright/profiles_settings.xml
+* .idea/encodings.xml
+* .idea/misc.xml
+* .idea/modules.xml
+* .idea/vcs.xml
+* .idea/workspace.xml
+* ic_launcher-web.png
+* proguard-project.txt
+
+Replaced Jars with Dependencies:
+--------------------------------
+The importer recognized the following .jar files as third party
+libraries and replaced them with Gradle dependencies instead. This has
+the advantage that more explicit version information is known, and the
+libraries can be updated automatically. However, it is possible that
+the .jar file in your project was of an older version than the
+dependency we picked, which could render the project not compileable.
+You can disable the jar replacement in the import wizard and try again:
+
+android-support-v4.jar => com.android.support:support-v4:19.1.0
+
+Replaced Libraries with Dependencies:
+-------------------------------------
+The importer recognized the following library projects as third party
+libraries and replaced them with Gradle dependencies instead. This has
+the advantage that more explicit version information is known, and the
+libraries can be updated automatically. However, it is possible that
+the source files in your project were of an older version than the
+dependency we picked, which could render the project not compileable.
+You can disable the library replacement in the import wizard and try
+again:
+
+appcompat-v7 => [com.android.support:appcompat-v7:19.1.0]
+
+Moved Files:
+------------
+Android Gradle projects use a different directory structure than ADT
+Eclipse projects. Here's how the projects were restructured:
+
+* AndroidManifest.xml => app/src/main/AndroidManifest.xml
+* libs/opencv library - 2.4.5.jar => app/libs/opencv library - 2.4.5.jar
+* res/ => app/src/main/res/
+* src/ => app/src/main/java/
+* src/.DS_Store => app/src/main/resources/.DS_Store
+* src/master/.DS_Store => app/src/main/resources/master/.DS_Store
+
+Next Steps:
+-----------
+You can now build the project. The Gradle project needs network
+connectivity to download dependencies.
+
+Bugs:
+-----
+If for some reason your project does not build, and you determine that
+it is due to a bug or limitation of the Eclipse to Gradle importer,
+please file a bug at http://b.android.com with category
+Component-Tools.
+
+(This import summary is for your information only, and can be deleted
+after import once you are satisfied with the results.)
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+include ':app'