summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Pundir <amit.pundir@linaro.org>2014-05-06 22:12:29 +0530
committerAmit Pundir <amit.pundir@linaro.org>2014-05-06 22:12:29 +0530
commitcf617352a2b8aeb53da93759dae6ce128db4a0f9 (patch)
treec5a86a744b9cfa678e5fd7a31c4f239133b1fe1f
parent9325b3073bf3d7a963c8c0876b4ad52e3250dda9 (diff)
parent531b4e9da69a531b50c6ac5de4d92779c7aae3dd (diff)
downloadcts-linaro-juice-master.tar.gz
* aosp/master: audio_quality: Fix for 64-bit compatibility Assert that builds are secure, non-debuggable builds. libctsopengl_jni: Change char* to unsigned char* Libcore.os has moved to android.system.Os. SELinuxDomainTest: Fix mako CTS failure Use libRScpp for CTS, not libRScpp_static. Revert: Add native test for RS loop filter intrinsic Fix a concurrency bug in OpenSSLHeartbleedTest. Fix CTS com.android.cts.filesystemperf.RandomRWTest#testRandomRead Seldom fail Add MCC/MNC value to NO_DELIVERY_REPORTS android.openglperf.cts.GlVboPerfTest#testVboVsNonVboPerfGeometry0 seldom fail Add more PowerVR exceptions for FileSystemPermissionTest Fix ClonedSecureRandomTest on single core devices Use real screen width/height to calculate aspect ratio Conflicts: suite/audio_quality/lib/src/task/TaskProcess.cpp Change-Id: I298af6589fc412ecbed27e30969584a242de6abd Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
-rwxr-xr-x[-rw-r--r--]suite/cts/deviceTests/filesystemperf/src/com/android/cts/filesystemperf/FileUtil.java4
-rw-r--r--suite/cts/deviceTests/opengl/jni/graphics/GLUtils.cpp3
-rw-r--r--tests/res/raw/rs_interpred_param.bin1
-rw-r--r--tests/tests/dpi/src/android/dpi/cts/AspectRatioTest.java37
-rw-r--r--tests/tests/net/src/android/net/ipv6/cts/PingTest.java22
-rwxr-xr-x[-rw-r--r--]tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java2
-rw-r--r--tests/tests/os/src/android/os/cts/BuildTest.java18
-rwxr-xr-x[-rw-r--r--]tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java2
-rw-r--r--tests/tests/renderscript/libcoremathtestcpp/Android.mk4
-rw-r--r--tests/tests/rscpp/librscpptest/rs_jni.cpp48
-rw-r--r--tests/tests/rscpp/src/android/cts/rscpp/RSInterPredTest.java478
-rw-r--r--tests/tests/security/src/android/security/cts/ClonedSecureRandomTest.java32
-rw-r--r--tests/tests/security/src/android/security/cts/OpenSSLHeartbleedTest.java17
-rw-r--r--tests/tests/security/src/android/security/cts/SELinuxDomainTest.java20
-rw-r--r--tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java1
15 files changed, 112 insertions, 577 deletions
diff --git a/suite/cts/deviceTests/filesystemperf/src/com/android/cts/filesystemperf/FileUtil.java b/suite/cts/deviceTests/filesystemperf/src/com/android/cts/filesystemperf/FileUtil.java
index b342b612e76..62317748201 100644..100755
--- a/suite/cts/deviceTests/filesystemperf/src/com/android/cts/filesystemperf/FileUtil.java
+++ b/suite/cts/deviceTests/filesystemperf/src/com/android/cts/filesystemperf/FileUtil.java
@@ -244,6 +244,7 @@ public class FileUtil {
long memSize = SystemUtil.getTotalMemory(context);
long diskSizeTarget = (2 * memSize / bufferSize) * bufferSize;
final long minimumDiskSize = (512L * 1024L * 1024L / bufferSize) * bufferSize;
+ final long reservedDiskSize = (50L * 1024L * 1024L / bufferSize) * bufferSize;
if ( diskSizeTarget < minimumDiskSize ) {
diskSizeTarget = minimumDiskSize;
}
@@ -251,6 +252,9 @@ public class FileUtil {
Log.i(TAG, "Free disk size " + freeDisk + " too small");
return 0;
}
+ if ((freeDisk - diskSizeTarget) < reservedDiskSize) {
+ diskSizeTarget -= reservedDiskSize;
+ }
return diskSizeTarget;
}
diff --git a/suite/cts/deviceTests/opengl/jni/graphics/GLUtils.cpp b/suite/cts/deviceTests/opengl/jni/graphics/GLUtils.cpp
index 9076f39d6e6..ea166a1495f 100644
--- a/suite/cts/deviceTests/opengl/jni/graphics/GLUtils.cpp
+++ b/suite/cts/deviceTests/opengl/jni/graphics/GLUtils.cpp
@@ -77,7 +77,8 @@ GLuint GLUtils::loadTexture(const char* path) {
}
static int readInt(char* b) {
- return (((int) b[0]) << 24) | (((int) b[1]) << 16) | (((int) b[2]) << 8) | ((int) b[3]);
+ unsigned char* ub = (unsigned char*) b;
+ return (((int) ub[0]) << 24) | (((int) ub[1]) << 16) | (((int) ub[2]) << 8) | ((int) ub[3]);
}
static float readFloat(char* b) {
diff --git a/tests/res/raw/rs_interpred_param.bin b/tests/res/raw/rs_interpred_param.bin
deleted file mode 100644
index f228a96c5a7..00000000000
--- a/tests/res/raw/rs_interpred_param.bin
+++ /dev/null
@@ -1 +0,0 @@
-0,3,358560,2240,358560,2240,0,16,0,16,64,64,0,3,3225680,1120,3225680,1120,0,16,0,16,32,32,0,3,4009680,1120,4009680,1120,0,16,0,16,32,32,0,3,358624,2240,358624,2240,0,16,0,16,64,64,0,3,3225712,1120,3225712,1120,0,16,0,16,32,32,0,3,4009712,1120,4009712,1120,0,16,0,16,32,32,0,3,358688,2240,358688,2240,0,16,0,16,64,64,0,3,3225744,1120,3225744,1120,0,16,0,16,32,32,0,3,4009744,1120,4009744,1120,0,16,0,16,32,32,0,3,358752,2240,358752,2240,0,16,0,16,64,64,0,3,3225776,1120,3225776,1120,0,16,0,16,32,32,0,3,4009776,1120,4009776,1120,0,16,0,16,32,32,0,3,358816,2240,358816,2240,0,16,0,16,64,64,0,3,3225808,1120,3225808,1120,0,16,0,16,32,32,0,3,4009808,1120,4009808,1120,0,16,0,16,32,32,0,3,358880,2240,358880,2240,0,16,0,16,64,64,0,3,3225840,1120,3225840,1120,0,16,0,16,32,32,0,3,4009840,1120,4009840,1120,0,16,0,16,32,32,0,3,358944,2240,358944,2240,0,16,0,16,64,64,0,3,3225872,1120,3225872,1120,0,16,0,16,32,32,0,3,4009872,1120,4009872,1120,0,16,0,16,32,32,0,3,359008,2240,359008,2240,0,16,0,16,64,64,0,3,3225904,1120,3225904,1120,0,16,0,16,32,32,0,3,4009904,1120,4009904,1120,0,16,0,16,32,32,0,3,359072,2240,359072,2240,0,16,0,16,64,64,0,3,3225936,1120,3225936,1120,0,16,0,16,32,32,0,3,4009936,1120,4009936,1120,0,16,0,16,32,32,0,3,359136,2240,359136,2240,0,16,0,16,64,64,0,3,3225968,1120,3225968,1120,0,16,0,16,32,32,0,3,4009968,1120,4009968,1120,0,16,0,16,32,32,0,3,359200,2240,359200,2240,0,16,0,16,64,64,0,3,3226000,1120,3226000,1120,0,16,0,16,32,32,0,3,4010000,1120,4010000,1120,0,16,0,16,32,32,0,3,359264,2240,359264,2240,0,16,0,16,64,64,0,3,3226032,1120,3226032,1120,0,16,0,16,32,32,0,3,4010032,1120,4010032,1120,0,16,0,16,32,32,0,3,359328,2240,359328,2240,0,16,0,16,64,64,0,3,3226064,1120,3226064,1120,0,16,0,16,32,32,0,3,4010064,1120,4010064,1120,0,16,0,16,32,32,0,3,359392,2240,359392,2240,0,16,0,16,64,64,0,3,3226096,1120,3226096,1120,0,16,0,16,32,32,0,3,4010096,1120,4010096,1120,0,16,0,16,32,32,0,3,359456,2240,359456,2240,0,16,0,16,64,64,0,3,3226128,1120,3226128,1120,0,16,0,16,32,32,0,3,4010128,1120,4010128,1120,0,16,0,16,32,32,0,3,359520,2240,359520,2240,0,16,0,16,64,64,0,3,3226160,1120,3226160,1120,0,16,0,16,32,32,0,3,4010160,1120,4010160,1120,0,16,0,16,32,32,0,3,359584,2240,359584,2240,0,16,0,16,64,64,0,3,3226192,1120,3226192,1120,0,16,0,16,32,32,0,3,4010192,1120,4010192,1120,0,16,0,16,32,32,0,3,359648,2240,359648,2240,0,16,0,16,64,64,0,3,3226224,1120,3226224,1120,0,16,0,16,32,32,0,3,4010224,1120,4010224,1120,0,16,0,16,32,32,0,3,359712,2240,359712,2240,0,16,0,16,64,64,0,3,3226256,1120,3226256,1120,0,16,0,16,32,32,0,3,4010256,1120,4010256,1120,0,16,0,16,32,32,0,3,359776,2240,359776,2240,0,16,0,16,64,64,0,3,3226288,1120,3226288,1120,0,16,0,16,32,32,0,3,4010288,1120,4010288,1120,0,16,0,16,32,32,0,3,359840,2240,359840,2240,0,16,0,16,64,64,0,3,3226320,1120,3226320,1120,0,16,0,16,32,32,0,3,4010320,1120,4010320,1120,0,16,0,16,32,32,0,3,359904,2240,359904,2240,0,16,0,16,64,64,0,3,3226352,1120,3226352,1120,0,16,0,16,32,32,0,3,4010352,1120,4010352,1120,0,16,0,16,32,32,0,3,359968,2240,359968,2240,0,16,0,16,64,64,0,3,3226384,1120,3226384,1120,0,16,0,16,32,32,0,3,4010384,1120,4010384,1120,0,16,0,16,32,32,0,3,360032,2240,360032,2240,0,16,0,16,64,64,0,3,3226416,1120,3226416,1120,0,16,0,16,32,32,0,3,4010416,1120,4010416,1120,0,16,0,16,32,32,0,3,360096,2240,360096,2240,0,16,0,16,64,64,0,3,3226448,1120,3226448,1120,0,16,0,16,32,32,0,3,4010448,1120,4010448,1120,0,16,0,16,32,32,0,3,360160,2240,360160,2240,0,16,0,16,64,64,0,3,3226480,1120,3226480,1120,0,16,0,16,32,32,0,3,4010480,1120,4010480,1120,0,16,0,16,32,32,0,3,360224,2240,360224,2240,0,16,0,16,64,64,0,3,3226512,1120,3226512,1120,0,16,0,16,32,32,0,3,4010512,1120,4010512,1120,0,16,0,16,32,32,0,3,360288,2240,360288,2240,0,16,0,16,64,64,0,3,3226544,1120,3226544,1120,0,16,0,16,32,32,0,3,4010544,1120,4010544,1120,0,16,0,16,32,32,0,3,360352,2240,360352,2240,0,16,0,16,64,64,0,3,3226576,1120,3226576,1120,0,16,0,16,32,32,0,3,4010576,1120,4010576,1120,0,16,0,16,32,32,0,3,360416,2240,360416,2240,0,16,0,16,64,64,0,3,3226608,1120,3226608,1120,0,16,0,16,32,32,0,3,4010608,1120,4010608,1120,0,16,0,16,32,32,0,3,501920,2240,501920,2240,0,16,0,16,64,64,0,3,3261520,1120,3261520,1120,0,16,0,16,32,32,0,3,4045520,1120,4045520,1120,0,16,0,16,32,32,0,3,501984,2240,501984,2240,0,16,0,16,64,64,0,3,3261552,1120,3261552,1120,0,16,0,16,32,32,0,3,4045552,1120,4045552,1120,0,16,0,16,32,32,0,3,502048,2240,502048,2240,0,16,0,16,64,64,0,3,3261584,1120,3261584,1120,0,16,0,16,32,32,0,3,4045584,1120,4045584,1120,0,16,0,16,32,32,0,3,502112,2240,502112,2240,0,16,0,16,64,64,0,3,3261616,1120,3261616,1120,0,16,0,16,32,32,0,3,4045616,1120,4045616,1120,0,16,0,16,32,32,0,3,502176,2240,502176,2240,0,16,0,16,64,64,0,3,3261648,1120,3261648,1120,0,16,0,16,32,32,0,3,4045648,1120,4045648,1120,0,16,0,16,32,32,0,3,502240,2240,502240,2240,0,16,0,16,64,64,0,3,3261680,1120,3261680,1120,0,16,0,16,32,32,0,3,4045680,1120,4045680,1120,0,16,0,16,32,32,0,3,502304,2240,502304,2240,0,16,0,16,64,64,0,3,3261712,1120,3261712,1120,0,16,0,16,32,32,0,3,4045712,1120,4045712,1120,0,16,0,16,32,32,0,3,502368,2240,502368,2240,0,16,0,16,64,64,0,3,3261744,1120,3261744,1120,0,16,0,16,32,32,0,3,4045744,1120,4045744,1120,0,16,0,16,32,32,0,3,502432,2240,502432,2240,0,16,0,16,64,64,0,3,3261776,1120,3261776,1120,0,16,0,16,32,32,0,3,4045776,1120,4045776,1120,0,16,0,16,32,32,0,3,502496,2240,502496,2240,0,16,0,16,64,64,0,3,3261808,1120,3261808,1120,0,16,0,16,32,32,0,3,4045808,1120,4045808,1120,0,16,0,16,32,32,0,3,502560,2240,502560,2240,0,16,0,16,64,64,0,3,3261840,1120,3261840,1120,0,16,0,16,32,32,0,3,4045840,1120,4045840,1120,0,16,0,16,32,32,0,3,502624,2240,502624,2240,0,16,0,16,64,64,0,3,3261872,1120,3261872,1120,0,16,0,16,32,32,0,3,4045872,1120,4045872,1120,0,16,0,16,32,32,0,3,502688,2240,502688,2240,0,16,0,16,64,64,0,3,3261904,1120,3261904,1120,0,16,0,16,32,32,0,3,4045904,1120,4045904,1120,0,16,0,16,32,32,0,3,502752,2240,502752,2240,0,16,0,16,64,64,0,3,3261936,1120,3261936,1120,0,16,0,16,32,32,0,3,4045936,1120,4045936,1120,0,16,0,16,32,32,0,3,502816,2240,502816,2240,0,16,0,16,64,64,0,3,3261968,1120,3261968,1120,0,16,0,16,32,32,0,3,4045968,1120,4045968,1120,0,16,0,16,32,32,0,3,502880,2240,502880,2240,0,16,0,16,64,64,0,3,3262000,1120,3262000,1120,0,16,0,16,32,32,0,3,4046000,1120,4046000,1120,0,16,0,16,32,32,0,3,502944,2240,502944,2240,0,16,0,16,64,64,0,3,3262032,1120,3262032,1120,0,16,0,16,32,32,0,3,4046032,1120,4046032,1120,0,16,0,16,32,32,0,3,503008,2240,503008,2240,0,16,0,16,64,64,0,3,3262064,1120,3262064,1120,0,16,0,16,32,32,0,3,4046064,1120,4046064,1120,0,16,0,16,32,32,0,3,503072,2240,503072,2240,0,16,0,16,64,64,0,3,3262096,1120,3262096,1120,0,16,0,16,32,32,0,3,4046096,1120,4046096,1120,0,16,0,16,32,32,0,3,503136,2240,503136,2240,0,16,0,16,64,64,0,3,3262128,1120,3262128,1120,0,16,0,16,32,32,0,3,4046128,1120,4046128,1120,0,16,0,16,32,32,0,3,503200,2240,503200,2240,0,16,0,16,64,64,0,3,3262160,1120,3262160,1120,0,16,0,16,32,32,0,3,4046160,1120,4046160,1120,0,16,0,16,32,32,0,3,503264,2240,503264,2240,0,16,0,16,64,64,0,3,3262192,1120,3262192,1120,0,16,0,16,32,32,0,3,4046192,1120,4046192,1120,0,16,0,16,32,32,0,3,503328,2240,503328,2240,0,16,0,16,64,64,0,3,3262224,1120,3262224,1120,0,16,0,16,32,32,0,3,4046224,1120,4046224,1120,0,16,0,16,32,32,0,3,503392,2240,503392,2240,0,16,0,16,64,64,0,3,3262256,1120,3262256,1120,0,16,0,16,32,32,0,3,4046256,1120,4046256,1120,0,16,0,16,32,32,0,3,503456,2240,503456,2240,0,16,0,16,64,64,0,3,3262288,1120,3262288,1120,0,16,0,16,32,32,0,3,4046288,1120,4046288,1120,0,16,0,16,32,32,0,3,503520,2240,503520,2240,0,16,0,16,64,64,0,3,3262320,1120,3262320,1120,0,16,0,16,32,32,0,3,4046320,1120,4046320,1120,0,16,0,16,32,32,0,3,503584,2240,503584,2240,0,16,0,16,64,64,0,3,3262352,1120,3262352,1120,0,16,0,16,32,32,0,3,4046352,1120,4046352,1120,0,16,0,16,32,32,0,3,503648,2240,503648,2240,0,16,0,16,64,64,0,3,3262384,1120,3262384,1120,0,16,0,16,32,32,0,3,4046384,1120,4046384,1120,0,16,0,16,32,32,0,3,503712,2240,503712,2240,0,16,0,16,64,64,0,3,3262416,1120,3262416,1120,0,16,0,16,32,32,0,3,4046416,1120,4046416,1120,0,16,0,16,32,32,0,3,503776,2240,503776,2240,0,16,0,16,64,64,0,3,3262448,1120,3262448,1120,0,16,0,16,32,32,0,3,4046448,1120,4046448,1120,0,16,0,16,32,32,0,3,645280,2240,645280,2240,0,16,0,16,64,64,0,3,3297360,1120,3297360,1120,0,16,0,16,32,32,0,3,4081360,1120,4081360,1120,0,16,0,16,32,32,0,3,645344,2240,645344,2240,0,16,0,16,64,64,0,3,3297392,1120,3297392,1120,0,16,0,16,32,32,0,3,4081392,1120,4081392,1120,0,16,0,16,32,32,0,3,645408,2240,645408,2240,0,16,0,16,64,64,0,3,3297424,1120,3297424,1120,0,16,0,16,32,32,0,3,4081424,1120,4081424,1120,0,16,0,16,32,32,0,3,645472,2240,645472,2240,0,16,0,16,64,64,0,3,3297456,1120,3297456,1120,0,16,0,16,32,32,0,3,4081456,1120,4081456,1120,0,16,0,16,32,32,0,3,645536,2240,645536,2240,0,16,0,16,64,64,0,3,3297488,1120,3297488,1120,0,16,0,16,32,32,0,3,4081488,1120,4081488,1120,0,16,0,16,32,32,0,3,645600,2240,645600,2240,0,16,0,16,64,64,0,3,3297520,1120,3297520,1120,0,16,0,16,32,32,0,3,4081520,1120,4081520,1120,0,16,0,16,32,32,0,3,645664,2240,645664,2240,0,16,0,16,64,64,0,3,3297552,1120,3297552,1120,0,16,0,16,32,32,0,3,4081552,1120,4081552,1120,0,16,0,16,32,32,0,3,645728,2240,645728,2240,0,16,0,16,64,64,0,3,3297584,1120,3297584,1120,0,16,0,16,32,32,0,3,4081584,1120,4081584,1120,0,16,0,16,32,32,0,3,645792,2240,645792,2240,0,16,0,16,64,64,0,3,3297616,1120,3297616,1120,0,16,0,16,32,32,0,3,4081616,1120,4081616,1120,0,16,0,16,32,32,0,3,645856,2240,645856,2240,0,16,0,16,64,64,0,3,3297648,1120,3297648,1120,0,16,0,16,32,32,0,3,4081648,1120,4081648,1120,0,16,0,16,32,32,0,3,645920,2240,645920,2240,0,16,0,16,64,64,0,3,3297680,1120,3297680,1120,0,16,0,16,32,32,0,3,4081680,1120,4081680,1120,0,16,0,16,32,32,0,3,645984,2240,645984,2240,0,16,0,16,64,64,0,3,3297712,1120,3297712,1120,0,16,0,16,32,32,0,3,4081712,1120,4081712,1120,0,16,0,16,32,32,0,3,646048,2240,646048,2240,0,16,0,16,64,64,0,3,3297744,1120,3297744,1120,0,16,0,16,32,32,0,3,4081744,1120,4081744,1120,0,16,0,16,32,32,0,3,646112,2240,646112,2240,0,16,0,16,64,64,0,3,3297776,1120,3297776,1120,0,16,0,16,32,32,0,3,4081776,1120,4081776,1120,0,16,0,16,32,32,0,3,646176,2240,646176,2240,0,16,0,16,32,32,0,3,3297808,1120,3297808,1120,0,16,0,16,16,16,0,3,4081808,1120,4081808,1120,0,16,0,16,16,16,0,3,646208,2240,646208,2240,0,16,0,16,32,32,0,3,3297824,1120,3297824,1120,0,16,0,16,16,16,0,3,4081824,1120,4081824,1120,0,16,0,16,16,16,0,3,717856,2240,717856,2240,0,16,0,16,32,32,0,3,3315728,1120,3315728,1120,0,16,0,16,16,16,0,3,4099728,1120,4099728,1120,0,16,0,16,16,16,4,3,717884,2240,717888,2240,64,16,0,16,16,16,4,3,3315742,1120,3315744,1120,32,16,0,16,8,8,4,3,4099742,1120,4099744,1120,32,16,0,16,8,8,0,3,717904,2240,717904,2240,0,16,0,16,16,16,0,3,3315752,1120,3315752,1120,0,16,0,16,8,8,0,3,4099752,1120,4099752,1120,0,16,0,16,8,8,0,3,753728,2240,753728,2240,0,16,0,16,8,8,0,3,3324704,1120,3324704,1120,0,16,0,16,4,4,0,3,4108704,1120,4108704,1120,0,16,0,16,4,4,0,3,753736,2240,753736,2240,0,16,0,16,8,8,0,3,3324708,1120,3324708,1120,0,16,0,16,4,4,0,3,4108708,1120,4108708,1120,0,16,0,16,4,4,2,3,769408,2240,771648,2240,0,16,80,16,8,8,2,3,3328064,1120,3329184,1120,0,16,104,16,4,4,2,3,4112064,1120,4113184,1120,0,16,104,16,4,4,2,3,769416,2240,771656,2240,128,16,208,16,4,4,6,3,769420,2240,771660,2240,192,16,144,16,4,4,2,3,778376,2240,780616,2240,128,16,208,16,4,4,6,3,778380,2240,780620,2240,192,16,144,16,4,4,6,3,3328068,1120,3329188,1120,144,16,216,16,4,4,6,3,4112068,1120,4113188,1120,144,16,216,16,4,4,0,3,753744,2240,753744,2240,0,16,0,16,8,8,0,3,3324712,1120,3324712,1120,0,16,0,16,4,4,0,3,4108712,1120,4108712,1120,0,16,0,16,4,4,0,3,753752,2240,753752,2240,0,16,0,16,8,8,0,3,3324716,1120,3324716,1120,0,16,0,16,4,4,0,3,4108716,1120,4108716,1120,0,16,0,16,4,4,4,3,771664,2240,771664,2240,64,16,0,16,8,8,4,3,3329192,1120,3329192,1120,32,16,0,16,4,4,4,3,4113192,1120,4113192,1120,32,16,0,16,4,4,2,3,769432,2240,771672,2240,0,16,80,16,4,4,2,3,769436,2240,771676,2240,0,16,80,16,4,4,2,3,780632,2240,780632,2240,0,16,64,16,4,4,0,3,780636,2240,780636,2240,0,16,0,16,4,4,2,3,3328076,1120,3329196,1120,0,16,120,16,4,4,2,3,4112076,1120,4113196,1120,0,16,120,16,4,4,6,3,644000,2240,646240,2240,144,16,192,16,64,64,6,3,3296720,1120,3297840,1120,136,16,224,16,32,32,6,3,4080720,1120,4081840,1120,136,16,224,16,32,32,4,3,646304,2240,646304,2240,240,16,128,16,64,64,4,3,3297872,1120,3297872,1120,184,16,128,16,32,32,4,3,4081872,1120,4081872,1120,184,16,128,16,32,32,0,3,646368,2240,646368,2240,0,16,0,16,64,64,0,3,3297904,1120,3297904,1120,0,16,0,16,32,32,0,3,4081904,1120,4081904,1120,0,16,0,16,32,32,0,3,646432,2240,646432,2240,0,16,0,16,64,64,0,3,3297936,1120,3297936,1120,0,16,0,16,32,32,0,3,4081936,1120,4081936,1120,0,16,0,16,32,32,0,3,646496,2240,646496,2240,0,16,0,16,64,64,0,3,3297968,1120,3297968,1120,0,16,0,16,32,32,0,3,4081968,1120,4081968,1120,0,16,0,16,32,32,0,3,646560,2240,646560,2240,0,16,0,16,64,64,0,3,3298000,1120,3298000,1120,0,16,0,16,32,32,0,3,4082000,1120,4082000,1120,0,16,0,16,32,32,0,3,646624,2240,646624,2240,0,16,0,16,64,64,0,3,3298032,1120,3298032,1120,0,16,0,16,32,32,0,3,4082032,1120,4082032,1120,0,16,0,16,32,32,0,3,646688,2240,646688,2240,0,16,0,16,64,64,0,3,3298064,1120,3298064,1120,0,16,0,16,32,32,0,3,4082064,1120,4082064,1120,0,16,0,16,32,32,0,3,646752,2240,646752,2240,0,16,0,16,64,64,0,3,3298096,1120,3298096,1120,0,16,0,16,32,32,0,3,4082096,1120,4082096,1120,0,16,0,16,32,32,0,3,646816,2240,646816,2240,0,16,0,16,64,64,0,3,3298128,1120,3298128,1120,0,16,0,16,32,32,0,3,4082128,1120,4082128,1120,0,16,0,16,32,32,0,3,646880,2240,646880,2240,0,16,0,16,64,64,0,3,3298160,1120,3298160,1120,0,16,0,16,32,32,0,3,4082160,1120,4082160,1120,0,16,0,16,32,32,0,3,646944,2240,646944,2240,0,16,0,16,64,64,0,3,3298192,1120,3298192,1120,0,16,0,16,32,32,0,3,4082192,1120,4082192,1120,0,16,0,16,32,32,0,3,647008,2240,647008,2240,0,16,0,16,64,64,0,3,3298224,1120,3298224,1120,0,16,0,16,32,32,0,3,4082224,1120,4082224,1120,0,16,0,16,32,32,0,3,647072,2240,647072,2240,0,16,0,16,64,64,0,3,3298256,1120,3298256,1120,0,16,0,16,32,32,0,3,4082256,1120,4082256,1120,0,16,0,16,32,32,0,3,647136,2240,647136,2240,0,16,0,16,64,64,0,3,3298288,1120,3298288,1120,0,16,0,16,32,32,0,3,4082288,1120,4082288,1120,0,16,0,16,32,32,0,3,788640,2240,788640,2240,0,16,0,16,64,64,0,3,3333200,1120,3333200,1120,0,16,0,16,32,32,0,3,4117200,1120,4117200,1120,0,16,0,16,32,32,0,3,788704,2240,788704,2240,0,16,0,16,64,64,0,3,3333232,1120,3333232,1120,0,16,0,16,32,32,0,3,4117232,1120,4117232,1120,0,16,0,16,32,32,0,3,788768,2240,788768,2240,0,16,0,16,64,64,0,3,3333264,1120,3333264,1120,0,16,0,16,32,32,0,3,4117264,1120,4117264,1120,0,16,0,16,32,32,0,3,788832,2240,788832,2240,0,16,0,16,64,64,0,3,3333296,1120,3333296,1120,0,16,0,16,32,32,0,3,4117296,1120,4117296,1120,0,16,0,16,32,32,0,3,788896,2240,788896,2240,0,16,0,16,64,64,0,3,3333328,1120,3333328,1120,0,16,0,16,32,32,0,3,4117328,1120,4117328,1120,0,16,0,16,32,32,0,3,788960,2240,788960,2240,0,16,0,16,64,64,0,3,3333360,1120,3333360,1120,0,16,0,16,32,32,0,3,4117360,1120,4117360,1120,0,16,0,16,32,32,0,3,789024,2240,789024,2240,0,16,0,16,64,64,0,3,3333392,1120,3333392,1120,0,16,0,16,32,32,0,3,4117392,1120,4117392,1120,0,16,0,16,32,32,0,3,789088,2240,789088,2240,0,16,0,16,64,64,0,3,3333424,1120,3333424,1120,0,16,0,16,32,32,0,3,4117424,1120,4117424,1120,0,16,0,16,32,32,0,3,789152,2240,789152,2240,0,16,0,16,64,64,0,3,3333456,1120,3333456,1120,0,16,0,16,32,32,0,3,4117456,1120,4117456,1120,0,16,0,16,32,32,0,3,789216,2240,789216,2240,0,16,0,16,64,64,0,3,3333488,1120,3333488,1120,0,16,0,16,32,32,0,3,4117488,1120,4117488,1120,0,16,0,16,32,32,0,3,789280,2240,789280,2240,0,16,0,16,64,64,0,3,3333520,1120,3333520,1120,0,16,0,16,32,32,0,3,4117520,1120,4117520,1120,0,16,0,16,32,32,0,3,789344,2240,789344,2240,0,16,0,16,64,64,0,3,3333552,1120,3333552,1120,0,16,0,16,32,32,0,3,4117552,1120,4117552,1120,0,16,0,16,32,32,0,3,789408,2240,789408,2240,0,16,0,16,64,64,0,3,3333584,1120,3333584,1120,0,16,0,16,32,32,0,3,4117584,1120,4117584,1120,0,16,0,16,32,32,0,3,789472,2240,789472,2240,0,16,0,16,16,16,0,3,3333616,1120,3333616,1120,0,16,0,16,8,8,0,3,4117616,1120,4117616,1120,0,16,0,16,8,8,0,3,789488,2240,789488,2240,0,16,0,16,16,16,0,3,3333624,1120,3333624,1120,0,16,0,16,8,8,0,3,4117624,1120,4117624,1120,0,16,0,16,8,8,0,3,825312,2240,825312,2240,0,16,0,16,16,16,0,3,3342576,1120,3342576,1120,0,16,0,16,8,8,0,3,4126576,1120,4126576,1120,0,16,0,16,8,8,0,3,825328,2240,825328,2240,0,16,0,16,16,16,0,3,3342584,1120,3342584,1120,0,16,0,16,8,8,0,3,4126584,1120,4126584,1120,0,16,0,16,8,8,0,3,789504,2240,789504,2240,0,16,0,16,16,16,0,3,3333632,1120,3333632,1120,0,16,0,16,8,8,0,3,4117632,1120,4117632,1120,0,16,0,16,8,8,4,3,798473,2240,789520,2240,112,16,0,16,16,16,4,3,3335876,1120,3333640,1120,120,16,0,16,8,8,4,3,4119876,1120,4117640,1120,120,16,0,16,8,8,2,3,823104,2240,825344,2240,128,16,176,16,16,16,2,3,3341472,1120,3342592,1120,128,16,216,16,8,8,2,3,4125472,1120,4126592,1120,128,16,216,16,8,8,6,3,832075,2240,825360,2240,192,16,192,16,16,16,6,3,3343717,1120,3342600,1120,224,16,224,16,8,8,6,3,4127717,1120,4126600,1120,224,16,224,16,8,8,6,3,858911,2240,861152,2240,80,16,112,16,32,16,6,3,3350415,1120,3351536,1120,104,16,120,16,16,8,6,3,4134415,1120,4135536,1120,104,16,120,16,16,8,6,3,894752,2240,896992,2240,32,16,64,16,32,16,6,3,3359376,1120,3360496,1120,16,16,96,16,16,8,6,3,4143376,1120,4144496,1120,16,16,96,16,16,8,2,3,858944,2240,861184,2240,128,16,176,16,8,8,2,3,3350432,1120,3351552,1120,128,16,216,16,4,4,2,3,4134432,1120,4135552,1120,128,16,216,16,4,4,6,3,863430,2240,861192,2240,144,16,192,16,8,8,6,3,3351555,1120,3351556,1120,136,16,224,16,4,4,6,3,4135555,1120,4135556,1120,136,16,224,16,4,4,2,3,876864,2240,879104,2240,128,16,176,16,8,8,2,3,3354912,1120,3356032,1120,128,16,216,16,4,4,2,3,4138912,1120,4140032,1120,128,16,216,16,4,4,2,3,876872,2240,879112,2240,128,16,176,16,8,8,2,3,3354916,1120,3356036,1120,128,16,216,16,4,4,2,3,4138916,1120,4140036,1120,128,16,216,16,4,4,6,3,863436,2240,861200,2240,208,16,224,16,16,16,6,3,3351558,1120,3351560,1120,168,16,240,16,8,8,6,3,4135558,1120,4135560,1120,168,16,240,16,8,8,2,3,894784,2240,897024,2240,128,16,176,16,16,16,2,3,3359392,1120,3360512,1120,128,16,216,16,8,8,2,3,4143392,1120,4144512,1120,128,16,216,16,8,8,2,3,894800,2240,897040,2240,128,16,176,16,8,16,2,3,3359400,1120,3360520,1120,128,16,216,16,4,8,2,3,4143400,1120,4144520,1120,128,16,216,16,4,8,6,3,894804,2240,897048,2240,192,16,176,16,8,16,6,3,3359402,1120,3360524,1120,160,16,216,16,4,8,6,3,4143402,1120,4144524,1120,160,16,216,16,4,8,4,3,798489,2240,789536,2240,112,16,0,16,8,8,4,3,3335884,1120,3333648,1120,120,16,0,16,4,4,4,3,4119884,1120,4117648,1120,120,16,0,16,4,4,6,3,816409,2240,807456,2240,240,16,160,16,8,8,6,3,3340364,1120,3338128,1120,248,16,144,16,4,4,6,3,4124364,1120,4122128,1120,248,16,144,16,4,4,0,3,807464,2240,807464,2240,128,16,128,16,8,8,0,3,3338132,1120,3338132,1120,128,16,128,16,4,4,0,3,4122132,1120,4122132,1120,128,16,128,16,4,4,2,3,787311,2240,789552,2240,0,16,112,16,16,8,6,3,3332535,1120,3333656,1120,64,16,120,16,8,4,6,3,4116535,1120,4117656,1120,64,16,120,16,8,4,6,3,809712,2240,807472,2240,160,16,240,16,16,8,6,3,3338136,1120,3338136,1120,144,16,248,16,8,4,6,3,4122136,1120,4122136,1120,144,16,248,16,8,4,6,3,834329,2240,825376,2240,240,16,160,16,16,16,6,3,3344844,1120,3342608,1120,248,16,144,16,8,8,6,3,4128844,1120,4126608,1120,248,16,144,16,8,8,0,3,825392,2240,825392,2240,128,16,128,16,8,8,0,3,3342616,1120,3342616,1120,128,16,128,16,4,4,0,3,4126616,1120,4126616,1120,128,16,128,16,4,4,6,3,827640,2240,825400,2240,176,16,192,16,8,8,6,3,3342620,1120,3342620,1120,152,16,224,16,4,4,6,3,4126620,1120,4126620,1120,152,16,224,16,4,4,0,3,843312,2240,843312,2240,128,16,128,16,4,4,6,3,852269,2240,843316,2240,240,16,160,16,4,4,6,3,861225,2240,852272,2240,240,16,160,16,4,4,6,3,861229,2240,852276,2240,240,16,160,16,4,4,6,3,3348213,1120,3347096,1120,216,16,208,16,4,4,6,3,4132213,1120,4131096,1120,216,16,208,16,4,4,6,3,845560,2240,843320,2240,176,16,192,16,8,8,6,3,3347100,1120,3347100,1120,152,16,224,16,4,4,6,3,4131100,1120,4131100,1120,152,16,224,16,4,4,2,3,791808,2240,789568,2240,0,16,112,16,16,16,2,3,3333664,1120,3333664,1120,0,16,120,16,8,8,2,3,4117664,1120,4117664,1120,0,16,120,16,8,8,6,3,794063,2240,789584,2240,112,16,64,16,8,8,6,3,3334791,1120,3333672,1120,120,16,32,16,4,4,6,3,4118791,1120,4117672,1120,120,16,32,16,4,4,6,3,794070,2240,789592,2240,96,16,112,16,4,4,2,3,787356,2240,789596,2240,0,16,80,16,4,4,6,3,803030,2240,798552,2240,96,16,112,16,4,4,2,3,796316,2240,798556,2240,0,16,80,16,4,4,6,3,3333675,1120,3333676,1120,88,16,80,16,4,4,6,3,4117675,1120,4117676,1120,88,16,80,16,4,4,6,3,811983,2240,807504,2240,240,16,192,16,8,8,6,3,3339271,1120,3338152,1120,248,16,160,16,4,4,6,3,4123271,1120,4122152,1120,248,16,160,16,4,4,6,3,811991,2240,807512,2240,112,16,64,16,8,8,6,3,3339275,1120,3338156,1120,120,16,32,16,4,4,6,3,4123275,1120,4122156,1120,120,16,32,16,4,4,2,3,827648,2240,825408,2240,128,16,160,16,16,16,2,3,3342624,1120,3342624,1120,128,16,208,16,8,8,2,3,4126624,1120,4126624,1120,128,16,208,16,8,8,0,3,825424,2240,825424,2240,128,16,128,16,16,8,0,3,3342632,1120,3342632,1120,128,16,128,16,8,4,0,3,4126632,1120,4126632,1120,128,16,128,16,8,4,2,3,845584,2240,843344,2240,128,16,160,16,16,8,2,3,3347112,1120,3347112,1120,128,16,208,16,8,4,2,3,4131112,1120,4131112,1120,128,16,208,16,8,4,6,3,863472,2240,861232,2240,176,16,192,16,16,16,6,3,3351576,1120,3351576,1120,152,16,224,16,8,8,6,3,4135576,1120,4135576,1120,152,16,224,16,8,8,4,3,897051,2240,897056,2240,144,16,128,16,8,8,4,3,3360525,1120,3360528,1120,200,16,128,16,4,4,4,3,4144525,1120,4144528,1120,200,16,128,16,4,4,6,3,897057,2240,897064,2240,224,16,176,16,8,8,6,3,3360528,1120,3360532,1120,240,16,152,16,4,4,6,3,4144528,1120,4144532,1120,240,16,152,16,4,4,6,3,912732,2240,914976,2240,192,16,176,16,8,8,6,3,3363886,1120,3365008,1120,160,16,216,16,4,4,6,3,4147886,1120,4149008,1120,160,16,216,16,4,4,6,3,914984,2240,914984,2240,192,16,208,16,8,8,6,3,3365012,1120,3365012,1120,160,16,168,16,4,4,6,3,4149012,1120,4149012,1120,160,16,168,16,4,4,6,3,897072,2240,897072,2240,48,16,96,16,16,16,6,3,3360536,1120,3360536,1120,24,16,48,16,8,8,6,3,4144536,1120,4144536,1120,24,16,48,16,8,8,6,3,861247,2240,861248,2240,224,16,224,16,16,16,6,3,3351583,1120,3351584,1120,240,16,176,16,8,8,6,3,4135583,1120,4135584,1120,240,16,176,16,8,8,4,3,863503,2240,861264,2240,192,16,128,16,16,16,6,3,3351591,1120,3351592,1120,224,16,192,16,8,8,6,3,4135591,1120,4135592,1120,224,16,192,16,8,8,6,3,894848,2240,897088,2240,80,16,80,16,8,16,6,3,3359424,1120,3360544,1120,40,16,104,16,4,8,6,3,4143424,1120,4144544,1120,40,16,104,16,4,8,6,3,894855,2240,897096,2240,96,16,96,16,8,16,6,3,3359427,1120,3360548,1120,112,16,112,16,4,8,6,3,4143427,1120,4144548,1120,112,16,112,16,4,8,6,3,894864,2240,897104,2240,32,16,80,16,16,16,6,3,3359432,1120,3360552,1120,16,16,104,16,8,8,6,3,4143432,1120,4144552,1120,16,16,104,16,8,8,6,3,787360,2240,789600,2240,144,16,192,16,8,8,6,3,3332560,1120,3333680,1120,136,16,224,16,4,4,6,3,4116560,1120,4117680,1120,136,16,224,16,4,4,0,3,789608,2240,789608,2240,128,16,128,16,4,4,0,3,789612,2240,789612,2240,128,16,128,16,4,4,6,3,800806,2240,798568,2240,240,16,224,16,4,4,6,3,800810,2240,798572,2240,240,16,224,16,4,4,6,3,3333683,1120,3333684,1120,216,16,184,16,4,4,6,3,4117683,1120,4117684,1120,216,16,184,16,4,4,2,3,814239,2240,807520,2240,128,16,192,16,8,8,6,3,3339279,1120,3338160,1120,192,16,224,16,4,4,6,3,4123279,1120,4122160,1120,192,16,224,16,4,4,2,3,809767,2240,807528,2240,0,16,64,16,8,8,6,3,3338163,1120,3338164,1120,64,16,96,16,4,4,6,3,4122163,1120,4122164,1120,64,16,96,16,4,4,2,3,787377,2240,789616,2240,128,16,224,16,16,16,6,3,3332568,1120,3333688,1120,192,16,240,16,8,8,6,3,4116568,1120,4117688,1120,192,16,240,16,8,8,6,3,827679,2240,825440,2240,176,16,160,16,16,16,6,3,3342639,1120,3342640,1120,216,16,208,16,8,8,6,3,4126639,1120,4126640,1120,216,16,208,16,8,8,4,3,827695,2240,825456,2240,160,16,128,16,8,16,6,3,3342647,1120,3342648,1120,208,16,192,16,4,8,6,3,4126647,1120,4126648,1120,208,16,192,16,4,8,6,3,823223,2240,825464,2240,64,16,48,16,8,16,6,3,3341531,1120,3342652,1120,96,16,88,16,4,8,6,3,4125531,1120,4126652,1120,96,16,88,16,4,8,2,3,787392,2240,789632,2240,0,16,64,16,16,16,2,3,3332576,1120,3333696,1120,0,16,96,16,8,8,2,3,4116576,1120,4117696,1120,0,16,96,16,8,8,6,3,787407,2240,789648,2240,64,16,64,16,16,16,6,3,3332583,1120,3333704,1120,96,16,96,16,8,8,6,3,4116583,1120,4117704,1120,96,16,96,16,8,8,6,3,823231,2240,825472,2240,64,16,48,16,8,8,6,3,3341535,1120,3342656,1120,96,16,88,16,4,4,6,3,4125535,1120,4126656,1120,96,16,88,16,4,4,2,3,823240,2240,825480,2240,0,16,64,16,4,4,2,3,823244,2240,825484,2240,0,16,64,16,4,4,6,3,832199,2240,834440,2240,64,16,48,16,4,4,6,3,832203,2240,834444,2240,64,16,48,16,4,4,6,3,3341539,1120,3342660,1120,112,16,88,16,4,4,6,3,4125539,1120,4126660,1120,112,16,88,16,4,4,2,3,841152,2240,843392,2240,0,16,64,16,8,8,2,3,3346016,1120,3347136,1120,0,16,96,16,4,4,2,3,4130016,1120,4131136,1120,0,16,96,16,4,4,6,3,841159,2240,843400,2240,32,16,32,16,8,8,6,3,3346019,1120,3347140,1120,80,16,80,16,4,4,6,3,4130019,1120,4131140,1120,80,16,80,16,4,4,6,3,818767,2240,825488,2240,64,16,80,16,8,8,6,3,3340423,1120,3342664,1120,96,16,104,16,4,4,6,3,4124423,1120,4126664,1120,96,16,104,16,4,4,2,3,829968,2240,825496,2240,0,16,48,16,4,4,2,3,829972,2240,825500,2240,0,16,48,16,4,4,6,3,829975,2240,834456,2240,64,16,48,16,4,4,6,3,829979,2240,834460,2240,64,16,48,16,4,4,6,3,3342665,1120,3342668,1120,112,16,24,16,4,4,6,3,4126665,1120,4126668,1120,112,16,24,16,4,4,6,3,841167,2240,843408,2240,64,16,48,16,8,8,6,3,3346023,1120,3347144,1120,96,16,88,16,4,4,6,3,4130023,1120,4131144,1120,96,16,88,16,4,4,6,3,841175,2240,843416,2240,64,16,48,16,8,8,6,3,3346027,1120,3347148,1120,96,16,88,16,4,4,6,3,4130027,1120,4131148,1120,96,16,88,16,4,4,4,3,863519,2240,861280,2240,64,16,0,16,16,8,6,3,3351599,1120,3351600,1120,96,16,64,16,8,4,6,3,4135599,1120,4135600,1120,96,16,64,16,8,4,0,3,879200,2240,879200,2240,0,16,0,16,16,8,0,3,3356080,1120,3356080,1120,0,16,0,16,8,4,0,3,4140080,1120,4140080,1120,0,16,0,16,8,4,4,3,863535,2240,861296,2240,64,16,0,16,8,16,6,3,3351607,1120,3351608,1120,96,16,64,16,4,8,6,3,4135607,1120,4135608,1120,96,16,64,16,4,8,4,3,863543,2240,861304,2240,64,16,0,16,8,16,6,3,3351611,1120,3351612,1120,96,16,64,16,4,8,6,3,4135611,1120,4135612,1120,96,16,64,16,4,8,6,3,894880,2240,897120,2240,32,16,80,16,8,16,6,3,3359440,1120,3360560,1120,16,16,104,16,4,8,6,3,4143440,1120,4144560,1120,16,16,104,16,4,8,6,3,894887,2240,897128,2240,64,16,96,16,8,16,6,3,3359443,1120,3360564,1120,96,16,112,16,4,8,6,3,4143443,1120,4144564,1120,96,16,112,16,4,8,6,3,894895,2240,897136,2240,192,16,224,16,16,16,6,3,3359447,1120,3360568,1120,224,16,240,16,8,8,6,3,4143447,1120,4144568,1120,224,16,240,16,8,8,6,3,859072,2240,861312,2240,48,16,64,16,8,8,6,3,3350496,1120,3351616,1120,24,16,96,16,4,4,6,3,4134496,1120,4135616,1120,24,16,96,16,4,4,2,3,859080,2240,861320,2240,0,16,96,16,8,8,2,3,3350500,1120,3351620,1120,0,16,112,16,4,4,2,3,4134500,1120,4135620,1120,0,16,112,16,4,4,6,3,876992,2240,879232,2240,48,16,64,16,4,4,6,3,876996,2240,879236,2240,48,16,64,16,4,4,2,3,885951,2240,888192,2240,0,16,64,16,4,4,2,3,885955,2240,888196,2240,0,16,64,16,4,4,6,3,3354975,1120,3356096,1120,104,16,96,16,4,4,6,3,4138975,1120,4140096,1120,104,16,96,16,4,4,6,3,879239,2240,879240,2240,144,16,144,16,8,8,6,3,3356099,1120,3356100,1120,200,16,136,16,4,4,6,3,4140099,1120,4140100,1120,200,16,136,16,4,4,6,3,859087,2240,861328,2240,64,16,112,16,8,8,6,3,3350503,1120,3351624,1120,96,16,120,16,4,4,6,3,4134503,1120,4135624,1120,96,16,120,16,4,4,6,3,859095,2240,861336,2240,64,16,48,16,4,4,6,3,859099,2240,861340,2240,64,16,112,16,4,4,6,3,868055,2240,870296,2240,64,16,48,16,4,4,6,3,868059,2240,870300,2240,64,16,112,16,4,4,6,3,3350507,1120,3351628,1120,96,16,104,16,4,4,6,3,4134507,1120,4135628,1120,96,16,104,16,4,4,6,3,877007,2240,879248,2240,64,16,112,16,8,8,6,3,3354983,1120,3356104,1120,96,16,120,16,4,4,6,3,4138983,1120,4140104,1120,96,16,120,16,4,4,6,3,877015,2240,879256,2240,112,16,64,16,8,8,6,3,3354987,1120,3356108,1120,120,16,96,16,4,4,6,3,4138987,1120,4140108,1120,120,16,96,16,4,4,0,3,897152,2240,897152,2240,0,16,0,16,16,8,0,3,3360576,1120,3360576,1120,0,16,0,16,8,4,0,3,4144576,1120,4144576,1120,0,16,0,16,8,4,6,3,912831,2240,915072,2240,64,16,96,16,16,8,6,3,3363935,1120,3365056,1120,96,16,112,16,8,4,6,3,4147935,1120,4149056,1120,96,16,112,16,8,4,6,3,897166,2240,897168,2240,64,16,64,16,16,16,6,3,3360583,1120,3360584,1120,32,16,32,16,8,8,6,3,4144583,1120,4144584,1120,32,16,32,16,8,8,4,3,787423,2240,789664,2240,176,16,128,16,32,32,6,3,3332591,1120,3333712,1120,216,16,192,16,16,16,6,3,4116591,1120,4117712,1120,216,16,192,16,16,16,4,3,789696,2240,789696,2240,176,16,128,16,32,32,4,3,3333728,1120,3333728,1120,152,16,128,16,16,16,4,3,4117728,1120,4117728,1120,152,16,128,16,16,16,6,3,859103,2240,861344,2240,64,16,112,16,16,8,6,3,3350511,1120,3351632,1120,96,16,120,16,8,4,6,3,4134511,1120,4135632,1120,96,16,120,16,8,4,6,3,877023,2240,879264,2240,64,16,112,16,16,8,6,3,3354991,1120,3356112,1120,96,16,120,16,8,4,6,3,4138991,1120,4140112,1120,96,16,120,16,8,4,6,3,859120,2240,861360,2240,32,16,112,16,16,8,6,3,3350520,1120,3351640,1120,16,16,120,16,8,4,6,3,4134520,1120,4135640,1120,16,16,120,16,8,4,6,3,877040,2240,879280,2240,160,16,192,16,16,8,6,3,3355000,1120,3356120,1120,144,16,224,16,8,4,6,3,4139000,1120,4140120,1120,144,16,224,16,8,4,6,3,897182,2240,897184,2240,192,16,192,16,8,8,6,3,3360591,1120,3360592,1120,160,16,160,16,4,4,6,3,4144591,1120,4144592,1120,160,16,160,16,4,4,0,3,897192,2240,897192,2240,0,16,0,16,8,8,0,3,3360596,1120,3360596,1120,0,16,0,16,4,4,0,3,4144596,1120,4144596,1120,0,16,0,16,4,4,6,3,915102,2240,915104,2240,64,16,64,16,8,8,6,3,3365071,1120,3365072,1120,32,16,32,16,4,4,6,3,4149071,1120,4149072,1120,32,16,32,16,4,4,6,3,915110,2240,915112,2240,192,16,192,16,8,8,6,3,3365075,1120,3365076,1120,160,16,160,16,4,4,6,3,4149075,1120,4149076,1120,160,16,160,16,4,4,6,3,897200,2240,897200,2240,32,16,16,16,8,8,6,3,3360600,1120,3360600,1120,16,16,8,16,4,4,6,3,4144600,1120,4144600,1120,16,16,8,16,4,4,6,3,894968,2240,897208,2240,160,16,192,16,8,8,6,3,3359484,1120,3360604,1120,144,16,224,16,4,4,6,3,4143484,1120,4144604,1120,144,16,224,16,4,4,6,3,915118,2240,915120,2240,192,16,192,16,4,4,0,3,915124,2240,915124,2240,128,16,128,16,4,4,6,3,924078,2240,924080,2240,192,16,192,16,4,4,0,3,924084,2240,924084,2240,128,16,128,16,4,4,6,3,3365079,1120,3365080,1120,208,16,144,16,4,4,6,3,4149079,1120,4149080,1120,208,16,144,16,4,4,6,3,912888,2240,915128,2240,160,16,192,16,8,8,6,3,3363964,1120,3365084,1120,144,16,224,16,4,4,6,3,4147964,1120,4149084,1120,144,16,224,16,4,4,0,3,861376,2240,861376,2240,0,16,0,16,16,16,0,3,3351648,1120,3351648,1120,0,16,0,16,8,8,0,3,4135648,1120,4135648,1120,0,16,0,16,8,8,4,3,861392,2240,861392,2240,48,16,0,16,16,16,4,3,3351656,1120,3351656,1120,24,16,0,16,8,8,4,3,4135656,1120,4135656,1120,24,16,0,16,8,8,0,3,897216,2240,897216,2240,0,16,0,16,8,8,0,3,3360608,1120,3360608,1120,0,16,0,16,4,4,0,3,4144608,1120,4144608,1120,0,16,0,16,4,4,6,3,894984,2240,897224,2240,32,16,64,16,8,8,6,3,3359492,1120,3360612,1120,16,16,96,16,4,4,6,3,4143492,1120,4144612,1120,16,16,96,16,4,4,0,3,915136,2240,915136,2240,0,16,0,16,8,8,0,3,3365088,1120,3365088,1120,0,16,0,16,4,4,0,3,4149088,1120,4149088,1120,0,16,0,16,4,4,6,3,912904,2240,915144,2240,32,16,64,16,8,8,6,3,3363972,1120,3365092,1120,16,16,96,16,4,4,6,3,4147972,1120,4149092,1120,16,16,96,16,4,4,6,3,897232,2240,897232,2240,48,16,112,16,16,16,6,3,3360616,1120,3360616,1120,24,16,56,16,8,8,6,3,4144616,1120,4144616,1120,24,16,56,16,8,8,0,3,789728,2240,789728,2240,0,16,0,16,64,64,0,3,3333744,1120,3333744,1120,0,16,0,16,32,32,0,3,4117744,1120,4117744,1120,0,16,0,16,32,32,0,3,789792,2240,789792,2240,0,16,0,16,64,64,0,3,3333776,1120,3333776,1120,0,16,0,16,32,32,0,3,4117776,1120,4117776,1120,0,16,0,16,32,32,0,3,789856,2240,789856,2240,0,16,0,16,64,64,0,3,3333808,1120,3333808,1120,0,16,0,16,32,32,0,3,4117808,1120,4117808,1120,0,16,0,16,32,32,0,3,789920,2240,789920,2240,0,16,0,16,64,64,0,3,3333840,1120,3333840,1120,0,16,0,16,32,32,0,3,4117840,1120,4117840,1120,0,16,0,16,32,32,0,3,789984,2240,789984,2240,0,16,0,16,64,64,0,3,3333872,1120,3333872,1120,0,16,0,16,32,32,0,3,4117872,1120,4117872,1120,0,16,0,16,32,32,0,3,790048,2240,790048,2240,0,16,0,16,64,64,0,3,3333904,1120,3333904,1120,0,16,0,16,32,32,0,3,4117904,1120,4117904,1120,0,16,0,16,32,32,0,3,790112,2240,790112,2240,0,16,0,16,64,64,0,3,3333936,1120,3333936,1120,0,16,0,16,32,32,0,3,4117936,1120,4117936,1120,0,16,0,16,32,32,0,3,790176,2240,790176,2240,0,16,0,16,64,64,0,3,3333968,1120,3333968,1120,0,16,0,16,32,32,0,3,4117968,1120,4117968,1120,0,16,0,16,32,32,0,3,790240,2240,790240,2240,0,16,0,16,64,64,0,3,3334000,1120,3334000,1120,0,16,0,16,32,32,0,3,4118000,1120,4118000,1120,0,16,0,16,32,32,0,3,790304,2240,790304,2240,0,16,0,16,64,64,0,3,3334032,1120,3334032,1120,0,16,0,16,32,32,0,3,4118032,1120,4118032,1120,0,16,0,16,32,32,0,3,790368,2240,790368,2240,0,16,0,16,64,64,0,3,3334064,1120,3334064,1120,0,16,0,16,32,32,0,3,4118064,1120,4118064,1120,0,16,0,16,32,32,0,3,790432,2240,790432,2240,0,16,0,16,64,64,0,3,3334096,1120,3334096,1120,0,16,0,16,32,32,0,3,4118096,1120,4118096,1120,0,16,0,16,32,32,0,3,790496,2240,790496,2240,0,16,0,16,64,64,0,3,3334128,1120,3334128,1120,0,16,0,16,32,32,0,3,4118128,1120,4118128,1120,0,16,0,16,32,32,0,3,932000,2240,932000,2240,0,16,0,16,64,64,0,3,3369040,1120,3369040,1120,0,16,0,16,32,32,0,3,4153040,1120,4153040,1120,0,16,0,16,32,32,0,3,932064,2240,932064,2240,0,16,0,16,64,64,0,3,3369072,1120,3369072,1120,0,16,0,16,32,32,0,3,4153072,1120,4153072,1120,0,16,0,16,32,32,0,3,932128,2240,932128,2240,0,16,0,16,64,64,0,3,3369104,1120,3369104,1120,0,16,0,16,32,32,0,3,4153104,1120,4153104,1120,0,16,0,16,32,32,0,3,932192,2240,932192,2240,0,16,0,16,64,64,0,3,3369136,1120,3369136,1120,0,16,0,16,32,32,0,3,4153136,1120,4153136,1120,0,16,0,16,32,32,0,3,932256,2240,932256,2240,0,16,0,16,64,64,0,3,3369168,1120,3369168,1120,0,16,0,16,32,32,0,3,4153168,1120,4153168,1120,0,16,0,16,32,32,0,3,932320,2240,932320,2240,0,16,0,16,64,64,0,3,3369200,1120,3369200,1120,0,16,0,16,32,32,0,3,4153200,1120,4153200,1120,0,16,0,16,32,32,0,3,932384,2240,932384,2240,0,16,0,16,64,64,0,3,3369232,1120,3369232,1120,0,16,0,16,32,32,0,3,4153232,1120,4153232,1120,0,16,0,16,32,32,0,3,932448,2240,932448,2240,0,16,0,16,64,64,0,3,3369264,1120,3369264,1120,0,16,0,16,32,32,0,3,4153264,1120,4153264,1120,0,16,0,16,32,32,0,3,932512,2240,932512,2240,0,16,0,16,64,64,0,3,3369296,1120,3369296,1120,0,16,0,16,32,32,0,3,4153296,1120,4153296,1120,0,16,0,16,32,32,0,3,932576,2240,932576,2240,0,16,0,16,64,64,0,3,3369328,1120,3369328,1120,0,16,0,16,32,32,0,3,4153328,1120,4153328,1120,0,16,0,16,32,32,0,3,932640,2240,932640,2240,0,16,0,16,64,64,0,3,3369360,1120,3369360,1120,0,16,0,16,32,32,0,3,4153360,1120,4153360,1120,0,16,0,16,32,32,0,3,932704,2240,932704,2240,0,16,0,16,64,64,0,3,3369392,1120,3369392,1120,0,16,0,16,32,32,0,3,4153392,1120,4153392,1120,0,16,0,16,32,32,0,3,932768,2240,932768,2240,0,16,0,16,64,64,0,3,3369424,1120,3369424,1120,0,16,0,16,32,32,0,3,4153424,1120,4153424,1120,0,16,0,16,32,32,2,3,930592,2240,932832,2240,0,16,64,16,32,32,2,3,3368336,1120,3369456,1120,0,16,96,16,16,16,2,3,4152336,1120,4153456,1120,0,16,96,16,16,16,2,3,932865,2240,932864,2240,128,16,208,16,16,16,6,3,3369472,1120,3369472,1120,192,16,168,16,8,8,6,3,4153472,1120,4153472,1120,192,16,168,16,8,8,6,3,932880,2240,932880,2240,208,16,192,16,8,16,6,3,3369480,1120,3369480,1120,168,16,160,16,4,8,6,3,4153480,1120,4153480,1120,168,16,160,16,4,8,6,3,932888,2240,932888,2240,208,16,192,16,8,16,6,3,3369484,1120,3369484,1120,168,16,160,16,4,8,6,3,4153484,1120,4153484,1120,168,16,160,16,4,8,0,3,968704,2240,968704,2240,0,16,0,16,16,16,0,3,3378432,1120,3378432,1120,0,16,0,16,8,8,0,3,4162432,1120,4162432,1120,0,16,0,16,8,8,0,3,968720,2240,968720,2240,0,16,0,16,8,16,0,3,3378440,1120,3378440,1120,0,16,0,16,4,8,0,3,4162440,1120,4162440,1120,0,16,0,16,4,8,4,3,968728,2240,968728,2240,176,16,128,16,8,16,4,3,3378444,1120,3378444,1120,152,16,128,16,4,8,4,3,4162444,1120,4162444,1120,152,16,128,16,4,8,2,3,1002272,2240,1004512,2240,0,16,64,16,32,32,2,3,3386256,1120,3387376,1120,0,16,96,16,16,16,2,3,4170256,1120,4171376,1120,0,16,96,16,16,16,6,3,1002303,2240,1004544,2240,112,16,16,16,16,32,6,3,3386271,1120,3387392,1120,120,16,72,16,8,16,6,3,4170271,1120,4171392,1120,120,16,72,16,8,16,0,3,1004560,2240,1004560,2240,0,16,0,16,16,32,0,3,3387400,1120,3387400,1120,0,16,0,16,8,16,0,3,4171400,1120,4171400,1120,0,16,0,16,8,16,6,3,932896,2240,932896,2240,208,16,192,16,8,16,6,3,3369488,1120,3369488,1120,168,16,160,16,4,8,6,3,4153488,1120,4153488,1120,168,16,160,16,4,8,6,3,932904,2240,932904,2240,48,16,48,16,8,16,6,3,3369492,1120,3369492,1120,24,16,24,16,4,8,6,3,4153492,1120,4153492,1120,24,16,24,16,4,8,6,3,932912,2240,932912,2240,48,16,48,16,16,8,6,3,3369496,1120,3369496,1120,24,16,24,16,8,4,6,3,4153496,1120,4153496,1120,24,16,24,16,8,4,2,3,950832,2240,950832,2240,128,16,160,16,16,8,2,3,3373976,1120,3373976,1120,128,16,144,16,8,4,2,3,4157976,1120,4157976,1120,128,16,144,16,8,4,6,3,968736,2240,968736,2240,80,16,64,16,8,16,6,3,3378448,1120,3378448,1120,40,16,32,16,4,8,6,3,4162448,1120,4162448,1120,40,16,32,16,4,8,6,3,968744,2240,968744,2240,32,16,64,16,8,16,6,3,3378452,1120,3378452,1120,16,16,32,16,4,8,6,3,4162452,1120,4162452,1120,16,16,32,16,4,8,6,3,966511,2240,968752,2240,96,16,48,16,16,16,6,3,3377335,1120,3378456,1120,112,16,88,16,8,8,6,3,4161335,1120,4162456,1120,112,16,88,16,8,8,6,3,932927,2240,932928,2240,96,16,64,16,16,16,6,3,3369503,1120,3369504,1120,112,16,32,16,8,8,6,3,4153503,1120,4153504,1120,112,16,32,16,8,8,6,3,930704,2240,932944,2240,16,16,96,16,16,16,6,3,3368392,1120,3369512,1120,8,16,112,16,8,8,6,3,4152392,1120,4153512,1120,8,16,112,16,8,8,6,3,968767,2240,968768,2240,96,16,112,16,16,8,6,3,3378463,1120,3378464,1120,112,16,56,16,8,4,6,3,4162463,1120,4162464,1120,112,16,56,16,8,4,4,3,986688,2240,986688,2240,48,16,0,16,16,8,4,3,3382944,1120,3382944,1120,24,16,0,16,8,4,4,3,4166944,1120,4166944,1120,24,16,0,16,8,4,6,3,968783,2240,968784,2240,224,16,160,16,16,16,6,3,3378471,1120,3378472,1120,240,16,144,16,8,8,6,3,4162471,1120,4162472,1120,240,16,144,16,8,8,2,3,1002336,2240,1004576,2240,0,16,96,16,16,32,2,3,3386288,1120,3387408,1120,0,16,112,16,8,16,2,3,4170288,1120,4171408,1120,0,16,112,16,8,16,2,3,1002352,2240,1004592,2240,0,16,112,16,16,32,2,3,3386296,1120,3387416,1120,0,16,120,16,8,16,2,3,4170296,1120,4171416,1120,0,16,120,16,8,16,4,3,1004608,2240,1004608,2240,176,16,128,16,8,16,4,3,3387424,1120,3387424,1120,152,16,128,16,4,8,4,3,4171424,1120,4171424,1120,152,16,128,16,4,8,6,3,1002375,2240,1004616,2240,112,16,80,16,8,16,6,3,3386307,1120,3387428,1120,120,16,104,16,4,8,6,3,4170307,1120,4171428,1120,120,16,104,16,4,8,6,3,1002383,2240,1004624,2240,240,16,208,16,16,16,6,3,3386311,1120,3387432,1120,248,16,232,16,8,8,6,3,4170311,1120,4171432,1120,248,16,232,16,8,8,2,3,1038208,2240,1040448,2240,128,16,240,16,16,16,2,3,3395264,1120,3396384,1120,128,16,248,16,8,8,2,3,4179264,1120,4180384,1120,128,16,248,16,8,8,6,3,1038223,2240,1040464,2240,240,16,208,16,8,16,6,3,3395271,1120,3396392,1120,248,16,232,16,4,8,6,3,4179271,1120,4180392,1120,248,16,232,16,4,8,6,3,1040470,2240,1040472,2240,224,16,224,16,8,16,6,3,3396395,1120,3396396,1120,176,16,176,16,4,8,6,3,4180395,1120,4180396,1120,176,16,176,16,4,8,6,3,932959,2240,932960,2240,224,16,144,16,16,8,6,3,3369519,1120,3369520,1120,240,16,136,16,8,4,6,3,4153519,1120,4153520,1120,240,16,136,16,8,4,6,3,948640,2240,950880,2240,272,16,352,16,16,8,6,3,3372880,1120,3374000,1120,264,16,368,16,8,4,6,3,4156880,1120,4158000,1120,264,16,368,16,8,4,2,3,932975,2240,932976,2240,0,16,48,16,16,16,6,3,3369527,1120,3369528,1120,64,16,24,16,8,8,6,3,4153527,1120,4153528,1120,64,16,24,16,8,8,6,3,966559,2240,968800,2240,112,16,96,16,16,8,6,3,3377359,1120,3378480,1120,120,16,112,16,8,4,6,3,4161359,1120,4162480,1120,120,16,112,16,8,4,4,3,986719,2240,986720,2240,64,16,0,16,16,8,4,3,3382959,1120,3382960,1120,96,16,0,16,8,4,4,3,4166959,1120,4166960,1120,96,16,0,16,8,4,6,3,966575,2240,968816,2240,112,16,96,16,16,8,6,3,3377367,1120,3378488,1120,120,16,112,16,8,4,6,3,4161367,1120,4162488,1120,120,16,112,16,8,4,6,3,984495,2240,986736,2240,160,16,224,16,16,8,6,3,3381847,1120,3382968,1120,208,16,240,16,8,4,6,3,4165847,1120,4166968,1120,208,16,240,16,8,4,2,3,932991,2240,932992,2240,128,16,176,16,16,16,6,3,3369535,1120,3369536,1120,192,16,152,16,8,8,6,3,4153535,1120,4153536,1120,192,16,152,16,8,8,2,3,933007,2240,933008,2240,128,16,240,16,8,8,6,3,3369543,1120,3369544,1120,192,16,184,16,4,4,6,3,4153543,1120,4153544,1120,192,16,184,16,4,4,2,3,933015,2240,933016,2240,128,16,240,16,8,8,6,3,3369547,1120,3369548,1120,192,16,184,16,4,4,6,3,4153547,1120,4153548,1120,192,16,184,16,4,4,0,3,950928,2240,950928,2240,128,16,128,16,8,8,0,3,3374024,1120,3374024,1120,128,16,128,16,4,4,0,3,4158024,1120,4158024,1120,128,16,128,16,4,4,6,3,950934,2240,950936,2240,240,16,176,16,8,8,6,3,3374027,1120,3374028,1120,184,16,152,16,4,4,6,3,4158027,1120,4158028,1120,184,16,152,16,4,4,6,3,966591,2240,968832,2240,112,16,96,16,8,8,6,3,3377375,1120,3378496,1120,120,16,112,16,4,4,6,3,4161375,1120,4162496,1120,120,16,112,16,4,4,2,3,968839,2240,968840,2240,0,16,48,16,4,4,0,3,968844,2240,968844,2240,0,16,0,16,4,4,2,3,977799,2240,977800,2240,0,16,48,16,4,4,0,3,977804,2240,977804,2240,0,16,0,16,4,4,6,3,3378499,1120,3378500,1120,96,16,16,16,4,4,6,3,4162499,1120,4162500,1120,96,16,16,16,4,4,4,3,986750,2240,986752,2240,112,16,0,16,8,8,4,3,3382975,1120,3382976,1120,56,16,0,16,4,4,4,3,4166975,1120,4166976,1120,56,16,0,16,4,4,4,3,986758,2240,986760,2240,112,16,0,16,8,8,4,3,3382979,1120,3382980,1120,56,16,0,16,4,4,4,3,4166979,1120,4166980,1120,56,16,0,16,4,4,0,3,968848,2240,968848,2240,0,16,0,16,8,8,0,3,3378504,1120,3378504,1120,0,16,0,16,4,4,0,3,4162504,1120,4162504,1120,0,16,0,16,4,4,6,3,968855,2240,968856,2240,64,16,48,16,8,8,6,3,3378507,1120,3378508,1120,96,16,24,16,4,4,6,3,4162507,1120,4162508,1120,96,16,24,16,4,4,0,3,986768,2240,986768,2240,0,16,0,16,8,8,0,3,3382984,1120,3382984,1120,0,16,0,16,4,4,0,3,4166984,1120,4166984,1120,0,16,0,16,4,4,2,3,986775,2240,986776,2240,0,16,32,16,8,8,6,3,3382987,1120,3382988,1120,64,16,16,16,4,4,6,3,4166987,1120,4166988,1120,64,16,16,16,4,4,4,3,1004640,2240,1004640,2240,144,16,128,16,16,16,4,3,3387440,1120,3387440,1120,136,16,128,16,8,8,4,3,4171440,1120,4171440,1120,136,16,128,16,8,8,6,3,1004655,2240,1004656,2240,160,16,144,16,16,8,6,3,3387447,1120,3387448,1120,208,16,136,16,8,4,6,3,4171447,1120,4171448,1120,208,16,136,16,8,4,4,3,1022576,2240,1022576,2240,16,16,0,16,16,8,4,3,3391928,1120,3391928,1120,8,16,0,16,8,4,4,3,4175928,1120,4175928,1120,8,16,0,16,8,4,6,3,1040478,2240,1040480,2240,224,16,224,16,8,16,6,3,3396399,1120,3396400,1120,176,16,176,16,4,8,6,3,4180399,1120,4180400,1120,176,16,176,16,4,8,6,3,1038247,2240,1040488,2240,160,16,208,16,8,16,6,3,3395283,1120,3396404,1120,208,16,232,16,4,8,6,3,4179283,1120,4180404,1120,208,16,232,16,4,8,0,3,1040495,2240,1040496,2240,0,16,0,16,8,16,4,3,3396407,1120,3396408,1120,64,16,0,16,4,8,4,3,4180407,1120,4180408,1120,64,16,0,16,4,8,0,3,1040503,2240,1040504,2240,0,16,0,16,8,16,4,3,3396411,1120,3396412,1120,64,16,0,16,4,8,4,3,4180411,1120,4180412,1120,64,16,0,16,4,8,6,3,1002431,2240,1004672,2240,96,16,96,16,16,16,6,3,3386335,1120,3387456,1120,112,16,112,16,8,8,6,3,4170335,1120,4171456,1120,112,16,112,16,8,8,4,3,1004686,2240,1004688,2240,112,16,0,16,8,16,4,3,3387463,1120,3387464,1120,56,16,0,16,4,8,4,3,4171463,1120,4171464,1120,56,16,0,16,4,8,6,3,1002455,2240,1004696,2240,96,16,80,16,8,16,6,3,3386347,1120,3387468,1120,112,16,104,16,4,8,6,3,4170347,1120,4171468,1120,112,16,104,16,4,8,0,3,1040511,2240,1040512,2240,0,16,0,16,16,16,4,3,3396415,1120,3396416,1120,64,16,0,16,8,8,4,3,4180415,1120,4180416,1120,64,16,0,16,8,8,6,3,1038286,2240,1040528,2240,64,16,112,16,16,16,6,3,3395303,1120,3396424,1120,32,16,120,16,8,8,6,3,4179303,1120,4180424,1120,32,16,120,16,8,8,6,3,933022,2240,933024,2240,64,16,64,16,8,8,6,3,3369551,1120,3369552,1120,32,16,32,16,4,4,6,3,4153551,1120,4153552,1120,32,16,32,16,4,4,6,3,933030,2240,933032,2240,64,16,64,16,4,4,6,3,933034,2240,933036,2240,64,16,64,16,4,4,0,3,941992,2240,941992,2240,0,16,0,16,4,4,0,3,941996,2240,941996,2240,0,16,0,16,4,4,6,3,3369555,1120,3369556,1120,80,16,16,16,4,4,6,3,4153555,1120,4153556,1120,80,16,16,16,4,4,6,3,948702,2240,950944,2240,320,16,368,16,8,8,6,3,3372911,1120,3374032,1120,288,16,376,16,4,4,6,3,4156911,1120,4158032,1120,288,16,376,16,4,4,6,3,950950,2240,950952,2240,32,16,80,16,8,8,6,3,3374035,1120,3374036,1120,16,16,40,16,4,4,6,3,4158035,1120,4158036,1120,16,16,40,16,4,4,6,3,933038,2240,933040,2240,288,16,336,16,8,16,6,3,3369559,1120,3369560,1120,272,16,296,16,4,8,6,3,4153559,1120,4153560,1120,272,16,296,16,4,8,0,3,933048,2240,933048,2240,0,16,0,16,8,16,0,3,3369564,1120,3369564,1120,0,16,0,16,4,8,0,3,4153564,1120,4153564,1120,0,16,0,16,4,8,6,3,968862,2240,968864,2240,192,16,160,16,16,8,6,3,3378511,1120,3378512,1120,160,16,144,16,8,4,6,3,4162511,1120,4162512,1120,160,16,144,16,8,4,6,3,986782,2240,986784,2240,64,16,32,16,16,8,6,3,3382991,1120,3382992,1120,32,16,16,16,8,4,6,3,4166991,1120,4166992,1120,32,16,16,16,8,4,6,3,968878,2240,968880,2240,16,16,32,16,8,16,6,3,3378519,1120,3378520,1120,8,16,16,16,4,8,6,3,4162519,1120,4162520,1120,8,16,16,16,4,8,0,3,968888,2240,968888,2240,0,16,0,16,8,16,0,3,3378524,1120,3378524,1120,0,16,0,16,4,8,0,3,4162524,1120,4162524,1120,0,16,0,16,4,8,4,3,933056,2240,933056,2240,16,16,0,16,16,32,4,3,3369568,1120,3369568,1120,8,16,0,16,8,16,4,3,4153568,1120,4153568,1120,8,16,0,16,8,16,4,3,933072,2240,933072,2240,16,16,0,16,16,32,4,3,3369576,1120,3369576,1120,8,16,0,16,8,16,4,3,4153576,1120,4153576,1120,8,16,0,16,8,16,6,3,1002462,2240,1004704,2240,208,16,240,16,16,16,6,3,3386351,1120,3387472,1120,168,16,248,16,8,8,6,3,4170351,1120,4171472,1120,168,16,248,16,8,8,6,3,1004718,2240,1004720,2240,16,16,32,16,4,4,6,3,1004722,2240,1004724,2240,16,16,32,16,4,4,6,3,1011438,2240,1013680,2240,80,16,112,16,4,4,6,3,1011442,2240,1013684,2240,80,16,112,16,4,4,6,3,3387479,1120,3387480,1120,24,16,8,16,4,4,6,3,4171479,1120,4171480,1120,24,16,8,16,4,4,6,3,1004726,2240,1004728,2240,16,16,32,16,4,4,6,3,1004730,2240,1004732,2240,16,16,32,16,4,4,6,3,1013686,2240,1013688,2240,16,16,32,16,4,4,6,3,1013690,2240,1013692,2240,16,16,32,16,4,4,6,3,3387483,1120,3387484,1120,8,16,16,16,4,4,6,3,4171483,1120,4171484,1120,8,16,16,16,4,4,0,3,1022648,2240,1022648,2240,0,16,0,16,8,8,0,3,3391964,1120,3391964,1120,0,16,0,16,4,4,0,3,4175964,1120,4175964,1120,0,16,0,16,4,4,4,3,1040543,2240,1040544,2240,176,16,128,16,16,16,4,3,3396431,1120,3396432,1120,216,16,128,16,8,8,4,3,4180431,1120,4180432,1120,216,16,128,16,8,8,6,3,1038325,2240,1040568,2240,32,16,80,16,8,8,6,3,3395322,1120,3396444,1120,80,16,104,16,4,4,6,3,4179322,1120,4180444,1120,80,16,104,16,4,4,6,3,1054000,2240,1058480,2240,160,16,240,16,8,8,6,3,3399800,1120,3400920,1120,144,16,184,16,4,4,6,3,4183800,1120,4184920,1120,144,16,184,16,4,4,6,3,1056245,2240,1058488,2240,32,16,80,16,8,8,6,3,3399802,1120,3400924,1120,80,16,104,16,4,4,6,3,4183802,1120,4184924,1120,80,16,104,16,4,4,4,3,1004736,2240,1004736,2240,16,16,0,16,16,16,4,3,3387488,1120,3387488,1120,8,16,0,16,8,8,4,3,4171488,1120,4171488,1120,8,16,0,16,8,8,4,3,1004752,2240,1004752,2240,16,16,0,16,8,16,4,3,3387496,1120,3387496,1120,8,16,0,16,4,8,4,3,4171496,1120,4171496,1120,8,16,0,16,4,8,4,3,1004760,2240,1004760,2240,144,16,128,16,8,16,4,3,3387500,1120,3387500,1120,136,16,128,16,4,8,4,3,4171500,1120,4171500,1120,136,16,128,16,4,8,6,3,1038333,2240,1040576,2240,32,16,80,16,4,4,6,3,1038337,2240,1040580,2240,32,16,80,16,4,4,0,3,1049536,2240,1049536,2240,0,16,0,16,4,4,0,3,1049540,2240,1049540,2240,0,16,0,16,4,4,6,3,3395327,1120,3396448,1120,40,16,112,16,4,4,6,3,4179327,1120,4180448,1120,40,16,112,16,4,4,4,3,1040584,2240,1040584,2240,16,16,0,16,8,8,4,3,3396452,1120,3396452,1120,8,16,0,16,4,4,4,3,4180452,1120,4180452,1120,8,16,0,16,4,4,2,3,1056256,2240,1058496,2240,0,16,112,16,8,8,2,3,3399808,1120,3400928,1120,0,16,120,16,4,4,2,3,4183808,1120,4184928,1120,0,16,120,16,4,4,4,3,1058504,2240,1058504,2240,16,16,0,16,8,8,4,3,3400932,1120,3400932,1120,8,16,0,16,4,4,4,3,4184932,1120,4184932,1120,8,16,0,16,4,4,4,3,1040592,2240,1040592,2240,16,16,0,16,8,16,4,3,3396456,1120,3396456,1120,8,16,0,16,4,8,4,3,4180456,1120,4180456,1120,8,16,0,16,4,8,4,3,1040600,2240,1040600,2240,192,16,128,16,8,16,4,3,3396460,1120,3396460,1120,160,16,128,16,4,8,4,3,4180460,1120,4180460,1120,160,16,128,16,4,8,0,3,933088,2240,933088,2240,0,16,0,16,64,64,0,3,3369584,1120,3369584,1120,0,16,0,16,32,32,0,3,4153584,1120,4153584,1120,0,16,0,16,32,32,0,3,933152,2240,933152,2240,0,16,0,16,64,64,0,3,3369616,1120,3369616,1120,0,16,0,16,32,32,0,3,4153616,1120,4153616,1120,0,16,0,16,32,32,0,3,933216,2240,933216,2240,0,16,0,16,64,64,0,3,3369648,1120,3369648,1120,0,16,0,16,32,32,0,3,4153648,1120,4153648,1120,0,16,0,16,32,32,0,3,933280,2240,933280,2240,0,16,0,16,64,64,0,3,3369680,1120,3369680,1120,0,16,0,16,32,32,0,3,4153680,1120,4153680,1120,0,16,0,16,32,32,0,3,933344,2240,933344,2240,0,16,0,16,64,64,0,3,3369712,1120,3369712,1120,0,16,0,16,32,32,0,3,4153712,1120,4153712,1120,0,16,0,16,32,32,0,3,933408,2240,933408,2240,0,16,0,16,64,64,0,3,3369744,1120,3369744,1120,0,16,0,16,32,32,0,3,4153744,1120,4153744,1120,0,16,0,16,32,32,0,3,933472,2240,933472,2240,0,16,0,16,64,64,0,3,3369776,1120,3369776,1120,0,16,0,16,32,32,0,3,4153776,1120,4153776,1120,0,16,0,16,32,32,0,3,933536,2240,933536,2240,0,16,0,16,64,64,0,3,3369808,1120,3369808,1120,0,16,0,16,32,32,0,3,4153808,1120,4153808,1120,0,16,0,16,32,32,0,3,933600,2240,933600,2240,0,16,0,16,64,64,0,3,3369840,1120,3369840,1120,0,16,0,16,32,32,0,3,4153840,1120,4153840,1120,0,16,0,16,32,32,0,3,933664,2240,933664,2240,0,16,0,16,64,64,0,3,3369872,1120,3369872,1120,0,16,0,16,32,32,0,3,4153872,1120,4153872,1120,0,16,0,16,32,32,0,3,933728,2240,933728,2240,0,16,0,16,64,64,0,3,3369904,1120,3369904,1120,0,16,0,16,32,32,0,3,4153904,1120,4153904,1120,0,16,0,16,32,32,0,3,933792,2240,933792,2240,0,16,0,16,64,64,0,3,3369936,1120,3369936,1120,0,16,0,16,32,32,0,3,4153936,1120,4153936,1120,0,16,0,16,32,32,0,3,933856,2240,933856,2240,0,16,0,16,64,64,0,3,3369968,1120,3369968,1120,0,16,0,16,32,32,0,3,4153968,1120,4153968,1120,0,16,0,16,32,32,0,3,1075360,2240,1075360,2240,0,16,0,16,64,64,0,3,3404880,1120,3404880,1120,0,16,0,16,32,32,0,3,4188880,1120,4188880,1120,0,16,0,16,32,32,0,3,1075424,2240,1075424,2240,0,16,0,16,64,64,0,3,3404912,1120,3404912,1120,0,16,0,16,32,32,0,3,4188912,1120,4188912,1120,0,16,0,16,32,32,0,3,1075488,2240,1075488,2240,0,16,0,16,64,64,0,3,3404944,1120,3404944,1120,0,16,0,16,32,32,0,3,4188944,1120,4188944,1120,0,16,0,16,32,32,0,3,1075552,2240,1075552,2240,0,16,0,16,64,64,0,3,3404976,1120,3404976,1120,0,16,0,16,32,32,0,3,4188976,1120,4188976,1120,0,16,0,16,32,32,0,3,1075616,2240,1075616,2240,0,16,0,16,64,64,0,3,3405008,1120,3405008,1120,0,16,0,16,32,32,0,3,4189008,1120,4189008,1120,0,16,0,16,32,32,0,3,1075680,2240,1075680,2240,0,16,0,16,64,64,0,3,3405040,1120,3405040,1120,0,16,0,16,32,32,0,3,4189040,1120,4189040,1120,0,16,0,16,32,32,0,3,1075744,2240,1075744,2240,0,16,0,16,64,64,0,3,3405072,1120,3405072,1120,0,16,0,16,32,32,0,3,4189072,1120,4189072,1120,0,16,0,16,32,32,0,3,1075808,2240,1075808,2240,0,16,0,16,64,64,0,3,3405104,1120,3405104,1120,0,16,0,16,32,32,0,3,4189104,1120,4189104,1120,0,16,0,16,32,32,0,3,1075872,2240,1075872,2240,0,16,0,16,64,64,0,3,3405136,1120,3405136,1120,0,16,0,16,32,32,0,3,4189136,1120,4189136,1120,0,16,0,16,32,32,0,3,1075936,2240,1075936,2240,0,16,0,16,64,64,0,3,3405168,1120,3405168,1120,0,16,0,16,32,32,0,3,4189168,1120,4189168,1120,0,16,0,16,32,32,0,3,1076000,2240,1076000,2240,0,16,0,16,64,64,0,3,3405200,1120,3405200,1120,0,16,0,16,32,32,0,3,4189200,1120,4189200,1120,0,16,0,16,32,32,0,3,1076064,2240,1076064,2240,0,16,0,16,64,64,0,3,3405232,1120,3405232,1120,0,16,0,16,32,32,0,3,4189232,1120,4189232,1120,0,16,0,16,32,32,0,3,1076128,2240,1076128,2240,0,16,0,16,64,64,0,3,3405264,1120,3405264,1120,0,16,0,16,32,32,0,3,4189264,1120,4189264,1120,0,16,0,16,32,32,6,3,1073951,2240,1076192,2240,240,16,208,16,32,64,6,3,3404175,1120,3405296,1120,248,16,232,16,16,32,6,3,4188175,1120,4189296,1120,248,16,232,16,16,32,2,3,1073984,2240,1076224,2240,128,16,208,16,32,64,2,3,3404192,1120,3405312,1120,128,16,232,16,16,32,2,3,4188192,1120,4189312,1120,128,16,232,16,16,32,2,3,1074016,2240,1076256,2240,256,16,352,16,32,32,2,3,3404208,1120,3405328,1120,256,16,368,16,16,16,2,3,4188208,1120,4189328,1120,256,16,368,16,16,16,2,3,1074048,2240,1076288,2240,0,16,96,16,32,16,2,3,3404224,1120,3405344,1120,0,16,112,16,16,8,2,3,4188224,1120,4189344,1120,0,16,112,16,16,8,2,3,1109888,2240,1112128,2240,0,16,96,16,32,16,2,3,3413184,1120,3414304,1120,0,16,112,16,16,8,2,3,4197184,1120,4198304,1120,0,16,112,16,16,8,2,3,1145696,2240,1147936,2240,0,16,96,16,32,32,2,3,3422128,1120,3423248,1120,0,16,112,16,16,16,2,3,4206128,1120,4207248,1120,0,16,112,16,16,16,2,3,1145728,2240,1147968,2240,0,16,112,16,32,32,2,3,3422144,1120,3423264,1120,0,16,120,16,16,16,2,3,4206144,1120,4207264,1120,0,16,120,16,16,16,6,3,1074078,2240,1076320,2240,80,16,112,16,8,16,6,3,3404239,1120,3405360,1120,40,16,120,16,4,8,6,3,4188239,1120,4189360,1120,40,16,120,16,4,8,6,3,1074086,2240,1076328,2240,80,16,112,16,8,16,6,3,3404243,1120,3405364,1120,40,16,120,16,4,8,6,3,4188243,1120,4189364,1120,40,16,120,16,4,8,6,3,1074095,2240,1076336,2240,176,16,208,16,16,16,6,3,3404247,1120,3405368,1120,216,16,232,16,8,8,6,3,4188247,1120,4189368,1120,216,16,232,16,8,8,2,3,1109920,2240,1112160,2240,0,16,96,16,16,16,2,3,3413200,1120,3414320,1120,0,16,112,16,8,8,2,3,4197200,1120,4198320,1120,0,16,112,16,8,8,2,3,1109936,2240,1112176,2240,128,16,224,16,16,16,2,3,3413208,1120,3414328,1120,128,16,240,16,8,8,2,3,4197208,1120,4198328,1120,128,16,240,16,8,8,6,3,1074111,2240,1076352,2240,48,16,80,16,16,16,6,3,3404255,1120,3405376,1120,88,16,104,16,8,8,6,3,4188255,1120,4189376,1120,88,16,104,16,8,8,6,3,1074126,2240,1076368,2240,224,16,192,16,16,16,6,3,3404263,1120,3405384,1120,176,16,224,16,8,8,6,3,4188263,1120,4189384,1120,176,16,224,16,8,8,6,3,1109950,2240,1112192,2240,112,16,32,16,16,16,6,3,3413215,1120,3414336,1120,56,16,80,16,8,8,6,3,4197215,1120,4198336,1120,56,16,80,16,8,8,6,3,1109966,2240,1112208,2240,240,16,160,16,16,16,6,3,3413223,1120,3414344,1120,184,16,208,16,8,8,6,3,4197223,1120,4198344,1120,184,16,208,16,8,8,2,3,1145760,2240,1148000,2240,0,16,96,16,16,16,2,3,3422160,1120,3423280,1120,0,16,112,16,8,8,2,3,4206160,1120,4207280,1120,0,16,112,16,8,8,2,3,1145776,2240,1148016,2240,128,16,224,16,8,8,2,3,3422168,1120,3423288,1120,128,16,240,16,4,4,2,3,4206168,1120,4207288,1120,128,16,240,16,4,4,0,3,1148024,2240,1148024,2240,128,16,128,16,8,8,0,3,3423292,1120,3423292,1120,128,16,128,16,4,4,0,3,4207292,1120,4207292,1120,128,16,128,16,4,4,2,3,1163696,2240,1165936,2240,0,16,96,16,8,8,2,3,3426648,1120,3427768,1120,0,16,112,16,4,4,2,3,4210648,1120,4211768,1120,0,16,112,16,4,4,2,3,1161464,2240,1165944,2240,0,16,112,16,8,8,2,3,3426652,1120,3427772,1120,0,16,56,16,4,4,2,3,4210652,1120,4211772,1120,0,16,56,16,4,4,2,3,1181600,2240,1183840,2240,0,16,96,16,16,16,2,3,3431120,1120,3432240,1120,0,16,112,16,8,8,2,3,4215120,1120,4216240,1120,0,16,112,16,8,8,6,3,1181616,2240,1183856,2240,32,16,96,16,16,16,6,3,3431128,1120,3432248,1120,16,16,112,16,8,8,6,3,4215128,1120,4216248,1120,16,16,112,16,8,8,6,3,1145791,2240,1148032,2240,48,16,32,16,8,8,6,3,3422175,1120,3423296,1120,88,16,80,16,4,4,6,3,4206175,1120,4207296,1120,88,16,80,16,4,4,6,3,1145798,2240,1148040,2240,112,16,32,16,8,8,6,3,3422179,1120,3423300,1120,56,16,80,16,4,4,6,3,4206179,1120,4207300,1120,56,16,80,16,4,4,6,3,1161471,2240,1165952,2240,48,16,96,16,8,8,6,3,3426655,1120,3427776,1120,88,16,48,16,4,4,6,3,4210655,1120,4211776,1120,88,16,48,16,4,4,6,3,1163718,2240,1165960,2240,112,16,32,16,8,8,6,3,3426659,1120,3427780,1120,56,16,80,16,4,4,6,3,4210659,1120,4211780,1120,56,16,80,16,4,4,6,3,1145806,2240,1148048,2240,240,16,160,16,8,16,6,3,3422183,1120,3423304,1120,184,16,208,16,4,8,6,3,4206183,1120,4207304,1120,184,16,208,16,4,8,6,3,1145816,2240,1148056,2240,16,16,80,16,8,16,6,3,3422188,1120,3423308,1120,8,16,104,16,4,8,6,3,4206188,1120,4207308,1120,8,16,104,16,4,8,6,3,1181632,2240,1183872,2240,32,16,96,16,8,16,6,3,3431136,1120,3432256,1120,16,16,112,16,4,8,6,3,4215136,1120,4216256,1120,16,16,112,16,4,8,6,3,1183880,2240,1183880,2240,16,16,16,16,8,16,6,3,3432260,1120,3432260,1120,8,16,8,16,4,8,6,3,4216260,1120,4216260,1120,8,16,8,16,4,8,6,3,1183888,2240,1183888,2240,144,16,144,16,16,16,6,3,3432264,1120,3432264,1120,136,16,136,16,8,8,6,3,4216264,1120,4216264,1120,136,16,136,16,8,8,6,3,1074142,2240,1076384,2240,32,16,32,16,16,16,6,3,3404271,1120,3405392,1120,16,16,80,16,8,8,6,3,4188271,1120,4189392,1120,16,16,80,16,8,8,0,3,1076400,2240,1076400,2240,0,16,0,16,16,16,0,3,3405400,1120,3405400,1120,0,16,0,16,8,8,0,3,4189400,1120,4189400,1120,0,16,0,16,8,8,4,3,1109982,2240,1112224,2240,176,16,128,16,16,16,6,3,3413231,1120,3414352,1120,152,16,192,16,8,8,6,3,4197231,1120,4198352,1120,152,16,192,16,8,8,6,3,1109999,2240,1112240,2240,224,16,208,16,16,16,6,3,3413239,1120,3414360,1120,240,16,232,16,8,8,6,3,4197239,1120,4198360,1120,240,16,232,16,8,8,2,3,1074176,2240,1076416,2240,0,16,48,16,16,16,2,3,3404288,1120,3405408,1120,0,16,88,16,8,8,2,3,4188288,1120,4189408,1120,0,16,88,16,8,8,4,3,1076432,2240,1076432,2240,16,16,0,16,4,4,4,3,1076436,2240,1076436,2240,16,16,0,16,4,4,0,3,1085397,2240,1085392,2240,0,16,0,16,4,4,4,3,1085396,2240,1085396,2240,16,16,0,16,4,4,4,3,3405416,1120,3405416,1120,88,16,0,16,4,4,4,3,4189416,1120,4189416,1120,88,16,0,16,4,4,4,3,1076440,2240,1076440,2240,64,16,0,16,8,8,4,3,3405420,1120,3405420,1120,32,16,0,16,4,4,4,3,4189420,1120,4189420,1120,32,16,0,16,4,4,4,3,1094352,2240,1094352,2240,16,16,0,16,8,8,4,3,3409896,1120,3409896,1120,8,16,0,16,4,4,4,3,4193896,1120,4193896,1120,8,16,0,16,4,4,4,3,1094360,2240,1094360,2240,64,16,0,16,8,8,4,3,3409900,1120,3409900,1120,32,16,0,16,4,4,4,3,4193900,1120,4193900,1120,32,16,0,16,4,4,6,3,1110016,2240,1112256,2240,16,16,112,16,16,16,6,3,3413248,1120,3414368,1120,8,16,120,16,8,8,6,3,4197248,1120,4198368,1120,8,16,120,16,8,8,6,3,1110032,2240,1112272,2240,16,16,112,16,16,16,6,3,3413256,1120,3414376,1120,8,16,120,16,8,8,6,3,4197256,1120,4198376,1120,8,16,120,16,8,8,6,3,1145824,2240,1148064,2240,16,16,80,16,32,16,6,3,3422192,1120,3423312,1120,8,16,104,16,16,8,6,3,4206192,1120,4207312,1120,8,16,104,16,16,8,6,3,1183904,2240,1183904,2240,16,16,16,16,32,16,6,3,3432272,1120,3432272,1120,8,16,8,16,16,8,6,3,4216272,1120,4216272,1120,8,16,8,16,16,8,6,3,1145856,2240,1148096,2240,32,16,96,16,32,16,6,3,3422208,1120,3423328,1120,16,16,112,16,16,8,6,3,4206208,1120,4207328,1120,16,16,112,16,16,8,6,3,1183936,2240,1183936,2240,16,16,16,16,32,16,6,3,3432288,1120,3432288,1120,8,16,8,16,16,8,6,3,4216288,1120,4216288,1120,8,16,8,16,16,8,0,3,1076448,2240,1076448,2240,0,16,0,16,64,64,0,3,3405424,1120,3405424,1120,0,16,0,16,32,32,0,3,4189424,1120,4189424,1120,0,16,0,16,32,32,0,3,1076512,2240,1076512,2240,0,16,0,16,64,64,0,3,3405456,1120,3405456,1120,0,16,0,16,32,32,0,3,4189456,1120,4189456,1120,0,16,0,16,32,32,0,3,1076576,2240,1076576,2240,0,16,0,16,64,64,0,3,3405488,1120,3405488,1120,0,16,0,16,32,32,0,3,4189488,1120,4189488,1120,0,16,0,16,32,32,0,3,1076640,2240,1076640,2240,0,16,0,16,64,64,0,3,3405520,1120,3405520,1120,0,16,0,16,32,32,0,3,4189520,1120,4189520,1120,0,16,0,16,32,32,0,3,1076704,2240,1076704,2240,0,16,0,16,64,64,0,3,3405552,1120,3405552,1120,0,16,0,16,32,32,0,3,4189552,1120,4189552,1120,0,16,0,16,32,32,0,3,1076768,2240,1076768,2240,0,16,0,16,64,64,0,3,3405584,1120,3405584,1120,0,16,0,16,32,32,0,3,4189584,1120,4189584,1120,0,16,0,16,32,32,0,3,1076832,2240,1076832,2240,0,16,0,16,64,64,0,3,3405616,1120,3405616,1120,0,16,0,16,32,32,0,3,4189616,1120,4189616,1120,0,16,0,16,32,32,0,3,1076896,2240,1076896,2240,0,16,0,16,64,64,0,3,3405648,1120,3405648,1120,0,16,0,16,32,32,0,3,4189648,1120,4189648,1120,0,16,0,16,32,32,0,3,1076960,2240,1076960,2240,0,16,0,16,64,64,0,3,3405680,1120,3405680,1120,0,16,0,16,32,32,0,3,4189680,1120,4189680,1120,0,16,0,16,32,32,0,3,1077024,2240,1077024,2240,0,16,0,16,64,64,0,3,3405712,1120,3405712,1120,0,16,0,16,32,32,0,3,4189712,1120,4189712,1120,0,16,0,16,32,32,0,3,1077088,2240,1077088,2240,0,16,0,16,64,64,0,3,3405744,1120,3405744,1120,0,16,0,16,32,32,0,3,4189744,1120,4189744,1120,0,16,0,16,32,32,0,3,1077152,2240,1077152,2240,0,16,0,16,64,64,0,3,3405776,1120,3405776,1120,0,16,0,16,32,32,0,3,4189776,1120,4189776,1120,0,16,0,16,32,32,0,3,1077216,2240,1077216,2240,0,16,0,16,64,64,0,3,3405808,1120,3405808,1120,0,16,0,16,32,32,0,3,4189808,1120,4189808,1120,0,16,0,16,32,32,0,3,1218720,2240,1218720,2240,0,16,0,16,64,64,0,3,3440720,1120,3440720,1120,0,16,0,16,32,32,0,3,4224720,1120,4224720,1120,0,16,0,16,32,32,0,3,1218784,2240,1218784,2240,0,16,0,16,64,64,0,3,3440752,1120,3440752,1120,0,16,0,16,32,32,0,3,4224752,1120,4224752,1120,0,16,0,16,32,32,0,3,1218848,2240,1218848,2240,0,16,0,16,64,64,0,3,3440784,1120,3440784,1120,0,16,0,16,32,32,0,3,4224784,1120,4224784,1120,0,16,0,16,32,32,0,3,1218912,2240,1218912,2240,0,16,0,16,64,64,0,3,3440816,1120,3440816,1120,0,16,0,16,32,32,0,3,4224816,1120,4224816,1120,0,16,0,16,32,32,0,3,1218976,2240,1218976,2240,0,16,0,16,64,64,0,3,3440848,1120,3440848,1120,0,16,0,16,32,32,0,3,4224848,1120,4224848,1120,0,16,0,16,32,32,0,3,1219040,2240,1219040,2240,0,16,0,16,64,64,0,3,3440880,1120,3440880,1120,0,16,0,16,32,32,0,3,4224880,1120,4224880,1120,0,16,0,16,32,32,0,3,1219104,2240,1219104,2240,0,16,0,16,64,64,0,3,3440912,1120,3440912,1120,0,16,0,16,32,32,0,3,4224912,1120,4224912,1120,0,16,0,16,32,32,0,3,1219168,2240,1219168,2240,0,16,0,16,64,64,0,3,3440944,1120,3440944,1120,0,16,0,16,32,32,0,3,4224944,1120,4224944,1120,0,16,0,16,32,32,0,3,1219232,2240,1219232,2240,0,16,0,16,64,64,0,3,3440976,1120,3440976,1120,0,16,0,16,32,32,0,3,4224976,1120,4224976,1120,0,16,0,16,32,32,0,3,1219296,2240,1219296,2240,0,16,0,16,64,64,0,3,3441008,1120,3441008,1120,0,16,0,16,32,32,0,3,4225008,1120,4225008,1120,0,16,0,16,32,32,0,3,1219360,2240,1219360,2240,0,16,0,16,64,64,0,3,3441040,1120,3441040,1120,0,16,0,16,32,32,0,3,4225040,1120,4225040,1120,0,16,0,16,32,32,0,3,1219424,2240,1219424,2240,0,16,0,16,64,64,0,3,3441072,1120,3441072,1120,0,16,0,16,32,32,0,3,4225072,1120,4225072,1120,0,16,0,16,32,32,0,3,1219488,2240,1219488,2240,0,16,0,16,64,64,0,3,3441104,1120,3441104,1120,0,16,0,16,32,32,0,3,4225104,1120,4225104,1120,0,16,0,16,32,32,6,3,1217311,2240,1219552,2240,112,16,80,16,16,16,6,3,3440015,1120,3441136,1120,120,16,104,16,8,8,6,3,4224015,1120,4225136,1120,120,16,104,16,8,8,0,3,1219568,2240,1219568,2240,0,16,0,16,16,16,0,3,3441144,1120,3441144,1120,0,16,0,16,8,8,0,3,4225144,1120,4225144,1120,0,16,0,16,8,8,6,3,1253151,2240,1255392,2240,112,16,80,16,16,16,6,3,3448975,1120,3450096,1120,120,16,104,16,8,8,6,3,4232975,1120,4234096,1120,120,16,104,16,8,8,0,3,1255408,2240,1255408,2240,0,16,0,16,16,8,0,3,3450104,1120,3450104,1120,0,16,0,16,8,4,0,3,4234104,1120,4234104,1120,0,16,0,16,8,4,6,3,1271087,2240,1273328,2240,112,16,80,16,16,8,6,3,3453463,1120,3454584,1120,120,16,104,16,8,4,6,3,4237463,1120,4238584,1120,120,16,104,16,8,4,2,3,1217344,2240,1219584,2240,0,16,96,16,32,32,2,3,3440032,1120,3441152,1120,0,16,112,16,16,16,2,3,4224032,1120,4225152,1120,0,16,112,16,16,16,6,3,1288991,2240,1291232,2240,112,16,112,16,32,32,6,3,3457935,1120,3459056,1120,120,16,120,16,16,16,6,3,4241935,1120,4243056,1120,120,16,120,16,16,16,0,3,1291264,2240,1291264,2240,0,16,0,16,32,32,0,3,3459072,1120,3459072,1120,0,16,0,16,16,16,0,3,4243072,1120,4243072,1120,0,16,0,16,16,16,2,3,1217376,2240,1219616,2240,128,16,224,16,32,64,2,3,3440048,1120,3441168,1120,128,16,240,16,16,32,2,3,4224048,1120,4225168,1120,128,16,240,16,16,32,2,3,1219648,2240,1219648,2240,128,16,160,16,32,64,2,3,3441184,1120,3441184,1120,128,16,144,16,16,32,2,3,4225184,1120,4225184,1120,128,16,144,16,16,32,6,3,1217440,2240,1219680,2240,16,16,112,16,32,32,6,3,3440080,1120,3441200,1120,8,16,120,16,16,16,6,3,4224080,1120,4225200,1120,8,16,120,16,16,16,6,3,1217472,2240,1219712,2240,16,16,112,16,16,16,6,3,3440096,1120,3441216,1120,8,16,120,16,8,8,6,3,4224096,1120,4225216,1120,8,16,120,16,8,8,0,3,1219728,2240,1219728,2240,0,16,0,16,16,16,0,3,3441224,1120,3441224,1120,0,16,0,16,8,8,0,3,4225224,1120,4225224,1120,0,16,0,16,8,8,6,3,1253312,2240,1255552,2240,16,16,112,16,8,8,6,3,3449056,1120,3450176,1120,8,16,120,16,4,4,6,3,4233056,1120,4234176,1120,8,16,120,16,4,4,0,3,1255560,2240,1255560,2240,0,16,0,16,8,8,0,3,3450180,1120,3450180,1120,0,16,0,16,4,4,0,3,4234180,1120,4234180,1120,0,16,0,16,4,4,0,3,1273472,2240,1273472,2240,0,16,0,16,8,8,0,3,3454656,1120,3454656,1120,0,16,0,16,4,4,0,3,4238656,1120,4238656,1120,0,16,0,16,4,4,0,3,1273480,2240,1273480,2240,0,16,0,16,8,8,0,3,3454660,1120,3454660,1120,0,16,0,16,4,4,0,3,4238660,1120,4238660,1120,0,16,0,16,4,4,0,3,1255568,2240,1255568,2240,0,16,0,16,16,16,0,3,3450184,1120,3450184,1120,0,16,0,16,8,8,0,3,4234184,1120,4234184,1120,0,16,0,16,8,8,0,3,1291360,2240,1291360,2240,0,16,0,16,32,32,0,3,3459120,1120,3459120,1120,0,16,0,16,16,16,0,3,4243120,1120,4243120,1120,0,16,0,16,16,16,6,3,1289152,2240,1291392,2240,16,16,112,16,16,16,6,3,3458016,1120,3459136,1120,8,16,120,16,8,8,6,3,4242016,1120,4243136,1120,8,16,120,16,8,8,4,3,1291408,2240,1291408,2240,16,16,0,16,16,16,4,3,3459144,1120,3459144,1120,8,16,0,16,8,8,4,3,4243144,1120,4243144,1120,8,16,0,16,8,8,6,3,1324992,2240,1327232,2240,16,16,112,16,16,16,6,3,3466976,1120,3468096,1120,8,16,120,16,8,8,6,3,4250976,1120,4252096,1120,8,16,120,16,8,8,4,3,1327248,2240,1327248,2240,32,16,0,16,16,16,4,3,3468104,1120,3468104,1120,16,16,0,16,8,8,4,3,4252104,1120,4252104,1120,16,16,0,16,8,8,6,3,1217504,2240,1219744,2240,32,16,112,16,32,32,6,3,3440112,1120,3441232,1120,16,16,120,16,16,16,6,3,4224112,1120,4225232,1120,16,16,120,16,16,16,6,3,1217536,2240,1219776,2240,32,16,112,16,32,16,6,3,3440128,1120,3441248,1120,16,16,120,16,16,8,6,3,4224128,1120,4225248,1120,16,16,120,16,16,8,6,3,1255616,2240,1255616,2240,16,16,16,16,32,16,6,3,3450208,1120,3450208,1120,8,16,8,16,16,8,6,3,4234208,1120,4234208,1120,8,16,8,16,16,8,4,3,1291424,2240,1291424,2240,16,16,0,16,32,32,4,3,3459152,1120,3459152,1120,8,16,0,16,16,16,4,3,4243152,1120,4243152,1120,8,16,0,16,16,16,6,3,1289216,2240,1291456,2240,32,16,112,16,16,16,6,3,3458048,1120,3459168,1120,16,16,120,16,8,8,6,3,4242048,1120,4243168,1120,16,16,120,16,8,8,4,3,1291472,2240,1291472,2240,16,16,0,16,16,16,4,3,3459176,1120,3459176,1120,8,16,0,16,8,8,4,3,4243176,1120,4243176,1120,8,16,0,16,8,8,4,3,1327296,2240,1327296,2240,16,16,0,16,16,16,4,3,3468128,1120,3468128,1120,8,16,0,16,8,8,4,3,4252128,1120,4252128,1120,8,16,0,16,8,8,6,3,1325072,2240,1327312,2240,32,16,112,16,16,16,6,3,3467016,1120,3468136,1120,16,16,120,16,8,8,6,3,4251016,1120,4252136,1120,16,16,120,16,8,8,0,3,1219808,2240,1219808,2240,0,16,0,16,64,64,0,3,3441264,1120,3441264,1120,0,16,0,16,32,32,0,3,4225264,1120,4225264,1120,0,16,0,16,32,32,0,3,1219872,2240,1219872,2240,0,16,0,16,64,64,0,3,3441296,1120,3441296,1120,0,16,0,16,32,32,0,3,4225296,1120,4225296,1120,0,16,0,16,32,32,0,3,1219936,2240,1219936,2240,0,16,0,16,64,64,0,3,3441328,1120,3441328,1120,0,16,0,16,32,32,0,3,4225328,1120,4225328,1120,0,16,0,16,32,32,0,3,1220000,2240,1220000,2240,0,16,0,16,64,64,0,3,3441360,1120,3441360,1120,0,16,0,16,32,32,0,3,4225360,1120,4225360,1120,0,16,0,16,32,32,0,3,1220064,2240,1220064,2240,0,16,0,16,64,64,0,3,3441392,1120,3441392,1120,0,16,0,16,32,32,0,3,4225392,1120,4225392,1120,0,16,0,16,32,32,0,3,1220128,2240,1220128,2240,0,16,0,16,64,64,0,3,3441424,1120,3441424,1120,0,16,0,16,32,32,0,3,4225424,1120,4225424,1120,0,16,0,16,32,32,0,3,1220192,2240,1220192,2240,0,16,0,16,64,64,0,3,3441456,1120,3441456,1120,0,16,0,16,32,32,0,3,4225456,1120,4225456,1120,0,16,0,16,32,32,0,3,1220256,2240,1220256,2240,0,16,0,16,64,64,0,3,3441488,1120,3441488,1120,0,16,0,16,32,32,0,3,4225488,1120,4225488,1120,0,16,0,16,32,32,0,3,1220320,2240,1220320,2240,0,16,0,16,64,64,0,3,3441520,1120,3441520,1120,0,16,0,16,32,32,0,3,4225520,1120,4225520,1120,0,16,0,16,32,32,0,3,1220384,2240,1220384,2240,0,16,0,16,64,64,0,3,3441552,1120,3441552,1120,0,16,0,16,32,32,0,3,4225552,1120,4225552,1120,0,16,0,16,32,32,0,3,1220448,2240,1220448,2240,0,16,0,16,64,64,0,3,3441584,1120,3441584,1120,0,16,0,16,32,32,0,3,4225584,1120,4225584,1120,0,16,0,16,32,32,0,3,1220512,2240,1220512,2240,0,16,0,16,64,64,0,3,3441616,1120,3441616,1120,0,16,0,16,32,32,0,3,4225616,1120,4225616,1120,0,16,0,16,32,32,0,3,1220576,2240,1220576,2240,0,16,0,16,64,64,0,3,3441648,1120,3441648,1120,0,16,0,16,32,32,0,3,4225648,1120,4225648,1120,0,16,0,16,32,32,0,3,1362080,2240,1362080,2240,0,16,0,16,64,64,0,3,3476560,1120,3476560,1120,0,16,0,16,32,32,0,3,4260560,1120,4260560,1120,0,16,0,16,32,32,0,3,1362144,2240,1362144,2240,0,16,0,16,64,64,0,3,3476592,1120,3476592,1120,0,16,0,16,32,32,0,3,4260592,1120,4260592,1120,0,16,0,16,32,32,0,3,1362208,2240,1362208,2240,0,16,0,16,64,64,0,3,3476624,1120,3476624,1120,0,16,0,16,32,32,0,3,4260624,1120,4260624,1120,0,16,0,16,32,32,0,3,1362272,2240,1362272,2240,0,16,0,16,64,64,0,3,3476656,1120,3476656,1120,0,16,0,16,32,32,0,3,4260656,1120,4260656,1120,0,16,0,16,32,32,0,3,1362336,2240,1362336,2240,0,16,0,16,64,64,0,3,3476688,1120,3476688,1120,0,16,0,16,32,32,0,3,4260688,1120,4260688,1120,0,16,0,16,32,32,0,3,1362400,2240,1362400,2240,0,16,0,16,64,64,0,3,3476720,1120,3476720,1120,0,16,0,16,32,32,0,3,4260720,1120,4260720,1120,0,16,0,16,32,32,0,3,1362464,2240,1362464,2240,0,16,0,16,64,64,0,3,3476752,1120,3476752,1120,0,16,0,16,32,32,0,3,4260752,1120,4260752,1120,0,16,0,16,32,32,0,3,1362528,2240,1362528,2240,0,16,0,16,64,64,0,3,3476784,1120,3476784,1120,0,16,0,16,32,32,0,3,4260784,1120,4260784,1120,0,16,0,16,32,32,0,3,1362592,2240,1362592,2240,0,16,0,16,64,64,0,3,3476816,1120,3476816,1120,0,16,0,16,32,32,0,3,4260816,1120,4260816,1120,0,16,0,16,32,32,0,3,1362656,2240,1362656,2240,0,16,0,16,64,64,0,3,3476848,1120,3476848,1120,0,16,0,16,32,32,0,3,4260848,1120,4260848,1120,0,16,0,16,32,32,0,3,1362720,2240,1362720,2240,0,16,0,16,64,64,0,3,3476880,1120,3476880,1120,0,16,0,16,32,32,0,3,4260880,1120,4260880,1120,0,16,0,16,32,32,0,3,1362784,2240,1362784,2240,0,16,0,16,64,64,0,3,3476912,1120,3476912,1120,0,16,0,16,32,32,0,3,4260912,1120,4260912,1120,0,16,0,16,32,32,0,3,1362848,2240,1362848,2240,0,16,0,16,64,64,0,3,3476944,1120,3476944,1120,0,16,0,16,32,32,0,3,4260944,1120,4260944,1120,0,16,0,16,32,32,6,3,1367391,2240,1362912,2240,112,16,48,16,32,16,6,3,3478095,1120,3476976,1120,120,16,24,16,16,8,6,3,4262095,1120,4260976,1120,120,16,24,16,16,8,0,3,1398752,2240,1398752,2240,0,16,0,16,32,16,0,3,3485936,1120,3485936,1120,0,16,0,16,16,8,0,3,4269936,1120,4269936,1120,0,16,0,16,16,8,0,3,1362944,2240,1362944,2240,0,16,0,16,32,32,0,3,3476992,1120,3476992,1120,0,16,0,16,16,16,0,3,4260992,1120,4260992,1120,0,16,0,16,16,16,0,3,1434592,2240,1434592,2240,0,16,0,16,32,32,0,3,3494896,1120,3494896,1120,0,16,0,16,16,16,0,3,4278896,1120,4278896,1120,0,16,0,16,16,16,0,3,1434624,2240,1434624,2240,0,16,0,16,32,32,0,3,3494912,1120,3494912,1120,0,16,0,16,16,16,0,3,4278912,1120,4278912,1120,0,16,0,16,16,16,0,3,1362976,2240,1362976,2240,0,16,0,16,64,64,0,3,3477008,1120,3477008,1120,0,16,0,16,32,32,0,3,4261008,1120,4261008,1120,0,16,0,16,32,32,4,3,1363040,2240,1363040,2240,16,16,0,16,64,64,4,3,3477040,1120,3477040,1120,8,16,0,16,32,32,4,3,4261040,1120,4261040,1120,8,16,0,16,32,32,4,3,1363104,2240,1363104,2240,32,16,0,16,32,32,4,3,3477072,1120,3477072,1120,16,16,0,16,16,16,4,3,4261072,1120,4261072,1120,16,16,0,16,16,16,4,3,1363136,2240,1363136,2240,32,16,0,16,32,32,4,3,3477088,1120,3477088,1120,16,16,0,16,16,16,4,3,4261088,1120,4261088,1120,16,16,0,16,16,16,4,3,1434784,2240,1434784,2240,144,16,128,16,32,32,4,3,3494992,1120,3494992,1120,136,16,128,16,16,16,4,3,4278992,1120,4278992,1120,136,16,128,16,16,16,4,3,1434816,2240,1434816,2240,160,16,128,16,32,32,4,3,3495008,1120,3495008,1120,144,16,128,16,16,16,4,3,4279008,1120,4279008,1120,144,16,128,16,16,16,6,3,1363168,2240,1363168,2240,160,16,240,16,32,32,6,3,3477104,1120,3477104,1120,144,16,184,16,16,16,6,3,4261104,1120,4261104,1120,144,16,184,16,16,16,0,3,1363200,2240,1363200,2240,0,16,0,16,32,32,0,3,3477120,1120,3477120,1120,0,16,0,16,16,16,0,3,4261120,1120,4261120,1120,0,16,0,16,16,16,4,3,1432608,2240,1434848,2240,176,16,128,16,32,32,6,3,3493904,1120,3495024,1120,152,16,192,16,16,16,6,3,4277904,1120,4279024,1120,152,16,192,16,16,16,0,3,1434880,2240,1434880,2240,0,16,0,16,32,32,0,3,3495040,1120,3495040,1120,0,16,0,16,16,16,0,3,4279040,1120,4279040,1120,0,16,0,16,16,16,0,3,1363232,2240,1363232,2240,0,16,0,16,64,64,0,3,3477136,1120,3477136,1120,0,16,0,16,32,32,0,3,4261136,1120,4261136,1120,0,16,0,16,32,32,0,3,1363296,2240,1363296,2240,0,16,0,16,64,64,0,3,3477168,1120,3477168,1120,0,16,0,16,32,32,0,3,4261168,1120,4261168,1120,0,16,0,16,32,32,0,3,1363360,2240,1363360,2240,0,16,0,16,64,64,0,3,3477200,1120,3477200,1120,0,16,0,16,32,32,0,3,4261200,1120,4261200,1120,0,16,0,16,32,32,0,3,1363424,2240,1363424,2240,0,16,0,16,64,64,0,3,3477232,1120,3477232,1120,0,16,0,16,32,32,0,3,4261232,1120,4261232,1120,0,16,0,16,32,32,0,3,1363488,2240,1363488,2240,0,16,0,16,64,64,0,3,3477264,1120,3477264,1120,0,16,0,16,32,32,0,3,4261264,1120,4261264,1120,0,16,0,16,32,32,0,3,1363552,2240,1363552,2240,0,16,0,16,64,64,0,3,3477296,1120,3477296,1120,0,16,0,16,32,32,0,3,4261296,1120,4261296,1120,0,16,0,16,32,32,0,3,1363616,2240,1363616,2240,0,16,0,16,64,64,0,3,3477328,1120,3477328,1120,0,16,0,16,32,32,0,3,4261328,1120,4261328,1120,0,16,0,16,32,32,0,3,1363680,2240,1363680,2240,0,16,0,16,64,64,0,3,3477360,1120,3477360,1120,0,16,0,16,32,32,0,3,4261360,1120,4261360,1120,0,16,0,16,32,32,0,3,1363744,2240,1363744,2240,0,16,0,16,64,64,0,3,3477392,1120,3477392,1120,0,16,0,16,32,32,0,3,4261392,1120,4261392,1120,0,16,0,16,32,32,0,3,1363808,2240,1363808,2240,0,16,0,16,64,64,0,3,3477424,1120,3477424,1120,0,16,0,16,32,32,0,3,4261424,1120,4261424,1120,0,16,0,16,32,32,0,3,1363872,2240,1363872,2240,0,16,0,16,64,64,0,3,3477456,1120,3477456,1120,0,16,0,16,32,32,0,3,4261456,1120,4261456,1120,0,16,0,16,32,32,0,3,1363936,2240,1363936,2240,0,16,0,16,64,64,0,3,3477488,1120,3477488,1120,0,16,0,16,32,32,0,3,4261488,1120,4261488,1120,0,16,0,16,32,32,0,3,1505440,2240,1505440,2240,0,16,0,16,64,64,0,3,3512400,1120,3512400,1120,0,16,0,16,32,32,0,3,4296400,1120,4296400,1120,0,16,0,16,32,32,0,3,1505504,2240,1505504,2240,0,16,0,16,64,64,0,3,3512432,1120,3512432,1120,0,16,0,16,32,32,0,3,4296432,1120,4296432,1120,0,16,0,16,32,32,0,3,1505568,2240,1505568,2240,0,16,0,16,64,64,0,3,3512464,1120,3512464,1120,0,16,0,16,32,32,0,3,4296464,1120,4296464,1120,0,16,0,16,32,32,0,3,1505632,2240,1505632,2240,0,16,0,16,64,64,0,3,3512496,1120,3512496,1120,0,16,0,16,32,32,0,3,4296496,1120,4296496,1120,0,16,0,16,32,32,0,3,1505696,2240,1505696,2240,0,16,0,16,64,64,0,3,3512528,1120,3512528,1120,0,16,0,16,32,32,0,3,4296528,1120,4296528,1120,0,16,0,16,32,32,0,3,1505760,2240,1505760,2240,0,16,0,16,64,64,0,3,3512560,1120,3512560,1120,0,16,0,16,32,32,0,3,4296560,1120,4296560,1120,0,16,0,16,32,32,0,3,1505824,2240,1505824,2240,0,16,0,16,64,64,0,3,3512592,1120,3512592,1120,0,16,0,16,32,32,0,3,4296592,1120,4296592,1120,0,16,0,16,32,32,0,3,1505888,2240,1505888,2240,0,16,0,16,64,64,0,3,3512624,1120,3512624,1120,0,16,0,16,32,32,0,3,4296624,1120,4296624,1120,0,16,0,16,32,32,0,3,1505952,2240,1505952,2240,0,16,0,16,64,64,0,3,3512656,1120,3512656,1120,0,16,0,16,32,32,0,3,4296656,1120,4296656,1120,0,16,0,16,32,32,0,3,1506016,2240,1506016,2240,0,16,0,16,64,64,0,3,3512688,1120,3512688,1120,0,16,0,16,32,32,0,3,4296688,1120,4296688,1120,0,16,0,16,32,32,0,3,1506080,2240,1506080,2240,0,16,0,16,64,64,0,3,3512720,1120,3512720,1120,0,16,0,16,32,32,0,3,4296720,1120,4296720,1120,0,16,0,16,32,32,0,3,1506144,2240,1506144,2240,0,16,0,16,64,64,0,3,3512752,1120,3512752,1120,0,16,0,16,32,32,0,3,4296752,1120,4296752,1120,0,16,0,16,32,32,0,3,1506208,2240,1506208,2240,0,16,0,16,64,64,0,3,3512784,1120,3512784,1120,0,16,0,16,32,32,0,3,4296784,1120,4296784,1120,0,16,0,16,32,32,0,3,1506272,2240,1506272,2240,0,16,0,16,64,64,0,3,3512816,1120,3512816,1120,0,16,0,16,32,32,0,3,4296816,1120,4296816,1120,0,16,0,16,32,32,0,3,1506336,2240,1506336,2240,0,16,0,16,64,64,0,3,3512848,1120,3512848,1120,0,16,0,16,32,32,0,3,4296848,1120,4296848,1120,0,16,0,16,32,32,4,3,1506400,2240,1506400,2240,144,16,128,16,64,64,4,3,3512880,1120,3512880,1120,136,16,128,16,32,32,4,3,4296880,1120,4296880,1120,136,16,128,16,32,32,4,3,1506464,2240,1506464,2240,144,16,128,16,64,64,4,3,3512912,1120,3512912,1120,136,16,128,16,32,32,4,3,4296912,1120,4296912,1120,136,16,128,16,32,32,6,3,1506528,2240,1506528,2240,176,16,160,16,64,64,6,3,3512944,1120,3512944,1120,152,16,144,16,32,32,6,3,4296944,1120,4296944,1120,152,16,144,16,32,32,0,3,1506592,2240,1506592,2240,0,16,0,16,64,64,0,3,3512976,1120,3512976,1120,0,16,0,16,32,32,0,3,4296976,1120,4296976,1120,0,16,0,16,32,32,0,3,1506656,2240,1506656,2240,0,16,0,16,64,64,0,3,3513008,1120,3513008,1120,0,16,0,16,32,32,0,3,4297008,1120,4297008,1120,0,16,0,16,32,32,0,3,1506720,2240,1506720,2240,0,16,0,16,64,64,0,3,3513040,1120,3513040,1120,0,16,0,16,32,32,0,3,4297040,1120,4297040,1120,0,16,0,16,32,32,0,3,1506784,2240,1506784,2240,0,16,0,16,64,64,0,3,3513072,1120,3513072,1120,0,16,0,16,32,32,0,3,4297072,1120,4297072,1120,0,16,0,16,32,32,0,3,1506848,2240,1506848,2240,0,16,0,16,64,64,0,3,3513104,1120,3513104,1120,0,16,0,16,32,32,0,3,4297104,1120,4297104,1120,0,16,0,16,32,32,0,3,1506912,2240,1506912,2240,0,16,0,16,64,64,0,3,3513136,1120,3513136,1120,0,16,0,16,32,32,0,3,4297136,1120,4297136,1120,0,16,0,16,32,32,0,3,1506976,2240,1506976,2240,0,16,0,16,64,64,0,3,3513168,1120,3513168,1120,0,16,0,16,32,32,0,3,4297168,1120,4297168,1120,0,16,0,16,32,32,0,3,1507040,2240,1507040,2240,0,16,0,16,64,64,0,3,3513200,1120,3513200,1120,0,16,0,16,32,32,0,3,4297200,1120,4297200,1120,0,16,0,16,32,32,0,3,1507104,2240,1507104,2240,0,16,0,16,64,64,0,3,3513232,1120,3513232,1120,0,16,0,16,32,32,0,3,4297232,1120,4297232,1120,0,16,0,16,32,32,0,3,1507168,2240,1507168,2240,0,16,0,16,64,64,0,3,3513264,1120,3513264,1120,0,16,0,16,32,32,0,3,4297264,1120,4297264,1120,0,16,0,16,32,32,0,3,1507232,2240,1507232,2240,0,16,0,16,64,64,0,3,3513296,1120,3513296,1120,0,16,0,16,32,32,0,3,4297296,1120,4297296,1120,0,16,0,16,32,32,0,3,1507296,2240,1507296,2240,0,16,0,16,64,64,0,3,3513328,1120,3513328,1120,0,16,0,16,32,32,0,3,4297328,1120,4297328,1120,0,16,0,16,32,32,0,3,1648800,2240,1648800,2240,0,16,0,16,64,64,0,3,3548240,1120,3548240,1120,0,16,0,16,32,32,0,3,4332240,1120,4332240,1120,0,16,0,16,32,32,0,3,1648864,2240,1648864,2240,0,16,0,16,64,64,0,3,3548272,1120,3548272,1120,0,16,0,16,32,32,0,3,4332272,1120,4332272,1120,0,16,0,16,32,32,0,3,1648928,2240,1648928,2240,0,16,0,16,64,64,0,3,3548304,1120,3548304,1120,0,16,0,16,32,32,0,3,4332304,1120,4332304,1120,0,16,0,16,32,32,0,3,1648992,2240,1648992,2240,0,16,0,16,64,64,0,3,3548336,1120,3548336,1120,0,16,0,16,32,32,0,3,4332336,1120,4332336,1120,0,16,0,16,32,32,0,3,1649056,2240,1649056,2240,0,16,0,16,64,64,0,3,3548368,1120,3548368,1120,0,16,0,16,32,32,0,3,4332368,1120,4332368,1120,0,16,0,16,32,32,0,3,1649120,2240,1649120,2240,0,16,0,16,64,64,0,3,3548400,1120,3548400,1120,0,16,0,16,32,32,0,3,4332400,1120,4332400,1120,0,16,0,16,32,32,0,3,1649184,2240,1649184,2240,0,16,0,16,64,64,0,3,3548432,1120,3548432,1120,0,16,0,16,32,32,0,3,4332432,1120,4332432,1120,0,16,0,16,32,32,0,3,1649248,2240,1649248,2240,0,16,0,16,64,64,0,3,3548464,1120,3548464,1120,0,16,0,16,32,32,0,3,4332464,1120,4332464,1120,0,16,0,16,32,32,0,3,1649312,2240,1649312,2240,0,16,0,16,64,64,0,3,3548496,1120,3548496,1120,0,16,0,16,32,32,0,3,4332496,1120,4332496,1120,0,16,0,16,32,32,0,3,1649376,2240,1649376,2240,0,16,0,16,64,64,0,3,3548528,1120,3548528,1120,0,16,0,16,32,32,0,3,4332528,1120,4332528,1120,0,16,0,16,32,32,0,3,1649440,2240,1649440,2240,0,16,0,16,64,64,0,3,3548560,1120,3548560,1120,0,16,0,16,32,32,0,3,4332560,1120,4332560,1120,0,16,0,16,32,32,0,3,1649504,2240,1649504,2240,0,16,0,16,64,64,0,3,3548592,1120,3548592,1120,0,16,0,16,32,32,0,3,4332592,1120,4332592,1120,0,16,0,16,32,32,0,3,1649568,2240,1649568,2240,0,16,0,16,64,64,0,3,3548624,1120,3548624,1120,0,16,0,16,32,32,0,3,4332624,1120,4332624,1120,0,16,0,16,32,32,0,3,1649632,2240,1649632,2240,0,16,0,16,64,64,0,3,3548656,1120,3548656,1120,0,16,0,16,32,32,0,3,4332656,1120,4332656,1120,0,16,0,16,32,32,0,3,1649696,2240,1649696,2240,0,16,0,16,64,64,0,3,3548688,1120,3548688,1120,0,16,0,16,32,32,0,3,4332688,1120,4332688,1120,0,16,0,16,32,32,4,3,1649760,2240,1649760,2240,16,16,0,16,64,64,4,3,3548720,1120,3548720,1120,8,16,0,16,32,32,4,3,4332720,1120,4332720,1120,8,16,0,16,32,32,4,3,1649824,2240,1649824,2240,16,16,0,16,64,64,4,3,3548752,1120,3548752,1120,8,16,0,16,32,32,4,3,4332752,1120,4332752,1120,8,16,0,16,32,32,6,3,1649888,2240,1649888,2240,176,16,160,16,64,64,6,3,3548784,1120,3548784,1120,152,16,144,16,32,32,6,3,4332784,1120,4332784,1120,152,16,144,16,32,32,0,3,1649952,2240,1649952,2240,0,16,0,16,64,64,0,3,3548816,1120,3548816,1120,0,16,0,16,32,32,0,3,4332816,1120,4332816,1120,0,16,0,16,32,32,0,3,1650016,2240,1650016,2240,0,16,0,16,64,64,0,3,3548848,1120,3548848,1120,0,16,0,16,32,32,0,3,4332848,1120,4332848,1120,0,16,0,16,32,32,0,3,1650080,2240,1650080,2240,0,16,0,16,64,64,0,3,3548880,1120,3548880,1120,0,16,0,16,32,32,0,3,4332880,1120,4332880,1120,0,16,0,16,32,32,0,3,1650144,2240,1650144,2240,0,16,0,16,64,64,0,3,3548912,1120,3548912,1120,0,16,0,16,32,32,0,3,4332912,1120,4332912,1120,0,16,0,16,32,32,0,3,1650208,2240,1650208,2240,0,16,0,16,64,64,0,3,3548944,1120,3548944,1120,0,16,0,16,32,32,0,3,4332944,1120,4332944,1120,0,16,0,16,32,32,0,3,1650272,2240,1650272,2240,0,16,0,16,64,64,0,3,3548976,1120,3548976,1120,0,16,0,16,32,32,0,3,4332976,1120,4332976,1120,0,16,0,16,32,32,0,3,1650336,2240,1650336,2240,0,16,0,16,64,64,0,3,3549008,1120,3549008,1120,0,16,0,16,32,32,0,3,4333008,1120,4333008,1120,0,16,0,16,32,32,0,3,1650400,2240,1650400,2240,0,16,0,16,64,64,0,3,3549040,1120,3549040,1120,0,16,0,16,32,32,0,3,4333040,1120,4333040,1120,0,16,0,16,32,32,0,3,1650464,2240,1650464,2240,0,16,0,16,64,64,0,3,3549072,1120,3549072,1120,0,16,0,16,32,32,0,3,4333072,1120,4333072,1120,0,16,0,16,32,32,0,3,1650528,2240,1650528,2240,0,16,0,16,64,64,0,3,3549104,1120,3549104,1120,0,16,0,16,32,32,0,3,4333104,1120,4333104,1120,0,16,0,16,32,32,0,3,1650592,2240,1650592,2240,0,16,0,16,64,64,0,3,3549136,1120,3549136,1120,0,16,0,16,32,32,0,3,4333136,1120,4333136,1120,0,16,0,16,32,32,0,3,1650656,2240,1650656,2240,0,16,0,16,64,64,0,3,3549168,1120,3549168,1120,0,16,0,16,32,32,0,3,4333168,1120,4333168,1120,0,16,0,16,32,32,0,3,1792160,2240,1792160,2240,0,16,0,16,64,64,0,3,3584080,1120,3584080,1120,0,16,0,16,32,32,0,3,4368080,1120,4368080,1120,0,16,0,16,32,32,0,3,1792224,2240,1792224,2240,0,16,0,16,64,64,0,3,3584112,1120,3584112,1120,0,16,0,16,32,32,0,3,4368112,1120,4368112,1120,0,16,0,16,32,32,0,3,1792288,2240,1792288,2240,0,16,0,16,64,64,0,3,3584144,1120,3584144,1120,0,16,0,16,32,32,0,3,4368144,1120,4368144,1120,0,16,0,16,32,32,0,3,1792352,2240,1792352,2240,0,16,0,16,64,64,0,3,3584176,1120,3584176,1120,0,16,0,16,32,32,0,3,4368176,1120,4368176,1120,0,16,0,16,32,32,0,3,1792416,2240,1792416,2240,0,16,0,16,64,64,0,3,3584208,1120,3584208,1120,0,16,0,16,32,32,0,3,4368208,1120,4368208,1120,0,16,0,16,32,32,0,3,1792480,2240,1792480,2240,0,16,0,16,64,64,0,3,3584240,1120,3584240,1120,0,16,0,16,32,32,0,3,4368240,1120,4368240,1120,0,16,0,16,32,32,0,3,1792544,2240,1792544,2240,0,16,0,16,64,64,0,3,3584272,1120,3584272,1120,0,16,0,16,32,32,0,3,4368272,1120,4368272,1120,0,16,0,16,32,32,0,3,1792608,2240,1792608,2240,0,16,0,16,64,64,0,3,3584304,1120,3584304,1120,0,16,0,16,32,32,0,3,4368304,1120,4368304,1120,0,16,0,16,32,32,0,3,1792672,2240,1792672,2240,0,16,0,16,64,64,0,3,3584336,1120,3584336,1120,0,16,0,16,32,32,0,3,4368336,1120,4368336,1120,0,16,0,16,32,32,0,3,1792736,2240,1792736,2240,0,16,0,16,64,64,0,3,3584368,1120,3584368,1120,0,16,0,16,32,32,0,3,4368368,1120,4368368,1120,0,16,0,16,32,32,0,3,1792800,2240,1792800,2240,0,16,0,16,64,64,0,3,3584400,1120,3584400,1120,0,16,0,16,32,32,0,3,4368400,1120,4368400,1120,0,16,0,16,32,32,0,3,1792864,2240,1792864,2240,0,16,0,16,64,64,0,3,3584432,1120,3584432,1120,0,16,0,16,32,32,0,3,4368432,1120,4368432,1120,0,16,0,16,32,32,0,3,1792928,2240,1792928,2240,0,16,0,16,64,64,0,3,3584464,1120,3584464,1120,0,16,0,16,32,32,0,3,4368464,1120,4368464,1120,0,16,0,16,32,32,6,3,1792991,2240,1792992,2240,112,16,64,16,64,64,6,3,3584495,1120,3584496,1120,120,16,32,16,32,32,6,3,4368495,1120,4368496,1120,120,16,32,16,32,32,0,3,1793056,2240,1793056,2240,0,16,0,16,32,32,0,3,3584528,1120,3584528,1120,0,16,0,16,16,16,0,3,4368528,1120,4368528,1120,0,16,0,16,16,16,0,3,1793088,2240,1793088,2240,0,16,0,16,32,32,0,3,3584544,1120,3584544,1120,0,16,0,16,16,16,0,3,4368544,1120,4368544,1120,0,16,0,16,16,16,6,3,1864735,2240,1864736,2240,112,16,64,16,16,32,6,3,3602447,1120,3602448,1120,120,16,32,16,8,16,6,3,4386447,1120,4386448,1120,120,16,32,16,8,16,2,3,1864752,2240,1864752,2240,0,16,64,16,16,32,2,3,3602456,1120,3602456,1120,0,16,32,16,8,16,2,3,4386456,1120,4386456,1120,0,16,32,16,8,16,2,3,1864768,2240,1864768,2240,0,16,64,16,32,32,2,3,3602464,1120,3602464,1120,0,16,32,16,16,16,2,3,4386464,1120,4386464,1120,0,16,32,16,16,16,4,3,1793120,2240,1793120,2240,16,16,0,16,32,32,4,3,3584560,1120,3584560,1120,8,16,0,16,16,16,4,3,4368560,1120,4368560,1120,8,16,0,16,16,16,4,3,1793152,2240,1793152,2240,16,16,0,16,32,32,4,3,3584576,1120,3584576,1120,8,16,0,16,16,16,4,3,4368576,1120,4368576,1120,8,16,0,16,16,16,2,3,1864800,2240,1864800,2240,0,16,64,16,32,32,2,3,3602480,1120,3602480,1120,0,16,32,16,16,16,2,3,4386480,1120,4386480,1120,0,16,32,16,16,16,2,3,1864832,2240,1864832,2240,0,16,64,16,16,32,2,3,3602496,1120,3602496,1120,0,16,32,16,8,16,2,3,4386496,1120,4386496,1120,0,16,32,16,8,16,6,3,1864848,2240,1864848,2240,16,16,64,16,16,32,6,3,3602504,1120,3602504,1120,8,16,32,16,8,16,6,3,4386504,1120,4386504,1120,8,16,32,16,8,16,4,0,1793183,2240,1793184,2240,112,16,0,16,64,32,4,0,3584591,1120,3584592,1120,120,16,0,16,32,16,4,0,4368591,1120,4368592,1120,120,16,0,16,32,16,6,3,1864864,2240,1864864,2240,16,16,64,16,64,32,6,3,3602512,1120,3602512,1120,8,16,32,16,32,16,6,3,4386512,1120,4386512,1120,8,16,32,16,32,16,6,3,1793248,2240,1793248,2240,48,16,32,16,64,64,6,3,3584624,1120,3584624,1120,24,16,16,16,32,32,6,3,4368624,1120,4368624,1120,24,16,16,16,32,32,0,3,1793312,2240,1793312,2240,0,16,0,16,64,64,0,3,3584656,1120,3584656,1120,0,16,0,16,32,32,0,3,4368656,1120,4368656,1120,0,16,0,16,32,32,0,3,1793376,2240,1793376,2240,0,16,0,16,64,64,0,3,3584688,1120,3584688,1120,0,16,0,16,32,32,0,3,4368688,1120,4368688,1120,0,16,0,16,32,32,0,3,1793440,2240,1793440,2240,0,16,0,16,64,64,0,3,3584720,1120,3584720,1120,0,16,0,16,32,32,0,3,4368720,1120,4368720,1120,0,16,0,16,32,32,0,3,1793504,2240,1793504,2240,0,16,0,16,64,64,0,3,3584752,1120,3584752,1120,0,16,0,16,32,32,0,3,4368752,1120,4368752,1120,0,16,0,16,32,32,0,3,1793568,2240,1793568,2240,0,16,0,16,64,64,0,3,3584784,1120,3584784,1120,0,16,0,16,32,32,0,3,4368784,1120,4368784,1120,0,16,0,16,32,32,0,3,1793632,2240,1793632,2240,0,16,0,16,64,64,0,3,3584816,1120,3584816,1120,0,16,0,16,32,32,0,3,4368816,1120,4368816,1120,0,16,0,16,32,32,0,3,1793696,2240,1793696,2240,0,16,0,16,64,64,0,3,3584848,1120,3584848,1120,0,16,0,16,32,32,0,3,4368848,1120,4368848,1120,0,16,0,16,32,32,0,3,1793760,2240,1793760,2240,0,16,0,16,64,64,0,3,3584880,1120,3584880,1120,0,16,0,16,32,32,0,3,4368880,1120,4368880,1120,0,16,0,16,32,32,0,3,1793824,2240,1793824,2240,0,16,0,16,64,64,0,3,3584912,1120,3584912,1120,0,16,0,16,32,32,0,3,4368912,1120,4368912,1120,0,16,0,16,32,32,0,3,1793888,2240,1793888,2240,0,16,0,16,64,64,0,3,3584944,1120,3584944,1120,0,16,0,16,32,32,0,3,4368944,1120,4368944,1120,0,16,0,16,32,32,0,3,1793952,2240,1793952,2240,0,16,0,16,64,64,0,3,3584976,1120,3584976,1120,0,16,0,16,32,32,0,3,4368976,1120,4368976,1120,0,16,0,16,32,32,0,3,1794016,2240,1794016,2240,0,16,0,16,64,64,0,3,3585008,1120,3585008,1120,0,16,0,16,32,32,0,3,4369008,1120,4369008,1120,0,16,0,16,32,32,0,3,1935520,2240,1935520,2240,0,16,0,16,64,64,0,3,3619920,1120,3619920,1120,0,16,0,16,32,32,0,3,4403920,1120,4403920,1120,0,16,0,16,32,32,0,3,1935584,2240,1935584,2240,0,16,0,16,64,64,0,3,3619952,1120,3619952,1120,0,16,0,16,32,32,0,3,4403952,1120,4403952,1120,0,16,0,16,32,32,0,3,1935648,2240,1935648,2240,0,16,0,16,64,64,0,3,3619984,1120,3619984,1120,0,16,0,16,32,32,0,3,4403984,1120,4403984,1120,0,16,0,16,32,32,0,3,1935712,2240,1935712,2240,0,16,0,16,64,64,0,3,3620016,1120,3620016,1120,0,16,0,16,32,32,0,3,4404016,1120,4404016,1120,0,16,0,16,32,32,0,3,1935776,2240,1935776,2240,0,16,0,16,64,64,0,3,3620048,1120,3620048,1120,0,16,0,16,32,32,0,3,4404048,1120,4404048,1120,0,16,0,16,32,32,0,3,1935840,2240,1935840,2240,0,16,0,16,64,64,0,3,3620080,1120,3620080,1120,0,16,0,16,32,32,0,3,4404080,1120,4404080,1120,0,16,0,16,32,32,0,3,1935904,2240,1935904,2240,0,16,0,16,64,64,0,3,3620112,1120,3620112,1120,0,16,0,16,32,32,0,3,4404112,1120,4404112,1120,0,16,0,16,32,32,0,3,1935968,2240,1935968,2240,0,16,0,16,64,64,0,3,3620144,1120,3620144,1120,0,16,0,16,32,32,0,3,4404144,1120,4404144,1120,0,16,0,16,32,32,0,3,1936032,2240,1936032,2240,0,16,0,16,64,64,0,3,3620176,1120,3620176,1120,0,16,0,16,32,32,0,3,4404176,1120,4404176,1120,0,16,0,16,32,32,0,3,1936096,2240,1936096,2240,0,16,0,16,32,32,0,3,3620208,1120,3620208,1120,0,16,0,16,16,16,0,3,4404208,1120,4404208,1120,0,16,0,16,16,16,0,3,1936128,2240,1936128,2240,0,16,0,16,32,32,0,3,3620224,1120,3620224,1120,0,16,0,16,16,16,0,3,4404224,1120,4404224,1120,0,16,0,16,16,16,0,3,2007776,2240,2007776,2240,0,16,0,16,16,16,0,3,3638128,1120,3638128,1120,0,16,0,16,8,8,0,3,4422128,1120,4422128,1120,0,16,0,16,8,8,0,3,2007792,2240,2007792,2240,0,16,0,16,16,16,0,3,3638136,1120,3638136,1120,0,16,0,16,8,8,0,3,4422136,1120,4422136,1120,0,16,0,16,8,8,0,3,2043616,2240,2043616,2240,0,16,0,16,16,16,0,3,3647088,1120,3647088,1120,0,16,0,16,8,8,0,3,4431088,1120,4431088,1120,0,16,0,16,8,8,0,3,2043632,2240,2043632,2240,0,16,0,16,8,16,0,3,3647096,1120,3647096,1120,0,16,0,16,4,8,0,3,4431096,1120,4431096,1120,0,16,0,16,4,8,6,3,2043639,2240,2043640,2240,48,16,112,16,8,16,6,3,3647099,1120,3647100,1120,88,16,56,16,4,8,6,3,4431099,1120,4431100,1120,88,16,56,16,4,8,0,3,2007808,2240,2007808,2240,0,16,0,16,32,32,0,3,3638144,1120,3638144,1120,0,16,0,16,16,16,0,3,4422144,1120,4422144,1120,0,16,0,16,16,16,0,3,1936160,2240,1936160,2240,0,16,0,16,64,64,0,3,3620240,1120,3620240,1120,0,16,0,16,32,32,0,3,4404240,1120,4404240,1120,0,16,0,16,32,32,0,3,1936224,2240,1936224,2240,0,16,0,16,64,64,0,3,3620272,1120,3620272,1120,0,16,0,16,32,32,0,3,4404272,1120,4404272,1120,0,16,0,16,32,32,0,3,1936288,2240,1936288,2240,0,16,0,16,64,64,0,3,3620304,1120,3620304,1120,0,16,0,16,32,32,0,3,4404304,1120,4404304,1120,0,16,0,16,32,32,6,3,1936351,2240,1936352,2240,112,16,64,16,64,64,6,3,3620335,1120,3620336,1120,120,16,32,16,32,32,6,3,4404335,1120,4404336,1120,120,16,32,16,32,32,2,3,1936416,2240,1936416,2240,0,16,64,16,32,16,2,3,3620368,1120,3620368,1120,0,16,32,16,16,8,2,3,4404368,1120,4404368,1120,0,16,32,16,16,8,2,3,1972256,2240,1972256,2240,128,16,192,16,32,16,2,3,3629328,1120,3629328,1120,128,16,160,16,16,8,2,3,4413328,1120,4413328,1120,128,16,160,16,16,8,2,3,1936448,2240,1936448,2240,0,16,64,16,16,16,2,3,3620384,1120,3620384,1120,0,16,32,16,8,8,2,3,4404384,1120,4404384,1120,0,16,32,16,8,8,2,3,1936464,2240,1936464,2240,0,16,64,16,16,16,2,3,3620392,1120,3620392,1120,0,16,32,16,8,8,2,3,4404392,1120,4404392,1120,0,16,32,16,8,8,2,3,1972288,2240,1972288,2240,0,16,64,16,16,16,2,3,3629344,1120,3629344,1120,0,16,32,16,8,8,2,3,4413344,1120,4413344,1120,0,16,32,16,8,8,0,3,1972304,2240,1972304,2240,0,16,0,16,16,16,0,3,3629352,1120,3629352,1120,0,16,0,16,8,8,0,3,4413352,1120,4413352,1120,0,16,0,16,8,8,2,3,2008096,2240,2008096,2240,0,16,64,16,32,32,2,3,3638288,1120,3638288,1120,0,16,32,16,16,16,2,3,4422288,1120,4422288,1120,0,16,32,16,16,16,2,3,2008128,2240,2008128,2240,0,16,64,16,32,32,2,3,3638304,1120,3638304,1120,0,16,32,16,16,16,2,3,4422304,1120,4422304,1120,0,16,32,16,16,16,2,3,1936480,2240,1936480,2240,0,16,64,16,32,16,2,3,3620400,1120,3620400,1120,0,16,32,16,16,8,2,3,4404400,1120,4404400,1120,0,16,32,16,16,8,2,3,1972320,2240,1972320,2240,128,16,192,16,32,16,2,3,3629360,1120,3629360,1120,128,16,160,16,16,8,2,3,4413360,1120,4413360,1120,128,16,160,16,16,8,2,3,1936512,2240,1936512,2240,0,16,64,16,16,16,2,3,3620416,1120,3620416,1120,0,16,32,16,8,8,2,3,4404416,1120,4404416,1120,0,16,32,16,8,8,2,3,1936528,2240,1936528,2240,0,16,64,16,16,8,2,3,3620424,1120,3620424,1120,0,16,32,16,8,4,2,3,4404424,1120,4404424,1120,0,16,32,16,8,4,6,3,1954448,2240,1954448,2240,288,16,336,16,16,8,6,3,3624904,1120,3624904,1120,272,16,296,16,8,4,6,3,4408904,1120,4408904,1120,272,16,296,16,8,4,2,3,1972352,2240,1972352,2240,128,16,192,16,16,16,2,3,3629376,1120,3629376,1120,128,16,160,16,8,8,2,3,4413376,1120,4413376,1120,128,16,160,16,8,8,6,3,1972368,2240,1972368,2240,160,16,208,16,16,16,6,3,3629384,1120,3629384,1120,144,16,168,16,8,8,6,3,4413384,1120,4413384,1120,144,16,168,16,8,8,2,3,2008160,2240,2008160,2240,0,16,64,16,32,32,2,3,3638320,1120,3638320,1120,0,16,32,16,16,16,2,3,4422320,1120,4422320,1120,0,16,32,16,16,16,2,3,2008192,2240,2008192,2240,0,16,64,16,32,32,2,3,3638336,1120,3638336,1120,0,16,32,16,16,16,2,3,4422336,1120,4422336,1120,0,16,32,16,16,16,6,3,1936544,2240,1936544,2240,16,16,64,16,8,8,6,3,3620432,1120,3620432,1120,8,16,32,16,4,4,6,3,4404432,1120,4404432,1120,8,16,32,16,4,4,6,3,1936552,2240,1936552,2240,16,16,64,16,8,8,6,3,3620436,1120,3620436,1120,8,16,32,16,4,4,6,3,4404436,1120,4404436,1120,8,16,32,16,4,4,6,3,1954464,2240,1954464,2240,288,16,336,16,8,8,6,3,3624912,1120,3624912,1120,272,16,296,16,4,4,6,3,4408912,1120,4408912,1120,272,16,296,16,4,4,6,3,1954472,2240,1954472,2240,16,16,64,16,8,8,6,3,3624916,1120,3624916,1120,8,16,32,16,4,4,6,3,4408916,1120,4408916,1120,8,16,32,16,4,4,6,3,1936560,2240,1936560,2240,16,16,64,16,16,16,6,3,3620440,1120,3620440,1120,8,16,32,16,8,8,6,3,4404440,1120,4404440,1120,8,16,32,16,8,8,6,3,1972384,2240,1972384,2240,160,16,208,16,16,16,6,3,3629392,1120,3629392,1120,144,16,168,16,8,8,6,3,4413392,1120,4413392,1120,144,16,168,16,8,8,6,3,1972400,2240,1972400,2240,16,16,64,16,16,16,6,3,3629400,1120,3629400,1120,8,16,32,16,8,8,6,3,4413400,1120,4413400,1120,8,16,32,16,8,8,6,3,1936576,2240,1936576,2240,16,16,64,16,32,32,6,3,3620448,1120,3620448,1120,8,16,32,16,16,16,6,3,4404448,1120,4404448,1120,8,16,32,16,16,16,6,3,2008224,2240,2008224,2240,32,16,80,16,32,32,6,3,3638352,1120,3638352,1120,16,16,40,16,16,16,6,3,4422352,1120,4422352,1120,16,16,40,16,16,16,6,3,2008256,2240,2008256,2240,16,16,64,16,32,32,6,3,3638368,1120,3638368,1120,8,16,32,16,16,16,6,3,4422368,1120,4422368,1120,8,16,32,16,16,16,6,3,1936608,2240,1936608,2240,48,16,32,16,64,64,6,3,3620464,1120,3620464,1120,24,16,16,16,32,32,6,3,4404464,1120,4404464,1120,24,16,16,16,32,32,0,3,1936672,2240,1936672,2240,0,16,0,16,64,64,0,3,3620496,1120,3620496,1120,0,16,0,16,32,32,0,3,4404496,1120,4404496,1120,0,16,0,16,32,32,0,3,1936736,2240,1936736,2240,0,16,0,16,64,64,0,3,3620528,1120,3620528,1120,0,16,0,16,32,32,0,3,4404528,1120,4404528,1120,0,16,0,16,32,32,0,3,1936800,2240,1936800,2240,0,16,0,16,64,64,0,3,3620560,1120,3620560,1120,0,16,0,16,32,32,0,3,4404560,1120,4404560,1120,0,16,0,16,32,32,0,3,1936864,2240,1936864,2240,0,16,0,16,64,64,0,3,3620592,1120,3620592,1120,0,16,0,16,32,32,0,3,4404592,1120,4404592,1120,0,16,0,16,32,32,0,3,1936928,2240,1936928,2240,0,16,0,16,64,64,0,3,3620624,1120,3620624,1120,0,16,0,16,32,32,0,3,4404624,1120,4404624,1120,0,16,0,16,32,32,0,3,1936992,2240,1936992,2240,0,16,0,16,64,64,0,3,3620656,1120,3620656,1120,0,16,0,16,32,32,0,3,4404656,1120,4404656,1120,0,16,0,16,32,32,0,3,1937056,2240,1937056,2240,0,16,0,16,64,64,0,3,3620688,1120,3620688,1120,0,16,0,16,32,32,0,3,4404688,1120,4404688,1120,0,16,0,16,32,32,0,3,1937120,2240,1937120,2240,0,16,0,16,64,64,0,3,3620720,1120,3620720,1120,0,16,0,16,32,32,0,3,4404720,1120,4404720,1120,0,16,0,16,32,32,0,3,1937184,2240,1937184,2240,0,16,0,16,64,64,0,3,3620752,1120,3620752,1120,0,16,0,16,32,32,0,3,4404752,1120,4404752,1120,0,16,0,16,32,32,0,3,1937248,2240,1937248,2240,0,16,0,16,64,64,0,3,3620784,1120,3620784,1120,0,16,0,16,32,32,0,3,4404784,1120,4404784,1120,0,16,0,16,32,32,0,3,1937312,2240,1937312,2240,0,16,0,16,64,64,0,3,3620816,1120,3620816,1120,0,16,0,16,32,32,0,3,4404816,1120,4404816,1120,0,16,0,16,32,32,0,3,1937376,2240,1937376,2240,0,16,0,16,64,64,0,3,3620848,1120,3620848,1120,0,16,0,16,32,32,0,3,4404848,1120,4404848,1120,0,16,0,16,32,32,0,3,2078880,2240,2078880,2240,0,16,0,16,64,64,0,3,3655760,1120,3655760,1120,0,16,0,16,32,32,0,3,4439760,1120,4439760,1120,0,16,0,16,32,32,0,3,2078944,2240,2078944,2240,0,16,0,16,64,64,0,3,3655792,1120,3655792,1120,0,16,0,16,32,32,0,3,4439792,1120,4439792,1120,0,16,0,16,32,32,0,3,2079008,2240,2079008,2240,0,16,0,16,64,64,0,3,3655824,1120,3655824,1120,0,16,0,16,32,32,0,3,4439824,1120,4439824,1120,0,16,0,16,32,32,0,3,2079072,2240,2079072,2240,0,16,0,16,64,64,0,3,3655856,1120,3655856,1120,0,16,0,16,32,32,0,3,4439856,1120,4439856,1120,0,16,0,16,32,32,0,3,2079136,2240,2079136,2240,0,16,0,16,64,64,0,3,3655888,1120,3655888,1120,0,16,0,16,32,32,0,3,4439888,1120,4439888,1120,0,16,0,16,32,32,0,3,2079200,2240,2079200,2240,0,16,0,16,64,64,0,3,3655920,1120,3655920,1120,0,16,0,16,32,32,0,3,4439920,1120,4439920,1120,0,16,0,16,32,32,6,3,2079263,2240,2079264,2240,272,16,352,16,64,64,6,3,3655951,1120,3655952,1120,328,16,304,16,32,32,6,3,4439951,1120,4439952,1120,328,16,304,16,32,32,0,3,2079328,2240,2079328,2240,0,16,0,16,16,16,0,3,3655984,1120,3655984,1120,0,16,0,16,8,8,0,3,4439984,1120,4439984,1120,0,16,0,16,8,8,6,3,2079343,2240,2079344,2240,32,16,80,16,16,16,6,3,3655991,1120,3655992,1120,80,16,40,16,8,8,6,3,4439991,1120,4439992,1120,80,16,40,16,8,8,6,3,2115167,2240,2115168,2240,32,16,96,16,8,16,6,3,3664943,1120,3664944,1120,80,16,48,16,4,8,6,3,4448943,1120,4448944,1120,80,16,48,16,4,8,6,3,2115175,2240,2115176,2240,32,16,96,16,8,16,6,3,3664947,1120,3664948,1120,80,16,48,16,4,8,6,3,4448947,1120,4448948,1120,80,16,48,16,4,8,6,3,2115183,2240,2115184,2240,32,16,80,16,16,16,6,3,3664951,1120,3664952,1120,80,16,40,16,8,8,6,3,4448951,1120,4448952,1120,80,16,40,16,8,8,6,3,2079359,2240,2079360,2240,48,16,80,16,16,32,6,3,3655999,1120,3656000,1120,88,16,40,16,8,16,6,3,4439999,1120,4440000,1120,88,16,40,16,8,16,6,3,2079375,2240,2079376,2240,48,16,80,16,16,32,6,3,3656007,1120,3656008,1120,88,16,40,16,8,16,6,3,4440007,1120,4440008,1120,88,16,40,16,8,16,6,3,2151007,2240,2151008,2240,32,16,96,16,32,32,6,3,3673903,1120,3673904,1120,80,16,48,16,16,16,6,3,4457903,1120,4457904,1120,80,16,48,16,16,16,6,3,2151039,2240,2151040,2240,48,16,96,16,32,32,6,3,3673919,1120,3673920,1120,88,16,48,16,16,16,6,3,4457919,1120,4457920,1120,88,16,48,16,16,16,6,3,2079391,2240,2079392,2240,48,16,80,16,32,64,6,3,3656015,1120,3656016,1120,88,16,40,16,16,32,6,3,4440015,1120,4440016,1120,88,16,40,16,16,32,6,3,2079423,2240,2079424,2240,48,16,96,16,32,64,6,3,3656031,1120,3656032,1120,88,16,48,16,16,32,6,3,4440031,1120,4440032,1120,88,16,48,16,16,32,6,3,2079455,2240,2079456,2240,64,16,96,16,16,32,6,3,3656047,1120,3656048,1120,96,16,48,16,8,16,6,3,4440047,1120,4440048,1120,96,16,48,16,8,16,6,3,2079471,2240,2079472,2240,64,16,80,16,16,32,6,3,3656055,1120,3656056,1120,96,16,40,16,8,16,6,3,4440055,1120,4440056,1120,96,16,40,16,8,16,0,3,2079488,2240,2079488,2240,0,16,0,16,16,16,0,3,3656064,1120,3656064,1120,0,16,0,16,8,8,0,3,4440064,1120,4440064,1120,0,16,0,16,8,8,6,3,2079503,2240,2079504,2240,320,16,336,16,16,16,6,3,3656071,1120,3656072,1120,352,16,296,16,8,8,6,3,4440071,1120,4440072,1120,352,16,296,16,8,8,0,3,2115328,2240,2115328,2240,0,16,0,16,16,16,0,3,3665024,1120,3665024,1120,0,16,0,16,8,8,0,3,4449024,1120,4449024,1120,0,16,0,16,8,8,6,3,2151135,2240,2151136,2240,64,16,96,16,32,32,6,3,3673967,1120,3673968,1120,96,16,48,16,16,16,6,3,4457967,1120,4457968,1120,96,16,48,16,16,16,0,3,2151168,2240,2151168,2240,0,16,0,16,16,16,0,3,3673984,1120,3673984,1120,0,16,0,16,8,8,0,3,4457984,1120,4457984,1120,0,16,0,16,8,8,0,3,2187008,2240,2187008,2240,0,16,0,16,16,16,0,3,3682944,1120,3682944,1120,0,16,0,16,8,8,0,3,4466944,1120,4466944,1120,0,16,0,16,8,8,6,3,2187023,2240,2187024,2240,64,16,96,16,16,16,6,3,3682951,1120,3682952,1120,96,16,48,16,8,8,6,3,4466951,1120,4466952,1120,96,16,48,16,8,8,6,3,2079519,2240,2079520,2240,320,16,336,16,32,32,6,3,3656079,1120,3656080,1120,352,16,296,16,16,16,6,3,4440079,1120,4440080,1120,352,16,296,16,16,16,6,3,2079551,2240,2079552,2240,64,16,80,16,16,16,6,3,3656095,1120,3656096,1120,96,16,40,16,8,8,6,3,4440095,1120,4440096,1120,96,16,40,16,8,8,0,3,2079568,2240,2079568,2240,0,16,0,16,16,16,0,3,3656104,1120,3656104,1120,0,16,0,16,8,8,0,3,4440104,1120,4440104,1120,0,16,0,16,8,8,6,3,2115391,2240,2115392,2240,64,16,80,16,8,16,6,3,3665055,1120,3665056,1120,96,16,40,16,4,8,6,3,4449055,1120,4449056,1120,96,16,40,16,4,8,6,3,2115399,2240,2115400,2240,80,16,80,16,8,16,6,3,3665059,1120,3665060,1120,104,16,40,16,4,8,6,3,4449059,1120,4449060,1120,104,16,40,16,4,8,0,3,2115408,2240,2115408,2240,0,16,0,16,16,16,0,3,3665064,1120,3665064,1120,0,16,0,16,8,8,0,3,4449064,1120,4449064,1120,0,16,0,16,8,8,6,3,2151199,2240,2151200,2240,64,16,80,16,32,32,6,3,3673999,1120,3674000,1120,96,16,40,16,16,16,6,3,4457999,1120,4458000,1120,96,16,40,16,16,16,6,3,2151231,2240,2151232,2240,80,16,96,16,32,32,6,3,3674015,1120,3674016,1120,104,16,48,16,16,16,6,3,4458015,1120,4458016,1120,104,16,48,16,16,16,6,3,2079583,2240,2079584,2240,80,16,80,16,64,64,6,3,3656111,1120,3656112,1120,104,16,40,16,32,32,6,3,4440111,1120,4440112,1120,104,16,40,16,32,32,6,3,2079647,2240,2079648,2240,96,16,80,16,32,16,6,3,3656143,1120,3656144,1120,112,16,40,16,16,8,6,3,4440143,1120,4440144,1120,112,16,40,16,16,8,6,3,2115487,2240,2115488,2240,96,16,96,16,32,16,6,3,3665103,1120,3665104,1120,112,16,48,16,16,8,6,3,4449103,1120,4449104,1120,112,16,48,16,16,8,6,3,2079679,2240,2079680,2240,96,16,80,16,32,16,6,3,3656159,1120,3656160,1120,112,16,40,16,16,8,6,3,4440159,1120,4440160,1120,112,16,40,16,16,8,6,3,2115519,2240,2115520,2240,96,16,96,16,32,16,6,3,3665119,1120,3665120,1120,112,16,48,16,16,8,6,3,4449119,1120,4449120,1120,112,16,48,16,16,8,6,3,2151327,2240,2151328,2240,96,16,96,16,32,32,6,3,3674063,1120,3674064,1120,112,16,48,16,16,16,6,3,4458063,1120,4458064,1120,112,16,48,16,16,16,6,3,2151359,2240,2151360,2240,96,16,96,16,32,32,6,3,3674079,1120,3674080,1120,112,16,48,16,16,16,6,3,4458079,1120,4458080,1120,112,16,48,16,16,16,6,3,2079711,2240,2079712,2240,112,16,64,16,32,32,6,3,3656175,1120,3656176,1120,120,16,32,16,16,16,6,3,4440175,1120,4440176,1120,120,16,32,16,16,16,6,3,2079743,2240,2079744,2240,112,16,64,16,32,16,6,3,3656191,1120,3656192,1120,120,16,32,16,16,8,6,3,4440191,1120,4440192,1120,120,16,32,16,16,8,2,3,2115584,2240,2115584,2240,0,16,96,16,32,16,2,3,3665152,1120,3665152,1120,0,16,48,16,16,8,2,3,4449152,1120,4449152,1120,0,16,48,16,16,8,6,3,2151391,2240,2151392,2240,112,16,80,16,32,32,6,3,3674095,1120,3674096,1120,120,16,40,16,16,16,6,3,4458095,1120,4458096,1120,120,16,40,16,16,16,2,3,2151424,2240,2151424,2240,0,16,96,16,32,32,2,3,3674112,1120,3674112,1120,0,16,48,16,16,16,2,3,4458112,1120,4458112,1120,0,16,48,16,16,16,2,3,2079776,2240,2079776,2240,0,16,80,16,64,32,2,3,3656208,1120,3656208,1120,0,16,40,16,32,16,2,3,4440208,1120,4440208,1120,0,16,40,16,32,16,2,3,2151456,2240,2151456,2240,0,16,96,16,64,32,2,3,3674128,1120,3674128,1120,0,16,48,16,32,16,2,3,4458128,1120,4458128,1120,0,16,48,16,32,16,2,3,2079840,2240,2079840,2240,0,16,80,16,32,64,2,3,3656240,1120,3656240,1120,0,16,40,16,16,32,2,3,4440240,1120,4440240,1120,0,16,40,16,16,32,2,3,2079872,2240,2079872,2240,0,16,96,16,32,64,2,3,3656256,1120,3656256,1120,0,16,48,16,16,32,2,3,4440256,1120,4440256,1120,0,16,48,16,16,32,6,3,2079904,2240,2079904,2240,16,16,80,16,32,32,6,3,3656272,1120,3656272,1120,8,16,40,16,16,16,6,3,4440272,1120,4440272,1120,8,16,40,16,16,16,6,3,2079936,2240,2079936,2240,32,16,80,16,32,32,6,3,3656288,1120,3656288,1120,16,16,40,16,16,16,6,3,4440288,1120,4440288,1120,16,16,40,16,16,16,6,3,2151584,2240,2151584,2240,16,16,96,16,32,32,6,3,3674192,1120,3674192,1120,8,16,48,16,16,16,6,3,4458192,1120,4458192,1120,8,16,48,16,16,16,6,3,2151616,2240,2151616,2240,32,16,96,16,32,32,6,3,3674208,1120,3674208,1120,16,16,48,16,16,16,6,3,4458208,1120,4458208,1120,16,16,48,16,16,16,6,3,2079968,2240,2079968,2240,16,16,96,16,32,64,6,3,3656304,1120,3656304,1120,8,16,48,16,16,32,6,3,4440304,1120,4440304,1120,8,16,48,16,16,32,6,3,2080000,2240,2080000,2240,32,16,96,16,32,64,6,3,3656320,1120,3656320,1120,16,16,48,16,16,32,6,3,4440320,1120,4440320,1120,16,16,48,16,16,32,6,3,2080032,2240,2080032,2240,32,16,96,16,16,16,6,3,3656336,1120,3656336,1120,16,16,48,16,8,8,6,3,4440336,1120,4440336,1120,16,16,48,16,8,8,6,3,2080048,2240,2080048,2240,32,16,96,16,16,16,6,3,3656344,1120,3656344,1120,16,16,48,16,8,8,6,3,4440344,1120,4440344,1120,16,16,48,16,8,8,6,3,2115872,2240,2115872,2240,32,16,64,16,16,16,6,3,3665296,1120,3665296,1120,16,16,32,16,8,8,6,3,4449296,1120,4449296,1120,16,16,32,16,8,8,6,3,2115888,2240,2115888,2240,48,16,96,16,8,8,6,3,3665304,1120,3665304,1120,24,16,48,16,4,4,6,3,4449304,1120,4449304,1120,24,16,48,16,4,4,0,3,2115896,2240,2115896,2240,0,16,0,16,8,8,0,3,3665308,1120,3665308,1120,0,16,0,16,4,4,0,3,4449308,1120,4449308,1120,0,16,0,16,4,4,6,3,2133808,2240,2133808,2240,48,16,96,16,8,8,6,3,3669784,1120,3669784,1120,24,16,48,16,4,4,6,3,4453784,1120,4453784,1120,24,16,48,16,4,4,0,3,2133816,2240,2133816,2240,0,16,0,16,8,8,0,3,3669788,1120,3669788,1120,0,16,0,16,4,4,0,3,4453788,1120,4453788,1120,0,16,0,16,4,4,6,3,2080064,2240,2080064,2240,48,16,80,16,32,32,6,3,3656352,1120,3656352,1120,24,16,40,16,16,16,6,3,4440352,1120,4440352,1120,24,16,40,16,16,16,6,3,2151712,2240,2151712,2240,32,16,64,16,16,16,6,3,3674256,1120,3674256,1120,16,16,32,16,8,8,6,3,4458256,1120,4458256,1120,16,16,32,16,8,8,6,3,2151728,2240,2151728,2240,48,16,96,16,8,8,6,3,3674264,1120,3674264,1120,24,16,48,16,4,4,6,3,4458264,1120,4458264,1120,24,16,48,16,4,4,0,3,2151736,2240,2151736,2240,0,16,0,16,8,8,0,3,3674268,1120,3674268,1120,0,16,0,16,4,4,0,3,4458268,1120,4458268,1120,0,16,0,16,4,4,6,3,2169648,2240,2169648,2240,48,16,96,16,8,8,6,3,3678744,1120,3678744,1120,24,16,48,16,4,4,6,3,4462744,1120,4462744,1120,24,16,48,16,4,4,0,3,2169656,2240,2169656,2240,0,16,0,16,8,8,0,3,3678748,1120,3678748,1120,0,16,0,16,4,4,0,3,4462748,1120,4462748,1120,0,16,0,16,4,4,6,3,2187552,2240,2187552,2240,32,16,80,16,16,16,6,3,3683216,1120,3683216,1120,16,16,40,16,8,8,6,3,4467216,1120,4467216,1120,16,16,40,16,8,8,6,3,2187568,2240,2187568,2240,48,16,96,16,16,16,6,3,3683224,1120,3683224,1120,24,16,48,16,8,8,6,3,4467224,1120,4467224,1120,24,16,48,16,8,8,6,3,2151744,2240,2151744,2240,48,16,80,16,32,32,6,3,3674272,1120,3674272,1120,24,16,40,16,16,16,6,3,4458272,1120,4458272,1120,24,16,40,16,16,16,6,3,2080096,2240,2080096,2240,48,16,96,16,16,32,6,3,3656368,1120,3656368,1120,24,16,48,16,8,16,6,3,4440368,1120,4440368,1120,24,16,48,16,8,16,6,3,2080112,2240,2080112,2240,48,16,96,16,16,32,6,3,3656376,1120,3656376,1120,24,16,48,16,8,16,6,3,4440376,1120,4440376,1120,24,16,48,16,8,16,6,3,2080128,2240,2080128,2240,64,16,96,16,16,32,6,3,3656384,1120,3656384,1120,32,16,48,16,8,16,6,3,4440384,1120,4440384,1120,32,16,48,16,8,16,6,3,2080144,2240,2080144,2240,64,16,96,16,16,32,6,3,3656392,1120,3656392,1120,32,16,48,16,8,16,6,3,4440392,1120,4440392,1120,32,16,48,16,8,16,6,3,2151776,2240,2151776,2240,48,16,96,16,16,32,6,3,3674288,1120,3674288,1120,24,16,48,16,8,16,6,3,4458288,1120,4458288,1120,24,16,48,16,8,16,6,3,2151792,2240,2151792,2240,64,16,96,16,16,32,6,3,3674296,1120,3674296,1120,32,16,48,16,8,16,6,3,4458296,1120,4458296,1120,32,16,48,16,8,16,6,3,2151808,2240,2151808,2240,64,16,96,16,4,4,6,3,2151812,2240,2151812,2240,48,16,96,16,4,4,6,3,2160768,2240,2160768,2240,64,16,96,16,4,4,6,3,2160772,2240,2160772,2240,48,16,96,16,4,4,6,3,3674304,1120,3674304,1120,32,16,48,16,4,4,6,3,4458304,1120,4458304,1120,32,16,48,16,4,4,6,3,2151816,2240,2151816,2240,64,16,96,16,8,8,6,3,3674308,1120,3674308,1120,32,16,48,16,4,4,6,3,4458308,1120,4458308,1120,32,16,48,16,4,4,6,3,2169728,2240,2169728,2240,48,16,96,16,8,8,6,3,3678784,1120,3678784,1120,24,16,48,16,4,4,6,3,4462784,1120,4462784,1120,24,16,48,16,4,4,6,3,2169736,2240,2169736,2240,64,16,96,16,8,8,6,3,3678788,1120,3678788,1120,32,16,48,16,4,4,6,3,4462788,1120,4462788,1120,32,16,48,16,4,4,6,3,2151824,2240,2151824,2240,64,16,96,16,16,16,6,3,3674312,1120,3674312,1120,32,16,48,16,8,8,6,3,4458312,1120,4458312,1120,32,16,48,16,8,8,6,3,2187648,2240,2187648,2240,64,16,96,16,16,16,6,3,3683264,1120,3683264,1120,32,16,48,16,8,8,6,3,4467264,1120,4467264,1120,32,16,48,16,8,8,6,3,2187664,2240,2187664,2240,64,16,96,16,16,16,6,3,3683272,1120,3683272,1120,32,16,48,16,8,8,6,3,4467272,1120,4467272,1120,32,16,48,16,8,8,6,3,2080160,2240,2080160,2240,64,16,96,16,32,32,6,3,3656400,1120,3656400,1120,32,16,48,16,16,16,6,3,4440400,1120,4440400,1120,32,16,48,16,16,16,6,3,2080192,2240,2080192,2240,80,16,80,16,32,16,6,3,3656416,1120,3656416,1120,40,16,40,16,16,8,6,3,4440416,1120,4440416,1120,40,16,40,16,16,8,6,3,2116032,2240,2116032,2240,80,16,96,16,32,16,6,3,3665376,1120,3665376,1120,40,16,48,16,16,8,6,3,4449376,1120,4449376,1120,40,16,48,16,16,8,6,3,2151840,2240,2151840,2240,64,16,96,16,32,32,6,3,3674320,1120,3674320,1120,32,16,48,16,16,16,6,3,4458320,1120,4458320,1120,32,16,48,16,16,16,6,3,2151872,2240,2151872,2240,80,16,96,16,16,8,6,3,3674336,1120,3674336,1120,40,16,48,16,8,4,6,3,4458336,1120,4458336,1120,40,16,48,16,8,4,6,0,2167551,2240,2169792,2240,48,16,32,16,16,8,6,0,3677695,1120,3678816,1120,88,16,80,16,8,4,6,0,4461695,1120,4462816,1120,88,16,80,16,8,4,6,3,2151888,2240,2151888,2240,80,16,96,16,16,16,6,3,3674344,1120,3674344,1120,40,16,48,16,8,8,6,3,4458344,1120,4458344,1120,40,16,48,16,8,8,6,3,2187712,2240,2187712,2240,64,16,96,16,16,16,6,3,3683296,1120,3683296,1120,32,16,48,16,8,8,6,3,4467296,1120,4467296,1120,32,16,48,16,8,8,6,3,2187728,2240,2187728,2240,80,16,96,16,16,16,6,3,3683304,1120,3683304,1120,40,16,48,16,8,8,6,3,4467304,1120,4467304,1120,40,16,48,16,8,8,6,3,2080224,2240,2080224,2240,336,16,336,16,32,64,6,3,3656432,1120,3656432,1120,296,16,296,16,16,32,6,3,4440432,1120,4440432,1120,296,16,296,16,16,32,6,3,2080256,2240,2080256,2240,96,16,80,16,32,64,6,3,3656448,1120,3656448,1120,48,16,40,16,16,32,6,3,4440448,1120,4440448,1120,48,16,40,16,16,32,6,3,2080288,2240,2080288,2240,96,16,80,16,64,64,6,3,3656464,1120,3656464,1120,48,16,40,16,32,32,6,3,4440464,1120,4440464,1120,48,16,40,16,32,32,6,3,2080352,2240,2080352,2240,96,16,80,16,64,32,6,3,3656496,1120,3656496,1120,48,16,40,16,32,16,6,3,4440496,1120,4440496,1120,48,16,40,16,32,16,6,3,2152032,2240,2152032,2240,96,16,96,16,64,32,6,3,3674416,1120,3674416,1120,48,16,48,16,32,16,6,3,4458416,1120,4458416,1120,48,16,48,16,32,16,0,3,2080416,2240,2080416,2240,0,16,0,16,64,64,0,3,3656528,1120,3656528,1120,0,16,0,16,32,32,0,3,4440528,1120,4440528,1120,0,16,0,16,32,32,0,3,2080480,2240,2080480,2240,0,16,0,16,64,64,0,3,3656560,1120,3656560,1120,0,16,0,16,32,32,0,3,4440560,1120,4440560,1120,0,16,0,16,32,32,0,3,2080544,2240,2080544,2240,0,16,0,16,64,64,0,3,3656592,1120,3656592,1120,0,16,0,16,32,32,0,3,4440592,1120,4440592,1120,0,16,0,16,32,32,0,3,2080608,2240,2080608,2240,0,16,0,16,64,64,0,3,3656624,1120,3656624,1120,0,16,0,16,32,32,0,3,4440624,1120,4440624,1120,0,16,0,16,32,32,0,3,2080672,2240,2080672,2240,0,16,0,16,64,64,0,3,3656656,1120,3656656,1120,0,16,0,16,32,32,0,3,4440656,1120,4440656,1120,0,16,0,16,32,32,0,3,2080736,2240,2080736,2240,0,16,0,16,64,64,0,3,3656688,1120,3656688,1120,0,16,0,16,32,32,0,3,4440688,1120,4440688,1120,0,16,0,16,32,32,0,3,2222240,2240,2222240,2240,0,16,0,16,64,64,0,3,3691600,1120,3691600,1120,0,16,0,16,32,32,0,3,4475600,1120,4475600,1120,0,16,0,16,32,32,0,3,2222304,2240,2222304,2240,0,16,0,16,64,64,0,3,3691632,1120,3691632,1120,0,16,0,16,32,32,0,3,4475632,1120,4475632,1120,0,16,0,16,32,32,0,3,2222368,2240,2222368,2240,0,16,0,16,64,64,0,3,3691664,1120,3691664,1120,0,16,0,16,32,32,0,3,4475664,1120,4475664,1120,0,16,0,16,32,32,0,3,2222432,2240,2222432,2240,0,16,0,16,64,64,0,3,3691696,1120,3691696,1120,0,16,0,16,32,32,0,3,4475696,1120,4475696,1120,0,16,0,16,32,32,0,3,2222496,2240,2222496,2240,0,16,0,16,64,64,0,3,3691728,1120,3691728,1120,0,16,0,16,32,32,0,3,4475728,1120,4475728,1120,0,16,0,16,32,32,0,3,2222560,2240,2222560,2240,0,16,0,16,64,64,0,3,3691760,1120,3691760,1120,0,16,0,16,32,32,0,3,4475760,1120,4475760,1120,0,16,0,16,32,32,6,3,2222623,2240,2222624,2240,16,16,96,16,64,64,6,3,3691791,1120,3691792,1120,72,16,48,16,32,32,6,3,4475791,1120,4475792,1120,72,16,48,16,32,32,6,3,2222687,2240,2222688,2240,32,16,96,16,64,64,6,3,3691823,1120,3691824,1120,80,16,48,16,32,32,6,3,4475823,1120,4475824,1120,80,16,48,16,32,32,6,3,2222751,2240,2222752,2240,48,16,80,16,64,64,6,3,3691855,1120,3691856,1120,88,16,40,16,32,32,6,3,4475855,1120,4475856,1120,88,16,40,16,32,32,6,3,2222815,2240,2222816,2240,64,16,96,16,64,64,6,3,3691887,1120,3691888,1120,96,16,48,16,32,32,6,3,4475887,1120,4475888,1120,96,16,48,16,32,32,6,3,2222879,2240,2222880,2240,64,16,80,16,64,64,6,3,3691919,1120,3691920,1120,96,16,40,16,32,32,6,3,4475919,1120,4475920,1120,96,16,40,16,32,32,6,3,2222943,2240,2222944,2240,80,16,80,16,64,64,6,3,3691951,1120,3691952,1120,104,16,40,16,32,32,6,3,4475951,1120,4475952,1120,104,16,40,16,32,32,6,3,2223007,2240,2223008,2240,112,16,96,16,64,64,6,3,3691983,1120,3691984,1120,120,16,48,16,32,32,6,3,4475983,1120,4475984,1120,120,16,48,16,32,32,6,3,2223071,2240,2223072,2240,112,16,112,16,32,64,6,3,3692015,1120,3692016,1120,120,16,56,16,16,32,6,3,4476015,1120,4476016,1120,120,16,56,16,16,32,6,3,2223103,2240,2223104,2240,112,16,96,16,32,64,6,3,3692031,1120,3692032,1120,120,16,48,16,16,32,6,3,4476031,1120,4476032,1120,120,16,48,16,16,32,2,3,2223136,2240,2223136,2240,0,16,96,16,64,64,2,3,3692048,1120,3692048,1120,0,16,48,16,32,32,2,3,4476048,1120,4476048,1120,0,16,48,16,32,32,2,3,2223200,2240,2223200,2240,0,16,96,16,64,64,2,3,3692080,1120,3692080,1120,0,16,48,16,32,32,2,3,4476080,1120,4476080,1120,0,16,48,16,32,32,6,3,2223264,2240,2223264,2240,32,16,112,16,64,64,6,3,3692112,1120,3692112,1120,16,16,56,16,32,32,6,3,4476112,1120,4476112,1120,16,16,56,16,32,32,6,3,2223328,2240,2223328,2240,32,16,112,16,32,64,6,3,3692144,1120,3692144,1120,16,16,56,16,16,32,6,3,4476144,1120,4476144,1120,16,16,56,16,16,32,6,3,2223360,2240,2223360,2240,32,16,96,16,32,64,6,3,3692160,1120,3692160,1120,16,16,48,16,16,32,6,3,4476160,1120,4476160,1120,16,16,48,16,16,32,6,3,2223392,2240,2223392,2240,48,16,96,16,64,64,6,3,3692176,1120,3692176,1120,24,16,48,16,32,32,6,3,4476176,1120,4476176,1120,24,16,48,16,32,32,6,3,2223456,2240,2223456,2240,64,16,96,16,64,64,6,3,3692208,1120,3692208,1120,32,16,48,16,32,32,6,3,4476208,1120,4476208,1120,32,16,48,16,32,32,6,3,2223520,2240,2223520,2240,64,16,96,16,64,64,6,3,3692240,1120,3692240,1120,32,16,48,16,32,32,6,3,4476240,1120,4476240,1120,32,16,48,16,32,32,6,3,2223584,2240,2223584,2240,80,16,80,16,64,64,6,3,3692272,1120,3692272,1120,40,16,40,16,32,32,6,3,4476272,1120,4476272,1120,40,16,40,16,32,32,6,3,2223648,2240,2223648,2240,96,16,80,16,64,64,6,3,3692304,1120,3692304,1120,48,16,40,16,32,32,6,3,4476304,1120,4476304,1120,48,16,40,16,32,32,6,3,2223712,2240,2223712,2240,96,16,96,16,64,64,6,3,3692336,1120,3692336,1120,48,16,48,16,32,32,6,3,4476336,1120,4476336,1120,48,16,48,16,32,32,0,3,2223776,2240,2223776,2240,0,16,0,16,64,64,0,3,3692368,1120,3692368,1120,0,16,0,16,32,32,0,3,4476368,1120,4476368,1120,0,16,0,16,32,32,0,3,2223840,2240,2223840,2240,0,16,0,16,64,64,0,3,3692400,1120,3692400,1120,0,16,0,16,32,32,0,3,4476400,1120,4476400,1120,0,16,0,16,32,32,0,3,2223904,2240,2223904,2240,0,16,0,16,64,64,0,3,3692432,1120,3692432,1120,0,16,0,16,32,32,0,3,4476432,1120,4476432,1120,0,16,0,16,32,32,0,3,2223968,2240,2223968,2240,0,16,0,16,64,64,0,3,3692464,1120,3692464,1120,0,16,0,16,32,32,0,3,4476464,1120,4476464,1120,0,16,0,16,32,32,0,3,2224032,2240,2224032,2240,0,16,0,16,64,64,0,3,3692496,1120,3692496,1120,0,16,0,16,32,32,0,3,4476496,1120,4476496,1120,0,16,0,16,32,32,0,3,2224096,2240,2224096,2240,0,16,0,16,64,64,0,3,3692528,1120,3692528,1120,0,16,0,16,32,32,0,3,4476528,1120,4476528,1120,0,16,0,16,32,32,0,3,2365600,2240,2365600,2240,0,16,0,16,64,64,0,3,3727440,1120,3727440,1120,0,16,0,16,32,32,0,3,4511440,1120,4511440,1120,0,16,0,16,32,32,0,3,2365664,2240,2365664,2240,0,16,0,16,64,64,0,3,3727472,1120,3727472,1120,0,16,0,16,32,32,0,3,4511472,1120,4511472,1120,0,16,0,16,32,32,0,3,2365728,2240,2365728,2240,0,16,0,16,64,64,0,3,3727504,1120,3727504,1120,0,16,0,16,32,32,0,3,4511504,1120,4511504,1120,0,16,0,16,32,32,0,3,2365792,2240,2365792,2240,0,16,0,16,64,64,0,3,3727536,1120,3727536,1120,0,16,0,16,32,32,0,3,4511536,1120,4511536,1120,0,16,0,16,32,32,0,3,2365856,2240,2365856,2240,0,16,0,16,64,64,0,3,3727568,1120,3727568,1120,0,16,0,16,32,32,0,3,4511568,1120,4511568,1120,0,16,0,16,32,32,0,3,2365920,2240,2365920,2240,0,16,0,16,64,64,0,3,3727600,1120,3727600,1120,0,16,0,16,32,32,0,3,4511600,1120,4511600,1120,0,16,0,16,32,32,6,3,2365983,2240,2365984,2240,16,16,96,16,64,64,6,3,3727631,1120,3727632,1120,72,16,48,16,32,32,6,3,4511631,1120,4511632,1120,72,16,48,16,32,32,6,3,2366047,2240,2366048,2240,32,16,96,16,64,64,6,3,3727663,1120,3727664,1120,80,16,48,16,32,32,6,3,4511663,1120,4511664,1120,80,16,48,16,32,32,6,3,2366111,2240,2366112,2240,48,16,80,16,64,64,6,3,3727695,1120,3727696,1120,88,16,40,16,32,32,6,3,4511695,1120,4511696,1120,88,16,40,16,32,32,6,3,2366175,2240,2366176,2240,64,16,96,16,64,64,6,3,3727727,1120,3727728,1120,96,16,48,16,32,32,6,3,4511727,1120,4511728,1120,96,16,48,16,32,32,6,3,2366239,2240,2366240,2240,64,16,80,16,64,64,6,3,3727759,1120,3727760,1120,96,16,40,16,32,32,6,3,4511759,1120,4511760,1120,96,16,40,16,32,32,6,3,2366303,2240,2366304,2240,80,16,80,16,64,64,6,3,3727791,1120,3727792,1120,104,16,40,16,32,32,6,3,4511791,1120,4511792,1120,104,16,40,16,32,32,6,3,2366367,2240,2366368,2240,96,16,112,16,64,64,6,3,3727823,1120,3727824,1120,112,16,56,16,32,32,6,3,4511823,1120,4511824,1120,112,16,56,16,32,32,6,3,2366431,2240,2366432,2240,112,16,112,16,64,64,6,3,3727855,1120,3727856,1120,120,16,56,16,32,32,6,3,4511855,1120,4511856,1120,120,16,56,16,32,32,6,3,2366495,2240,2366496,2240,112,16,112,16,8,16,6,3,3727887,1120,3727888,1120,120,16,56,16,4,8,6,3,4511887,1120,4511888,1120,120,16,56,16,4,8,2,3,2366504,2240,2366504,2240,0,16,96,16,8,16,2,3,3727892,1120,3727892,1120,0,16,48,16,4,8,2,3,4511892,1120,4511892,1120,0,16,48,16,4,8,2,3,2366512,2240,2366512,2240,0,16,112,16,16,16,2,3,3727896,1120,3727896,1120,0,16,56,16,8,8,2,3,4511896,1120,4511896,1120,0,16,56,16,8,8,6,3,2402335,2240,2402336,2240,112,16,96,16,16,16,6,3,3736847,1120,3736848,1120,120,16,48,16,8,8,6,3,4520847,1120,4520848,1120,120,16,48,16,8,8,2,3,2402352,2240,2402352,2240,0,16,112,16,16,16,2,3,3736856,1120,3736856,1120,0,16,56,16,8,8,2,3,4520856,1120,4520856,1120,0,16,56,16,8,8,2,3,2366528,2240,2366528,2240,0,16,112,16,32,32,2,3,3727904,1120,3727904,1120,0,16,56,16,16,16,2,3,4511904,1120,4511904,1120,0,16,56,16,16,16,6,3,2438175,2240,2438176,2240,112,16,96,16,32,32,6,3,3745807,1120,3745808,1120,120,16,48,16,16,16,6,3,4529807,1120,4529808,1120,120,16,48,16,16,16,2,3,2438208,2240,2438208,2240,0,16,112,16,32,32,2,3,3745824,1120,3745824,1120,0,16,56,16,16,16,2,3,4529824,1120,4529824,1120,0,16,56,16,16,16,2,3,2366560,2240,2366560,2240,0,16,112,16,32,32,2,3,3727920,1120,3727920,1120,0,16,56,16,16,16,2,3,4511920,1120,4511920,1120,0,16,56,16,16,16,2,3,2366592,2240,2366592,2240,0,16,112,16,16,16,2,3,3727936,1120,3727936,1120,0,16,56,16,8,8,2,3,4511936,1120,4511936,1120,0,16,56,16,8,8,6,3,2366608,2240,2366608,2240,16,16,112,16,16,8,6,3,3727944,1120,3727944,1120,8,16,56,16,8,4,6,3,4511944,1120,4511944,1120,8,16,56,16,8,4,0,3,2386768,2240,2384528,2240,0,16,0,16,16,8,2,3,3732424,1120,3732424,1120,0,16,64,16,8,4,2,3,4516424,1120,4516424,1120,0,16,64,16,8,4,2,3,2402432,2240,2402432,2240,0,16,112,16,16,16,2,3,3736896,1120,3736896,1120,0,16,56,16,8,8,2,3,4520896,1120,4520896,1120,0,16,56,16,8,8,2,3,2402448,2240,2402448,2240,0,16,112,16,16,16,2,3,3736904,1120,3736904,1120,0,16,56,16,8,8,2,3,4520904,1120,4520904,1120,0,16,56,16,8,8,2,3,2438240,2240,2438240,2240,0,16,112,16,32,32,2,3,3745840,1120,3745840,1120,0,16,56,16,16,16,2,3,4529840,1120,4529840,1120,0,16,56,16,16,16,2,3,2438272,2240,2438272,2240,0,16,112,16,32,32,2,3,3745856,1120,3745856,1120,0,16,56,16,16,16,2,3,4529856,1120,4529856,1120,0,16,56,16,16,16,6,3,2366624,2240,2366624,2240,16,16,112,16,32,64,6,3,3727952,1120,3727952,1120,8,16,56,16,16,32,6,3,4511952,1120,4511952,1120,8,16,56,16,16,32,6,3,2366656,2240,2366656,2240,16,16,96,16,32,64,6,3,3727968,1120,3727968,1120,8,16,48,16,16,32,6,3,4511968,1120,4511968,1120,8,16,48,16,16,32,6,3,2366688,2240,2366688,2240,32,16,112,16,64,64,6,3,3727984,1120,3727984,1120,16,16,56,16,32,32,6,3,4511984,1120,4511984,1120,16,16,56,16,32,32,6,3,2366752,2240,2366752,2240,48,16,96,16,64,64,6,3,3728016,1120,3728016,1120,24,16,48,16,32,32,6,3,4512016,1120,4512016,1120,24,16,48,16,32,32,6,3,2366816,2240,2366816,2240,64,16,96,16,64,64,6,3,3728048,1120,3728048,1120,32,16,48,16,32,32,6,3,4512048,1120,4512048,1120,32,16,48,16,32,32,6,3,2366880,2240,2366880,2240,64,16,96,16,64,64,6,3,3728080,1120,3728080,1120,32,16,48,16,32,32,6,3,4512080,1120,4512080,1120,32,16,48,16,32,32,6,3,2366944,2240,2366944,2240,80,16,80,16,64,64,6,3,3728112,1120,3728112,1120,40,16,40,16,32,32,6,3,4512112,1120,4512112,1120,40,16,40,16,32,32,6,3,2367008,2240,2367008,2240,96,16,80,16,64,64,6,3,3728144,1120,3728144,1120,48,16,40,16,32,32,6,3,4512144,1120,4512144,1120,48,16,40,16,32,32,6,3,2367072,2240,2367072,2240,96,16,96,16,64,64,6,3,3728176,1120,3728176,1120,48,16,48,16,32,32,6,3,4512176,1120,4512176,1120,48,16,48,16,32,32,0,3,2367136,2240,2367136,2240,0,16,0,16,64,64,0,3,3728208,1120,3728208,1120,0,16,0,16,32,32,0,3,4512208,1120,4512208,1120,0,16,0,16,32,32,0,3,2367200,2240,2367200,2240,0,16,0,16,64,64,0,3,3728240,1120,3728240,1120,0,16,0,16,32,32,0,3,4512240,1120,4512240,1120,0,16,0,16,32,32,0,3,2367264,2240,2367264,2240,0,16,0,16,64,64,0,3,3728272,1120,3728272,1120,0,16,0,16,32,32,0,3,4512272,1120,4512272,1120,0,16,0,16,32,32,0,3,2367328,2240,2367328,2240,0,16,0,16,64,64,0,3,3728304,1120,3728304,1120,0,16,0,16,32,32,0,3,4512304,1120,4512304,1120,0,16,0,16,32,32,0,3,2367392,2240,2367392,2240,0,16,0,16,64,64,0,3,3728336,1120,3728336,1120,0,16,0,16,32,32,0,3,4512336,1120,4512336,1120,0,16,0,16,32,32,0,3,2367456,2240,2367456,2240,0,16,0,16,64,64,0,3,3728368,1120,3728368,1120,0,16,0,16,32,32,0,3,4512368,1120,4512368,1120,0,16,0,16,32,32,0,3,2508960,2240,2508960,2240,0,16,0,16,64,64,0,3,3763280,1120,3763280,1120,0,16,0,16,32,32,0,3,4547280,1120,4547280,1120,0,16,0,16,32,32,0,3,2509024,2240,2509024,2240,0,16,0,16,64,64,0,3,3763312,1120,3763312,1120,0,16,0,16,32,32,0,3,4547312,1120,4547312,1120,0,16,0,16,32,32,0,3,2509088,2240,2509088,2240,0,16,0,16,64,64,0,3,3763344,1120,3763344,1120,0,16,0,16,32,32,0,3,4547344,1120,4547344,1120,0,16,0,16,32,32,0,3,2509152,2240,2509152,2240,0,16,0,16,64,64,0,3,3763376,1120,3763376,1120,0,16,0,16,32,32,0,3,4547376,1120,4547376,1120,0,16,0,16,32,32,0,3,2509216,2240,2509216,2240,0,16,0,16,64,64,0,3,3763408,1120,3763408,1120,0,16,0,16,32,32,0,3,4547408,1120,4547408,1120,0,16,0,16,32,32,0,3,2509280,2240,2509280,2240,0,16,0,16,64,64,0,3,3763440,1120,3763440,1120,0,16,0,16,32,32,0,3,4547440,1120,4547440,1120,0,16,0,16,32,32,6,3,2509343,2240,2509344,2240,16,16,96,16,64,64,6,3,3763471,1120,3763472,1120,72,16,48,16,32,32,6,3,4547471,1120,4547472,1120,72,16,48,16,32,32,6,3,2509407,2240,2509408,2240,32,16,96,16,64,64,6,3,3763503,1120,3763504,1120,80,16,48,16,32,32,6,3,4547503,1120,4547504,1120,80,16,48,16,32,32,6,3,2509471,2240,2509472,2240,48,16,80,16,64,64,6,3,3763535,1120,3763536,1120,88,16,40,16,32,32,6,3,4547535,1120,4547536,1120,88,16,40,16,32,32,6,3,2509535,2240,2509536,2240,64,16,96,16,64,64,6,3,3763567,1120,3763568,1120,96,16,48,16,32,32,6,3,4547567,1120,4547568,1120,96,16,48,16,32,32,6,3,2509599,2240,2509600,2240,64,16,80,16,64,64,6,3,3763599,1120,3763600,1120,96,16,40,16,32,32,6,3,4547599,1120,4547600,1120,96,16,40,16,32,32,6,3,2509663,2240,2509664,2240,80,16,80,16,64,64,6,3,3763631,1120,3763632,1120,104,16,40,16,32,32,6,3,4547631,1120,4547632,1120,104,16,40,16,32,32,6,3,2509727,2240,2509728,2240,96,16,112,16,64,64,6,3,3763663,1120,3763664,1120,112,16,56,16,32,32,6,3,4547663,1120,4547664,1120,112,16,56,16,32,32,6,3,2509791,2240,2509792,2240,112,16,112,16,64,64,6,3,3763695,1120,3763696,1120,120,16,56,16,32,32,6,3,4547695,1120,4547696,1120,120,16,56,16,32,32,6,3,2509855,2240,2509856,2240,112,16,96,16,64,64,6,3,3763727,1120,3763728,1120,120,16,48,16,32,32,6,3,4547727,1120,4547728,1120,120,16,48,16,32,32,2,3,2509920,2240,2509920,2240,0,16,112,16,64,64,2,3,3763760,1120,3763760,1120,0,16,56,16,32,32,2,3,4547760,1120,4547760,1120,0,16,56,16,32,32,6,3,2509984,2240,2509984,2240,16,16,112,16,64,64,6,3,3763792,1120,3763792,1120,8,16,56,16,32,32,6,3,4547792,1120,4547792,1120,8,16,56,16,32,32,6,3,2510048,2240,2510048,2240,32,16,112,16,64,64,6,3,3763824,1120,3763824,1120,16,16,56,16,32,32,6,3,4547824,1120,4547824,1120,16,16,56,16,32,32,6,3,2510112,2240,2510112,2240,48,16,96,16,64,64,6,3,3763856,1120,3763856,1120,24,16,48,16,32,32,6,3,4547856,1120,4547856,1120,24,16,48,16,32,32,6,3,2510176,2240,2510176,2240,64,16,96,16,64,64,6,3,3763888,1120,3763888,1120,32,16,48,16,32,32,6,3,4547888,1120,4547888,1120,32,16,48,16,32,32,6,3,2510240,2240,2510240,2240,64,16,96,16,64,64,6,3,3763920,1120,3763920,1120,32,16,48,16,32,32,6,3,4547920,1120,4547920,1120,32,16,48,16,32,32,6,3,2510304,2240,2510304,2240,80,16,80,16,64,64,6,3,3763952,1120,3763952,1120,40,16,40,16,32,32,6,3,4547952,1120,4547952,1120,40,16,40,16,32,32,6,3,2510368,2240,2510368,2240,96,16,80,16,64,64,6,3,3763984,1120,3763984,1120,48,16,40,16,32,32,6,3,4547984,1120,4547984,1120,48,16,40,16,32,32,6,3,2510432,2240,2510432,2240,96,16,96,16,64,64,6,3,3764016,1120,3764016,1120,48,16,48,16,32,32,6,3,4548016,1120,4548016,1120,48,16,48,16,32,32,0,3,2510496,2240,2510496,2240,0,16,0,16,64,64,0,3,3764048,1120,3764048,1120,0,16,0,16,32,32,0,3,4548048,1120,4548048,1120,0,16,0,16,32,32,0,3,2510560,2240,2510560,2240,0,16,0,16,64,64,0,3,3764080,1120,3764080,1120,0,16,0,16,32,32,0,3,4548080,1120,4548080,1120,0,16,0,16,32,32,0,3,2510624,2240,2510624,2240,0,16,0,16,64,64,0,3,3764112,1120,3764112,1120,0,16,0,16,32,32,0,3,4548112,1120,4548112,1120,0,16,0,16,32,32,0,3,2510688,2240,2510688,2240,0,16,0,16,64,64,0,3,3764144,1120,3764144,1120,0,16,0,16,32,32,0,3,4548144,1120,4548144,1120,0,16,0,16,32,32,0,3,2510752,2240,2510752,2240,0,16,0,16,64,64,0,3,3764176,1120,3764176,1120,0,16,0,16,32,32,0,3,4548176,1120,4548176,1120,0,16,0,16,32,32,0,3,2510816,2240,2510816,2240,0,16,0,16,64,64,0,3,3764208,1120,3764208,1120,0,16,0,16,32,32,0,3,4548208,1120,4548208,1120,0,16,0,16,32,32,0,3,2652320,2240,2652320,2240,0,16,0,16,64,64,4,0,825488,2240,825488,2240,64,16,0,16,8,8,4,0,3342664,1120,3342664,1120,32,16,0,16,4,4,4,0,4126664,1120,4126664,1120,32,16,0,16,4,4,4,0,2077727,2240,2079968,2240,64,16,0,16,32,64,6,0,3655183,1120,3656304,1120,96,16,64,16,16,32,6,0,4439183,1120,4440304,1120,96,16,64,16,16,32,6,0,2077903,2240,2080144,2240,16,16,32,16,16,32,6,0,3655271,1120,3656392,1120,72,16,80,16,8,16,6,0,4439271,1120,4440392,1120,72,16,80,16,8,16,6,0,2149583,2240,2151824,2240,16,16,32,16,16,16,6,0,3673191,1120,3674312,1120,72,16,80,16,8,8,6,0,4457191,1120,4458312,1120,72,16,80,16,8,8,6,0,2185423,2240,2187664,2240,16,16,32,16,16,16,6,0,3682151,1120,3683272,1120,72,16,80,16,8,8,6,0,4466151,1120,4467272,1120,72,16,80,16,8,8,6,0,2077983,2240,2080224,2240,304,16,304,16,32,64,6,0,3655311,1120,3656432,1120,344,16,344,16,16,32,6,0,4439311,1120,4440432,1120,344,16,344,16,16,32,
diff --git a/tests/tests/dpi/src/android/dpi/cts/AspectRatioTest.java b/tests/tests/dpi/src/android/dpi/cts/AspectRatioTest.java
index 74a9f22076b..572c3f4043f 100644
--- a/tests/tests/dpi/src/android/dpi/cts/AspectRatioTest.java
+++ b/tests/tests/dpi/src/android/dpi/cts/AspectRatioTest.java
@@ -40,46 +40,27 @@ public class AspectRatioTest extends ActivityInstrumentationTestCase2<Orientatio
}
/**
- * Get all the aspect rations in different orientations. They could be
- * different due to the system bar being different sizes. Test that
- * one of the aspect ratios is within the range.
+ * Get the full screen size directly (including system bar) to calculate
+ * aspect ratio. With this, the screen orientation doesn't affect the aspect
+ * ratio value anymore. Test that the aspect ratio is within the range.
*/
public void testAspectRatio() throws Exception {
- List<Double> aspectRatios = getAllAspectRatios();
- for (double aspectRatio : aspectRatios) {
- if (aspectRatio >= 1.333 && aspectRatio <= 1.86) {
- return;
- }
+ double aspectRatio = getRealAspectRatio(getActivity());
+ if (aspectRatio >= 1.333 && aspectRatio <= 1.86) {
+ return;
}
- fail("Aspect ratios were not between 1.333 and 1.86: " + aspectRatios);
+ fail("Aspect ratio was not between 1.333 and 1.86: " + aspectRatio);
}
- private List<Double> getAllAspectRatios() throws Exception {
- List<Double> aspectRatios = new ArrayList<Double>();
- for (int i = 0; i < ORIENTATIONS.length; i++) {
- Activity activity = startOrientationActivity(ORIENTATIONS[i]);
- aspectRatios.add(getAspectRatio(activity));
- tearDown();
- }
- return aspectRatios;
- }
-
- private double getAspectRatio(Context context) {
+ private double getRealAspectRatio(Context context) {
WindowManager windowManager =
(WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
- display.getMetrics(metrics);
+ display.getRealMetrics(metrics);
int max = Math.max(metrics.widthPixels, metrics.heightPixels);
int min = Math.min(metrics.widthPixels, metrics.heightPixels);
return (double) max / min;
}
-
- private Activity startOrientationActivity(int orientation) {
- Intent intent = new Intent();
- intent.putExtra(OrientationActivity.EXTRA_ORIENTATION, orientation);
- setActivityIntent(intent);
- return getActivity();
- }
}
diff --git a/tests/tests/net/src/android/net/ipv6/cts/PingTest.java b/tests/tests/net/src/android/net/ipv6/cts/PingTest.java
index acf474fce49..49fc59c716b 100644
--- a/tests/tests/net/src/android/net/ipv6/cts/PingTest.java
+++ b/tests/tests/net/src/android/net/ipv6/cts/PingTest.java
@@ -19,10 +19,10 @@ package android.net.ipv6.cts;
import android.test.AndroidTestCase;
import android.util.Log;
-import libcore.io.ErrnoException;
-import libcore.io.Libcore;
-import libcore.io.StructTimeval;
-import static libcore.io.OsConstants.*;
+import android.system.ErrnoException;
+import android.system.Os;
+import android.system.StructTimeval;
+import static android.system.OsConstants.*;
import java.io.FileDescriptor;
import java.io.IOException;
@@ -84,8 +84,8 @@ public class PingTest extends AndroidTestCase {
* Creates an IPv6 ping socket and sets a receive timeout of 100ms.
*/
private FileDescriptor createPingSocket() throws ErrnoException {
- FileDescriptor s = Libcore.os.socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6);
- Libcore.os.setsockoptTimeval(s, SOL_SOCKET, SO_RCVTIMEO, StructTimeval.fromMillis(100));
+ FileDescriptor s = Os.socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6);
+ Os.setsockoptTimeval(s, SOL_SOCKET, SO_RCVTIMEO, StructTimeval.fromMillis(100));
return s;
}
@@ -98,7 +98,7 @@ public class PingTest extends AndroidTestCase {
int port = (int) (Math.random() * 2048);
// Send the packet.
- int ret = Libcore.os.sendto(s, ByteBuffer.wrap(packet), 0, address, port);
+ int ret = Os.sendto(s, ByteBuffer.wrap(packet), 0, address, port);
assertEquals(packet.length, ret);
}
@@ -113,7 +113,7 @@ public class PingTest extends AndroidTestCase {
// Receive the response.
if (useRecvfrom) {
InetSocketAddress from = new InetSocketAddress();
- bytesRead = Libcore.os.recvfrom(s, responseBuffer, 0, from);
+ bytesRead = Os.recvfrom(s, responseBuffer, 0, from);
// Check the source address and scope ID.
assertTrue(from.getAddress() instanceof Inet6Address);
@@ -122,7 +122,7 @@ public class PingTest extends AndroidTestCase {
assertNull(fromAddress.getScopedInterface());
assertEquals(dest.getHostAddress(), fromAddress.getHostAddress());
} else {
- bytesRead = Libcore.os.read(s, responseBuffer);
+ bytesRead = Os.read(s, responseBuffer);
}
// Check the packet length.
@@ -134,7 +134,7 @@ public class PingTest extends AndroidTestCase {
assertEquals((byte) 0x81, response[0]);
// Find out what ICMP ID was used in the packet that was sent.
- int id = ((InetSocketAddress) Libcore.os.getsockname(s)).getPort();
+ int id = ((InetSocketAddress) Os.getsockname(s)).getPort();
sent[4] = (byte) (id / 256);
sent[5] = (byte) (id % 256);
@@ -162,7 +162,7 @@ public class PingTest extends AndroidTestCase {
sendPing(s, ipv6Loopback, packet);
checkResponse(s, ipv6Loopback, packet, false);
// Check closing the socket doesn't raise an exception.
- Libcore.os.close(s);
+ Os.close(s);
}
}
}
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java b/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java
index 072988d2ec5..afe664f28d1 100644..100755
--- a/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java
@@ -33,9 +33,9 @@ class PlanetsSurfaceView extends GLSurfaceViewCustom {
@Override
public void onPause() {
- mWatchDog.stop();
super.onPause();
setRenderMode(RENDERMODE_WHEN_DIRTY);
+ mWatchDog.stop();
}
@Override
diff --git a/tests/tests/os/src/android/os/cts/BuildTest.java b/tests/tests/os/src/android/os/cts/BuildTest.java
index 3f6743e7009..7176a6d70b7 100644
--- a/tests/tests/os/src/android/os/cts/BuildTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildTest.java
@@ -198,6 +198,24 @@ public class BuildTest extends TestCase {
assertNotEmpty(Build.USER);
}
+ private static final String RO_DEBUGGABLE = "ro.debuggable";
+ private static final String RO_SECURE = "ro.secure";
+
+ /**
+ * Assert that the device is a secure, not debuggable user build.
+ *
+ * Debuggable devices allow adb root and have the su command, allowing
+ * escalations to root and unauthorized access to application data.
+ *
+ * Note: This test will fail on userdebug / eng devices, but should pass
+ * on production (user) builds.
+ */
+ public void testIsSecureUserBuild() throws IOException {
+ assertEquals("Must be a user build", "user", Build.TYPE);
+ assertProperty("Must be a non-debuggable build", RO_DEBUGGABLE, "0");
+ assertProperty("Must be a secure build", RO_SECURE, "1");
+ }
+
private void assertNotEmpty(String value) {
assertNotNull(value);
assertFalse(value.isEmpty());
diff --git a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
index a51f8c752f6..59f0135f851 100644..100755
--- a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
@@ -731,6 +731,8 @@ public class FileSystemPermissionTest extends AndroidTestCase {
new File("/dev/alarm"), // b/9035217
new File("/dev/ashmem"),
new File("/dev/binder"),
+ new File("/dev/card0"), // b/13159510
+ new File("/dev/dri/card0"), // b/13159510
new File("/dev/quadd"),
new File("/dev/felica"),
new File("/dev/felica_ant"),
diff --git a/tests/tests/renderscript/libcoremathtestcpp/Android.mk b/tests/tests/renderscript/libcoremathtestcpp/Android.mk
index 7c8dc45e659..7ec86714b03 100644
--- a/tests/tests/renderscript/libcoremathtestcpp/Android.mk
+++ b/tests/tests/renderscript/libcoremathtestcpp/Android.mk
@@ -26,6 +26,6 @@ LOCAL_C_INCLUDES += frameworks/rs/cpp
LOCAL_C_INCLUDES += frameworks/rs
LOCAL_C_INCLUDES += external/stlport/stlport bionic/ bionic/libstdc++/include
-LOCAL_SHARED_LIBRARIES := libdl liblog
-LOCAL_STATIC_LIBRARIES := libRScpp_static libstlport_static libcutils
+LOCAL_SHARED_LIBRARIES := libdl liblog libRScpp libstlport
+LOCAL_STATIC_LIBRARIES := libcutils
include $(BUILD_SHARED_LIBRARY)
diff --git a/tests/tests/rscpp/librscpptest/rs_jni.cpp b/tests/tests/rscpp/librscpptest/rs_jni.cpp
index 42daaa9ee8c..d582e05e9a1 100644
--- a/tests/tests/rscpp/librscpptest/rs_jni.cpp
+++ b/tests/tests/rscpp/librscpptest/rs_jni.cpp
@@ -372,53 +372,6 @@ Java_android_cts_rscpp_RSBlendTest_blendTest(JNIEnv * env, jclass obj, jstring p
}
extern "C" JNIEXPORT jboolean JNICALL
-Java_android_cts_rscpp_RSInterPredTest_interpredTest(JNIEnv * env,
- jclass obj,
- jstring pathObj,
- jbyteArray jRef,
- jintArray jParam,
- jint jFirCount,
- jint jSecCount,
- jint jParamOffset)
-{
- const char * path = env->GetStringUTFChars(pathObj, NULL);
- jint * pParam = env->GetIntArrayElements(jParam, NULL);
- jbyte * pRef = (jbyte *) env->GetPrimitiveArrayCritical(jRef, 0);
-
- sp<RS> rs = new RS();
- rs->init(path);
-
- sp<const Element> e = Element::U8(rs);
- Type::Builder builder(rs, e);
-
- size_t frame_size = env->GetArrayLength(jRef);
- uint8_t * frame_buffer_ptr = (uint8_t *) aligned_alloc(128, frame_size);
- memcpy(frame_buffer_ptr, pRef, frame_size);
-
- sp<Allocation> refAlloc = Allocation::createTyped(rs, builder.create(), RS_ALLOCATION_MIPMAP_NONE,
- RS_ALLOCATION_USAGE_SHARED | RS_ALLOCATION_USAGE_SCRIPT,
- frame_buffer_ptr);
- sp<Allocation> paramAlloc = Allocation::createTyped(rs, builder.create(), RS_ALLOCATION_MIPMAP_NONE,
- RS_ALLOCATION_USAGE_SHARED | RS_ALLOCATION_USAGE_SCRIPT,
- pParam);
- sp<Allocation> kernelAllocation = Allocation::createTyped(rs, builder.create());
-
- sp<android::RSC::ScriptIntrinsicVP9InterPred> interPred = ScriptIntrinsicVP9InterPred::create(rs, e);
- interPred->setRef(refAlloc);
- interPred->setParamCount(jFirCount, jSecCount, jParamOffset * 11 * 4);
- interPred->setParam(paramAlloc);
- interPred->forEach(kernelAllocation);
- rs->finish();
-
- memcpy(pRef, frame_buffer_ptr, frame_size);
- aligned_free(frame_buffer_ptr);
- env->ReleasePrimitiveArrayCritical(jRef, pRef, 0);
- env->ReleaseIntArrayElements(jParam, pParam, JNI_ABORT);
- env->ReleaseStringUTFChars(pathObj, path);
- return (rs->getError() == RS_SUCCESS);
-}
-
-extern "C" JNIEXPORT jboolean JNICALL
Java_android_cts_rscpp_RSLoopFilterTest_loopfilterTest(JNIEnv * env, jclass obj, jstring pathObj,
jint start, jint stop, jint num_planes,
jint mi_rows, jint mi_cols,
@@ -493,3 +446,4 @@ Java_android_cts_rscpp_RSLoopFilterTest_loopfilterTest(JNIEnv * env, jclass obj,
env->ReleaseStringUTFChars(pathObj, path);
return (rs->getError() == RS_SUCCESS);
}
+
diff --git a/tests/tests/rscpp/src/android/cts/rscpp/RSInterPredTest.java b/tests/tests/rscpp/src/android/cts/rscpp/RSInterPredTest.java
deleted file mode 100644
index 90c37e4fa67..00000000000
--- a/tests/tests/rscpp/src/android/cts/rscpp/RSInterPredTest.java
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.cts.rscpp;
-
-import com.android.cts.stub.R;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.renderscript.*;
-import android.util.Log;
-import java.io.InputStream;
-import java.util.Random;
-import org.apache.http.util.EncodingUtils;
-
-public class RSInterPredTest extends RSCppTest {
- static {
- System.loadLibrary("rscpptest_jni");
- }
-
- native boolean interpredTest(String cacheDir, byte[] Ref, int[] Param, int firCountt, int secCount, int paramOffset);
-
- private static final int mRefW = 2450;
- private static final int mRefH = 1920;
-
- private byte[] refArray;
- private byte[] refJAVA;
- private int[] paramArray;
-
- private final int firCount = 27228;
- private final int secCount = 18;
- private final int paramOffset = firCount;
-
- private final int FILTER_BITS = 7;
- private final int SUBPEL_BITS = 4;
- private final int SUBPEL_MASK = (1 << SUBPEL_BITS) - 1;
- private final int SUBPEL_TAPS = 8;
-
- final short[] inter_pred_filters = new short[]{
- 0, 0, 0, 128, 0, 0, 0, 0, 0, 1, -5, 126, 8, -3, 1, 0,
- -1, 3, -10, 122, 18, -6, 2, 0, -1, 4, -13, 118, 27, -9, 3, -1,
- -1, 4, -16, 112, 37, -11, 4, -1, -1, 5, -18, 105, 48, -14, 4, -1,
- -1, 5, -19, 97, 58, -16, 5, -1, -1, 6, -19, 88, 68, -18, 5, -1,
- -1, 6, -19, 78, 78, -19, 6, -1, -1, 5, -18, 68, 88, -19, 6, -1,
- -1, 5, -16, 58, 97, -19, 5, -1, -1, 4, -14, 48, 105, -18, 5, -1,
- -1, 4, -11, 37, 112, -16, 4, -1, -1, 3, -9, 27, 118, -13, 4, -1,
- 0, 2, -6, 18, 122, -10, 3, -1, 0, 1, -3, 8, 126, -5, 1, 0,
- 0, 0, 0, 128, 0, 0, 0, 0, -3, -1, 32, 64, 38, 1, -3, 0,
- -2, -2, 29, 63, 41, 2, -3, 0, -2, -2, 26, 63, 43, 4, -4, 0,
- -2, -3, 24, 62, 46, 5, -4, 0, -2, -3, 21, 60, 49, 7, -4, 0,
- -1, -4, 18, 59, 51, 9, -4, 0, -1, -4, 16, 57, 53, 12, -4, -1,
- -1, -4, 14, 55, 55, 14, -4, -1, -1, -4, 12, 53, 57, 16, -4, -1,
- 0, -4, 9, 51, 59, 18, -4, -1, 0, -4, 7, 49, 60, 21, -3, -2,
- 0, -4, 5, 46, 62, 24, -3, -2, 0, -4, 4, 43, 63, 26, -2, -2,
- 0, -3, 2, 41, 63, 29, -2, -2, 0, -3, 1, 38, 64, 32, -1, -3,
- 0, 0, 0, 128, 0, 0, 0, 0, -1, 3, -7, 127, 8, -3, 1, 0,
- -2, 5, -13, 125, 17, -6, 3, -1, -3, 7, -17, 121, 27, -10, 5, -2,
- -4, 9, -20, 115, 37, -13, 6, -2, -4, 10, -23, 108, 48, -16, 8, -3,
- -4, 10, -24, 100, 59, -19, 9, -3, -4, 11, -24, 90, 70, -21, 10, -4,
- -4, 11, -23, 80, 80, -23, 11, -4, -4, 10, -21, 70, 90, -24, 11, -4,
- -3, 9, -19, 59, 100, -24, 10, -4, -3, 8, -16, 48, 108, -23, 10, -4,
- -2, 6, -13, 37, 115, -20, 9, -4, -2, 5, -10, 27, 121, -17, 7, -3,
- -1, 3, -6, 17, 125, -13, 5, -2, 0, 1, -3, 8, 127, -7, 3, -1,
- 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 120, 8, 0, 0, 0,
- 0, 0, 0, 112, 16, 0, 0, 0, 0, 0, 0, 104, 24, 0, 0, 0,
- 0, 0, 0, 96, 32, 0, 0, 0, 0, 0, 0, 88, 40, 0, 0, 0,
- 0, 0, 0, 80, 48, 0, 0, 0, 0, 0, 0, 72, 56, 0, 0, 0,
- 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 56, 72, 0, 0, 0,
- 0, 0, 0, 48, 80, 0, 0, 0, 0, 0, 0, 40, 88, 0, 0, 0,
- 0, 0, 0, 32, 96, 0, 0, 0, 0, 0, 0, 24, 104, 0, 0, 0,
- 0, 0, 0, 16, 112, 0, 0, 0, 0, 0, 0, 8, 120, 0, 0, 0
- };
-
- private void initInArray(byte[] array) {
- Random rand = new Random();
- for (int i = 0; i < array.length; i++) {
- array[i] = (byte)(rand.nextInt(255));
- }
- }
-
- public void testRSInterPred() {
- refArray = new byte[mRefW * mRefH * 3];
- paramArray = new int[(firCount + secCount) * 11];
- initInArray(refArray);
-
- try {
- InputStream in = getContext().getResources().openRawResource(R.raw.rs_interpred_param);
- int length = in.available();
- byte[] buffer = new byte[length];
- in.read(buffer);
- String str = EncodingUtils.getString(buffer, "BIG5");
- String strArr[] = str.split(",");
- for (int i = 0; i < firCount + secCount; i++) {
- paramArray[i * 11 + 0] = Integer.parseInt(strArr[i * 12 + 0]);
- if (Integer.parseInt(strArr[i * 12 + 1]) == 3) {
- paramArray[i * 11 + 1] = Integer.parseInt(strArr[i * 12 + 2]) + mRefW * mRefH;
- } else {
- paramArray[i * 11 + 1] = Integer.parseInt(strArr[i * 12 + 2]);
- }
- paramArray[i * 11 + 2] = Integer.parseInt(strArr[i * 12 + 3]);
- paramArray[i * 11 + 3] = Integer.parseInt(strArr[i * 12 + 4]) + mRefW * mRefH * 2;
- paramArray[i * 11 + 4] = Integer.parseInt(strArr[i * 12 + 5]);
- paramArray[i * 11 + 5] = Integer.parseInt(strArr[i * 12 + 6]);
- paramArray[i * 11 + 6] = Integer.parseInt(strArr[i * 12 + 7]);
- paramArray[i * 11 + 7] = Integer.parseInt(strArr[i * 12 + 8]);
- paramArray[i * 11 + 8] = Integer.parseInt(strArr[i * 12 + 9]);
- paramArray[i * 11 + 9] = Integer.parseInt(strArr[i * 12 + 10]);
- paramArray[i * 11 + 10] = Integer.parseInt(strArr[i * 12 + 11]);
- }
- in.close();
- } catch(Exception e) {
- e.printStackTrace();
- }
-
- refJAVA = new byte[refArray.length];
- for (int i = 0; i < refArray.length; i++) {
- refJAVA[i] = refArray[i];
- }
-
- interpredTest(this.getContext().getCacheDir().toString(), refArray, paramArray, firCount, secCount, paramOffset);
-
- interPred(refJAVA, firCount, secCount, paramOffset);
-
- for (int i = mRefW * mRefH; i < mRefW * mRefH * 2; ++i) {
- assertTrue(refArray[i] == refJAVA[i]);
- }
-
- }
-
- private void interPred(byte[] srcArray, int firCount, int secCount, int paramOffset) {
- final int[][] vp9_convolve_mode = new int[][]{{24, 16}, {8, 0}};
- int ref_base = 0;
- int fri_param = 0;
- int sec_param = paramOffset;
- int fri_count = firCount;
- int sec_count = secCount;
- int mode_num;
- int src;
- int dst;
- int filter_x;
- int filter_y;
-
- for (int i = 0; i < fri_count; i++) {
- mode_num = vp9_convolve_mode[paramArray[(fri_param + i) * 11 + 6] == 16 ? 1 : 0]
- [paramArray[(fri_param + i) * 11 + 8] == 16 ? 1 : 0];
- src = ref_base + paramArray[(fri_param + i) * 11 + 1];
- dst = ref_base + paramArray[(fri_param + i) * 11 + 3];
-
- filter_x = paramArray[(fri_param + i) * 11 + 5];
- filter_y = paramArray[(fri_param + i) * 11 + 7];
-
- mSwitchConvolve(paramArray[(fri_param + i) * 11 + 0] + mode_num,
- srcArray, src, paramArray[(fri_param + i) * 11 + 2],
- srcArray, dst, paramArray[(fri_param + i) * 11 + 4],
- filter_x, paramArray[(fri_param + i) * 11 + 6],
- filter_y, paramArray[(fri_param + i) * 11 + 8],
- paramArray[(fri_param + i) * 11 + 9],
- paramArray[(fri_param + i) * 11 + 10]);
- }
- for (int i = 0; i < sec_count; i++) {
- mode_num = vp9_convolve_mode[paramArray[(sec_param + i) * 11 + 6] == 16 ? 1 : 0]
- [paramArray[(sec_param + i) * 11 + 8] == 16 ? 1 : 0];
- src = ref_base + paramArray[(sec_param + i) * 11 + 1];
- dst = ref_base + paramArray[(sec_param + i) * 11 + 3];
-
- filter_x = paramArray[(sec_param + i) * 11 + 5];
- filter_y = paramArray[(sec_param + i) * 11 + 7];
-
- mSwitchConvolve(paramArray[(sec_param + i) * 11 + 0] + mode_num + 1,
- srcArray, src, paramArray[(sec_param + i) * 11 + 2],
- srcArray, dst, paramArray[(sec_param + i) * 11 + 4],
- filter_x, paramArray[(sec_param + i) * 11 + 6],
- filter_y, paramArray[(sec_param + i) * 11 + 8],
- paramArray[(sec_param + i) * 11 + 9],
- paramArray[(sec_param + i) * 11 + 10]);
- }
- }
-
- private void mSwitchConvolve(int mode,
- byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4, int filter_y, int y_step_q4,
- int w, int h) {
- switch (mode) {
- case 0:
- vp9_convolve_copy_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 1:
- vp9_convolve_avg_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 2:
- case 8:
- case 10:
- vp9_convolve8_vert_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 3:
- case 9:
- case 11:
- vp9_convolve8_avg_vert_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 4:
- case 16:
- case 20:
- vp9_convolve8_horiz_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 5:
- case 17:
- case 21:
- vp9_convolve8_avg_horiz_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 6:
- case 12:
- case 14:
- case 18:
- case 22:
- case 24:
- case 26:
- case 28:
- case 30:
- vp9_convolve8_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- case 7:
- case 13:
- case 15:
- case 19:
- case 23:
- case 25:
- case 27:
- case 29:
- case 31:
- vp9_convolve8_avg_c(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- break;
- default:
- break;
- }
- }
-
- private void vp9_convolve_copy_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int filter_x_stride,
- int filter_y, int filter_y_stride,
- int w, int h) {
- int r;
- for (r = h; r > 0; --r) {
- for (int i = 0; i < w; i++) {
- dstArray[dst + i] = srcArray[src + i];
- }
- src += src_stride;
- dst += dst_stride;
- }
- }
-
- private void vp9_convolve_avg_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int filter_x_stride,
- int filter_y, int filter_y_stride,
- int w, int h) {
- int x, y;
- for (y = 0; y < h; ++y) {
- for (x = 0; x < w; ++x)
- dstArray[dst + x] = (byte)ROUND_POWER_OF_TWO((0xff & dstArray[dst + x]) +
- (0xff & srcArray[src + x]), 1);
- src += src_stride;
- dst += dst_stride;
- }
- }
-
- private void vp9_convolve8_vert_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4,
- int filter_y, int y_step_q4,
- int w, int h) {
- int filters_y = get_filter_base(filter_y);
- int y0_q4 = get_filter_offset(filter_y, filters_y);
- convolve_vert(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filters_y, y0_q4, y_step_q4, w, h);
- }
-
- private void vp9_convolve8_avg_vert_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4,
- int filter_y, int y_step_q4,
- int w, int h) {
- int filters_y = get_filter_base(filter_y);
- int y0_q4 = get_filter_offset(filter_y, filters_y);
- convolve_avg_vert(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filters_y, y0_q4, y_step_q4, w, h);
- }
-
- private void vp9_convolve8_horiz_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4,
- int filter_y, int y_step_q4,
- int w, int h) {
- int filters_x = get_filter_base(filter_x);
- int x0_q4 = get_filter_offset(filter_x, filters_x);
- convolve_horiz(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filters_x, x0_q4, x_step_q4, w, h);
- }
-
- private void vp9_convolve8_avg_horiz_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4,
- int filter_y, int y_step_q4,
- int w, int h) {
- int filters_x = get_filter_base(filter_x);
- int x0_q4 = get_filter_offset(filter_x, filters_x);
- convolve_avg_horiz(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filters_x, x0_q4, x_step_q4, w, h);
- }
-
- private void vp9_convolve8_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4,
- int filter_y, int y_step_q4,
- int w, int h) {
- int filters_x = get_filter_base(filter_x);
- int x0_q4 = get_filter_offset(filter_x, filters_x);
- int filters_y = get_filter_base(filter_y);
- int y0_q4 = get_filter_offset(filter_y, filters_y);
- convolve(srcArray, src, src_stride, dstArray, dst, dst_stride,
- filters_x, x0_q4, x_step_q4,
- filters_y, y0_q4, y_step_q4, w, h);
- }
-
- private void vp9_convolve8_avg_c(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int filter_x, int x_step_q4,
- int filter_y, int y_step_q4,
- int w, int h) {
- byte[] temp_ = new byte[(64 * 64) + (16) / 1 + 1];
- int temp = (0 + (16) - 1) & (-16);
- vp9_convolve8_c(srcArray, src, src_stride, temp_, temp, 64,
- filter_x, x_step_q4, filter_y, y_step_q4, w, h);
- vp9_convolve_avg_c(temp_, temp, 64, dstArray, dst, dst_stride, 0, 0, 0, 0, w, h);
- }
-
- private void convolve_vert(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride, int y_filters,
- int y0_q4, int y_step_q4, int w, int h) {
- int x, y;
- src -= src_stride * (SUBPEL_TAPS / 2 - 1);
- for (x = 0; x < w; ++x) {
- int y_q4 = y0_q4;
- for (y = 0; y < h; ++y) {
- int src_y = src + (y_q4 >> SUBPEL_BITS) * src_stride;
- int y_filter = y_filters + (y_q4 & SUBPEL_MASK) * 8;
- int k, sum = 0;
- for (k = 0; k < SUBPEL_TAPS; ++k)
- sum += (0xff & srcArray[src_y + k * src_stride]) * inter_pred_filters[y_filter + k];
- dstArray[dst + y * dst_stride] = clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS));
- y_q4 += y_step_q4;
- }
- ++src;
- ++dst;
- }
- }
-
- private void convolve_avg_vert(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int y_filters, int y0_q4, int y_step_q4, int w, int h) {
- int x, y;
- src -= src_stride * (SUBPEL_TAPS / 2 - 1);
- for (x = 0; x < w; ++x) {
- int y_q4 = y0_q4;
- for (y = 0; y < h; ++y) {
- int src_y = src + (y_q4 >> SUBPEL_BITS) * src_stride;
- int y_filter = y_filters + (y_q4 & SUBPEL_MASK) * 8;
- int k, sum = 0;
- for (k = 0; k < SUBPEL_TAPS; ++k)
- sum += (0xff & srcArray[src_y + k * src_stride]) * inter_pred_filters[y_filter + k];
- dstArray[dst + y * dst_stride] = (byte)ROUND_POWER_OF_TWO(
- (0xff & dstArray[dst + y * dst_stride]) +
- (0xff & clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS))), 1);
- y_q4 += y_step_q4;
- }
- ++src;
- ++dst;
- }
- }
-
- private void convolve_horiz(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int x_filters, int x0_q4, int x_step_q4, int w, int h) {
- int x, y;
- src -= SUBPEL_TAPS / 2 - 1;
- for (y = 0; y < h; ++y) {
- int x_q4 = x0_q4;
- for (x = 0; x < w; ++x) {
- int src_x = src + (x_q4 >> SUBPEL_BITS);
- int x_filter = x_filters + (x_q4 & SUBPEL_MASK) * 8;
- int k, sum = 0;
- for (k = 0; k < SUBPEL_TAPS; ++k)
- sum += (0xff & srcArray[src_x + k]) * inter_pred_filters[x_filter + k];
- dstArray[dst + x] = clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS));
- x_q4 += x_step_q4;
- }
- src += src_stride;
- dst += dst_stride;
- }
- }
-
- private void convolve_avg_horiz(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int x_filters, int x0_q4, int x_step_q4, int w, int h) {
- int x, y;
- src -= SUBPEL_TAPS / 2 - 1;
- for (y = 0; y < h; ++y) {
- int x_q4 = x0_q4;
- for (x = 0; x < w; ++x) {
- int src_x = src + (x_q4 >> SUBPEL_BITS);
- int x_filter = x_filters + (x_q4 & SUBPEL_MASK) * 8;
- int k, sum = 0;
- for (k = 0; k < SUBPEL_TAPS; ++k)
- sum += (0xff & srcArray[src_x + k]) * inter_pred_filters[x_filter + k];
- dstArray[dst + x] = (byte)ROUND_POWER_OF_TWO((0xff & dstArray[dst + x]) +
- (0xff & clip_pixel(ROUND_POWER_OF_TWO(sum, FILTER_BITS))), 1);
- x_q4 += x_step_q4;
- }
- src += src_stride;
- dst += dst_stride;
- }
- }
-
- private void convolve(byte[] srcArray, int src, int src_stride,
- byte[] dstArray, int dst, int dst_stride,
- int x_filters, int x0_q4, int x_step_q4, int y_filters,
- int y0_q4, int y_step_q4, int w, int h) {
- byte[] temp = new byte[64 * 324];
- int intermediate_height = (((h - 1) * y_step_q4 + 15) >> 4) + SUBPEL_TAPS;
- if (intermediate_height < h)
- intermediate_height = h;
- convolve_horiz(srcArray, src - src_stride * (SUBPEL_TAPS / 2 - 1), src_stride, temp, 0, 64,
- x_filters, x0_q4, x_step_q4, w, intermediate_height);
- convolve_vert(temp, 0 + 64 * (SUBPEL_TAPS / 2 - 1), 64, dstArray, dst, dst_stride,
- y_filters, y0_q4, y_step_q4, w, h);
- }
-
- private int ROUND_POWER_OF_TWO(int value, int n) {
- int res = (((value) + (1 << ((n) - 1))) >> (n));
- return res;
- }
-
- private int get_filter_base(int filter) {
- return filter;
- }
-
- private int get_filter_offset(int f, int base) {
- return 0;
- }
-
- private byte clip_pixel(int val) {
- return (byte)(((val > 255) ? (0xff & 255) : (val < 0) ? 0 : val));
- }
-
-}
diff --git a/tests/tests/security/src/android/security/cts/ClonedSecureRandomTest.java b/tests/tests/security/src/android/security/cts/ClonedSecureRandomTest.java
index e51b11c11f8..8ebe6ac8393 100644
--- a/tests/tests/security/src/android/security/cts/ClonedSecureRandomTest.java
+++ b/tests/tests/security/src/android/security/cts/ClonedSecureRandomTest.java
@@ -36,6 +36,8 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
public class ClonedSecureRandomTest extends AndroidTestCase {
+ private static final int MAX_SHUTDOWN_TRIES = 10;
+
private static final int ANSWER_TIMEOUT_SECONDS = 60;
private static final String SEPARATE_PROCESS_NAME = ":secureRandom";
@@ -129,11 +131,35 @@ public class ClonedSecureRandomTest extends AndroidTestCase {
fail("Timeout waiting for answer from SecureRandomService; cannot complete test");
}
- pid = mSecureRandomService.getRandomBytesAndPid(output);
+ // Create another latch we'll use to ensure the service has stopped.
+ final CountDownLatch serviceStopLatch = new CountDownLatch(1);
+ mSecureRandomService.asBinder().linkToDeath(new IBinder.DeathRecipient() {
+ @Override
+ public void binderDied() {
+ serviceStopLatch.countDown();
+ }
+ }, 0);
+ pid = mSecureRandomService.getRandomBytesAndPid(output);
getContext().unbindService(mServiceConnection);
- getContext().stopService(mSeparateIntent);
- am.killBackgroundProcesses(packageName);
+
+ /*
+ * Ensure the background process has stopped by waiting for the
+ * latch to fire.
+ */
+ int tries = 0;
+ do {
+ /*
+ * If this has looped more than once, try to yield to
+ * system_server.
+ */
+ if (tries > 0) {
+ Thread.yield();
+ }
+ getContext().stopService(mSeparateIntent);
+ am.killBackgroundProcesses(packageName);
+ } while (!serviceStopLatch.await(100, TimeUnit.MILLISECONDS) && tries++ < MAX_SHUTDOWN_TRIES);
+ assertTrue("Background process should have stopped already", tries < MAX_SHUTDOWN_TRIES);
/*
* Make sure the AndroidManifest.xml wasn't altered in a way that
diff --git a/tests/tests/security/src/android/security/cts/OpenSSLHeartbleedTest.java b/tests/tests/security/src/android/security/cts/OpenSSLHeartbleedTest.java
index 86957a81683..3aa02684e7e 100644
--- a/tests/tests/security/src/android/security/cts/OpenSSLHeartbleedTest.java
+++ b/tests/tests/security/src/android/security/cts/OpenSSLHeartbleedTest.java
@@ -215,10 +215,23 @@ public class OpenSSLHeartbleedTest extends InstrumentationTestCase {
}
});
+ // Wait for both client and server to terminate, to ensure that we observe all the traffic
+ // exchanged between them. Throw an exception if one of them failed.
Log.i(TAG, "Waiting for client");
- clientFuture.get(10, TimeUnit.SECONDS);
+ // Wait for the client, but don't yet throw an exception if it failed.
+ Exception clientException = null;
+ try {
+ clientFuture.get(10, TimeUnit.SECONDS);
+ } catch (Exception e) {
+ clientException = e;
+ }
Log.i(TAG, "Waiting for server");
- serverFuture.get(1, TimeUnit.SECONDS);
+ // Wait for the server and throw an exception if it failed.
+ serverFuture.get(5, TimeUnit.SECONDS);
+ // Throw an exception if the client failed.
+ if (clientException != null) {
+ throw clientException;
+ }
Log.i(TAG, "Handshake completed and application data exchanged");
}
diff --git a/tests/tests/security/src/android/security/cts/SELinuxDomainTest.java b/tests/tests/security/src/android/security/cts/SELinuxDomainTest.java
index 8dce12e4418..be2520150b7 100644
--- a/tests/tests/security/src/android/security/cts/SELinuxDomainTest.java
+++ b/tests/tests/security/src/android/security/cts/SELinuxDomainTest.java
@@ -29,6 +29,8 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.Scanner;
import java.util.Set;
@@ -271,6 +273,19 @@ public class SELinuxDomainTest extends TestCase {
return vSize == 0;
}
+ private static long getVsizeFromStat(String stat) {
+ // Get the vSize, item #23 from the stat file
+ // 1 2 3 4 5 6 7 8 9 10 11
+ String pattern = "^\\d+ \\(\\p{Print}*\\) \\w \\d+ \\d+ \\d+ \\d+ -?\\d+ \\d+ \\d+ \\d+ "
+ // 12 13 14 15 16 17 18 19 20 21 22 23
+ + "\\d+ \\d+ \\d+ \\d+ \\d+ \\d+ -?\\d+ -?\\d+ \\d+ \\d+ \\d+ (\\d+) .*$";
+
+ Pattern p = Pattern.compile(pattern);
+ Matcher m = p.matcher(stat);
+ assertTrue("failed match: \"" + stat + "\"", m.matches());
+ return Long.parseLong(m.group(1));
+ }
+
private static HashMap<String, ArrayList<ProcessDetails>> getProcessMap()
throws FileNotFoundException {
@@ -299,10 +314,9 @@ public class SELinuxDomainTest extends TestCase {
String context = new Scanner(new File(f, "attr/current")).next();
context = context.trim();
- // Get the vSize, index 22 from the stat file
+ // Get the vSize, item #23 from the stat file
String x = new Scanner(new File(f, "stat")).nextLine();
- String[] chunks = x.split("\\s+");
- long vSize = Long.parseLong(chunks[22]);
+ long vSize = getVsizeFromStat(x);
StringBuilder sb = new StringBuilder();
Scanner tmp = new Scanner(new File(f, "cmdline"));
diff --git a/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java b/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java
index 2b875eb02ed..39f5177ad6f 100644
--- a/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java
@@ -88,6 +88,7 @@ public class SmsManagerTest extends AndroidTestCase {
"302370", // Fido
"30237", // Fido
"311490", // Virgin Mobile
+ "312530", // Sprint Prepaid
"310000", // Tracfone
"46003", // China Telecom
"311230", // C SPire Wireless + Celluar South