diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2003-08-19 05:25:15 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2003-08-19 05:25:15 +0000 |
commit | 432758174f40b8b581395fe1b3f85fb696c7e1f6 (patch) | |
tree | 53eef3ebf8e899f795a643bd1b36576dd610070c | |
parent | 96646966eefc0d0cbe51c45a487d38b4584e2808 (diff) |
replace the brain dead perl implementation with an devious C implementation
(based on discussion with drahn... insanity is all mine tho =)
-rw-r--r-- | regress/sys/arch/sparc64/emul-popc/simm/Makefile | 17 | ||||
-rw-r--r-- | regress/sys/arch/sparc64/emul-popc/simm/genasm.pl | 47 | ||||
-rw-r--r-- | regress/sys/arch/sparc64/emul-popc/simm/genc.pl | 62 | ||||
-rw-r--r-- | regress/sys/arch/sparc64/emul-popc/simm/simm.out | 8192 | ||||
-rw-r--r-- | regress/sys/arch/sparc64/emul-popc/simm/simm13.c | 91 |
5 files changed, 93 insertions, 8316 deletions
diff --git a/regress/sys/arch/sparc64/emul-popc/simm/Makefile b/regress/sys/arch/sparc64/emul-popc/simm/Makefile index 31919d51869..692d487ded0 100644 --- a/regress/sys/arch/sparc64/emul-popc/simm/Makefile +++ b/regress/sys/arch/sparc64/emul-popc/simm/Makefile @@ -1,19 +1,6 @@ -# $OpenBSD: Makefile,v 1.4 2003/07/12 04:22:02 jason Exp $ +# $OpenBSD: Makefile,v 1.5 2003/08/19 05:25:14 jason Exp $ -# -O2 breaks this -CFLAGS=-O0 PROG= simm13 -SRCS=simm13.c simm13_asm.S -REGRESS_TARGETS=simm13_check -CLEANFILES+=simm13.c simm13_asm.S - -simm13.c: genc.pl - perl ${.CURDIR}/genc.pl > $@ - -simm13_asm.S: genasm.pl - perl ${.CURDIR}/genasm.pl > $@ - -simm13_check: simm13 - ${.OBJDIR}/simm13 | diff -u - ${.CURDIR}/simm.out +SRCS= simm13.c .include <bsd.regress.mk> diff --git a/regress/sys/arch/sparc64/emul-popc/simm/genasm.pl b/regress/sys/arch/sparc64/emul-popc/simm/genasm.pl deleted file mode 100644 index 7557c64020e..00000000000 --- a/regress/sys/arch/sparc64/emul-popc/simm/genasm.pl +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/perl -# $OpenBSD: genasm.pl,v 1.3 2003/07/10 15:21:12 jason Exp $ -# -# Copyright (c) 2003 Jason L. Wright (jason@thought.net) -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -print "/* AUTOMATICALLY GENERATED, DO NOT EDIT */\n"; -print "#include <machine/asm.h>\n"; -print "#include <machine/trap.h>\n"; -print "#include <machine/frame.h>\n"; -print "\n"; - -for ($i = -4096; $i <= 4095; $i++) { - print "ENTRY(popc"; - if ($i < 0) { - $v = -$i; - print "__$v"; - } else { - print "_$i"; - } - print ")\n"; - - print "\tretl\n"; - print "\t popc $i, %o0\n\n"; -} diff --git a/regress/sys/arch/sparc64/emul-popc/simm/genc.pl b/regress/sys/arch/sparc64/emul-popc/simm/genc.pl deleted file mode 100644 index 67838a19fc2..00000000000 --- a/regress/sys/arch/sparc64/emul-popc/simm/genc.pl +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/perl -# $OpenBSD: genc.pl,v 1.4 2003/07/12 04:22:02 jason Exp $ -# -# Copyright (c) 2003 Jason L. Wright (jason@thought.net) -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -$lo = -4096; -$hi = 4095; - -print "/* AUTOMATICALLY GENERATED, DO NOT EDIT */\n"; -print "#include <sys/types.h>\n"; -print "#include <stdio.h>\n"; -print "\n"; - -for ($i = $lo; $i <= $hi; $i++) { - print "extern int64_t popc"; - if ($i < 0) { - $v = -$i; - print "__$v"; - } else { - print "_$i"; - } - print "(void);\n"; -} - -print "\n"; - -print "int main(int argc, char *argv[]) {\n"; -for ($i = $lo; $i <= $hi; $i++) { - print "\tprintf(\"$i: %qd\\n\", popc"; - if ($i < 0) { - $v = -$i; - print "__$v"; - } else { - print "_$i"; - } - print "());\n"; -} -print "\treturn (0);\n"; -print "}\n"; diff --git a/regress/sys/arch/sparc64/emul-popc/simm/simm.out b/regress/sys/arch/sparc64/emul-popc/simm/simm.out deleted file mode 100644 index cac77eeb454..00000000000 --- a/regress/sys/arch/sparc64/emul-popc/simm/simm.out +++ /dev/null @@ -1,8192 +0,0 @@ --4096: 52 --4095: 53 --4094: 53 --4093: 54 --4092: 53 --4091: 54 --4090: 54 --4089: 55 --4088: 53 --4087: 54 --4086: 54 --4085: 55 --4084: 54 --4083: 55 --4082: 55 --4081: 56 --4080: 53 --4079: 54 --4078: 54 --4077: 55 --4076: 54 --4075: 55 --4074: 55 --4073: 56 --4072: 54 --4071: 55 --4070: 55 --4069: 56 --4068: 55 --4067: 56 --4066: 56 --4065: 57 --4064: 53 --4063: 54 --4062: 54 --4061: 55 --4060: 54 --4059: 55 --4058: 55 --4057: 56 --4056: 54 --4055: 55 --4054: 55 --4053: 56 --4052: 55 --4051: 56 --4050: 56 --4049: 57 --4048: 54 --4047: 55 --4046: 55 --4045: 56 --4044: 55 --4043: 56 --4042: 56 --4041: 57 --4040: 55 --4039: 56 --4038: 56 --4037: 57 --4036: 56 --4035: 57 --4034: 57 --4033: 58 --4032: 53 --4031: 54 --4030: 54 --4029: 55 --4028: 54 --4027: 55 --4026: 55 --4025: 56 --4024: 54 --4023: 55 --4022: 55 --4021: 56 --4020: 55 --4019: 56 --4018: 56 --4017: 57 --4016: 54 --4015: 55 --4014: 55 --4013: 56 --4012: 55 --4011: 56 --4010: 56 --4009: 57 --4008: 55 --4007: 56 --4006: 56 --4005: 57 --4004: 56 --4003: 57 --4002: 57 --4001: 58 --4000: 54 --3999: 55 --3998: 55 --3997: 56 --3996: 55 --3995: 56 --3994: 56 --3993: 57 --3992: 55 --3991: 56 --3990: 56 --3989: 57 --3988: 56 --3987: 57 --3986: 57 --3985: 58 --3984: 55 --3983: 56 --3982: 56 --3981: 57 --3980: 56 --3979: 57 --3978: 57 --3977: 58 --3976: 56 --3975: 57 --3974: 57 --3973: 58 --3972: 57 --3971: 58 --3970: 58 --3969: 59 --3968: 53 --3967: 54 --3966: 54 --3965: 55 --3964: 54 --3963: 55 --3962: 55 --3961: 56 --3960: 54 --3959: 55 --3958: 55 --3957: 56 --3956: 55 --3955: 56 --3954: 56 --3953: 57 --3952: 54 --3951: 55 --3950: 55 --3949: 56 --3948: 55 --3947: 56 --3946: 56 --3945: 57 --3944: 55 --3943: 56 --3942: 56 --3941: 57 --3940: 56 --3939: 57 --3938: 57 --3937: 58 --3936: 54 --3935: 55 --3934: 55 --3933: 56 --3932: 55 --3931: 56 --3930: 56 --3929: 57 --3928: 55 --3927: 56 --3926: 56 --3925: 57 --3924: 56 --3923: 57 --3922: 57 --3921: 58 --3920: 55 --3919: 56 --3918: 56 --3917: 57 --3916: 56 --3915: 57 --3914: 57 --3913: 58 --3912: 56 --3911: 57 --3910: 57 --3909: 58 --3908: 57 --3907: 58 --3906: 58 --3905: 59 --3904: 54 --3903: 55 --3902: 55 --3901: 56 --3900: 55 --3899: 56 --3898: 56 --3897: 57 --3896: 55 --3895: 56 --3894: 56 --3893: 57 --3892: 56 --3891: 57 --3890: 57 --3889: 58 --3888: 55 --3887: 56 --3886: 56 --3885: 57 --3884: 56 --3883: 57 --3882: 57 --3881: 58 --3880: 56 --3879: 57 --3878: 57 --3877: 58 --3876: 57 --3875: 58 --3874: 58 --3873: 59 --3872: 55 --3871: 56 --3870: 56 --3869: 57 --3868: 56 --3867: 57 --3866: 57 --3865: 58 --3864: 56 --3863: 57 --3862: 57 --3861: 58 --3860: 57 --3859: 58 --3858: 58 --3857: 59 --3856: 56 --3855: 57 --3854: 57 --3853: 58 --3852: 57 --3851: 58 --3850: 58 --3849: 59 --3848: 57 --3847: 58 --3846: 58 --3845: 59 --3844: 58 --3843: 59 --3842: 59 --3841: 60 --3840: 53 --3839: 54 --3838: 54 --3837: 55 --3836: 54 --3835: 55 --3834: 55 --3833: 56 --3832: 54 --3831: 55 --3830: 55 --3829: 56 --3828: 55 --3827: 56 --3826: 56 --3825: 57 --3824: 54 --3823: 55 --3822: 55 --3821: 56 --3820: 55 --3819: 56 --3818: 56 --3817: 57 --3816: 55 --3815: 56 --3814: 56 --3813: 57 --3812: 56 --3811: 57 --3810: 57 --3809: 58 --3808: 54 --3807: 55 --3806: 55 --3805: 56 --3804: 55 --3803: 56 --3802: 56 --3801: 57 --3800: 55 --3799: 56 --3798: 56 --3797: 57 --3796: 56 --3795: 57 --3794: 57 --3793: 58 --3792: 55 --3791: 56 --3790: 56 --3789: 57 --3788: 56 --3787: 57 --3786: 57 --3785: 58 --3784: 56 --3783: 57 --3782: 57 --3781: 58 --3780: 57 --3779: 58 --3778: 58 --3777: 59 --3776: 54 --3775: 55 --3774: 55 --3773: 56 --3772: 55 --3771: 56 --3770: 56 --3769: 57 --3768: 55 --3767: 56 --3766: 56 --3765: 57 --3764: 56 --3763: 57 --3762: 57 --3761: 58 --3760: 55 --3759: 56 --3758: 56 --3757: 57 --3756: 56 --3755: 57 --3754: 57 --3753: 58 --3752: 56 --3751: 57 --3750: 57 --3749: 58 --3748: 57 --3747: 58 --3746: 58 --3745: 59 --3744: 55 --3743: 56 --3742: 56 --3741: 57 --3740: 56 --3739: 57 --3738: 57 --3737: 58 --3736: 56 --3735: 57 --3734: 57 --3733: 58 --3732: 57 --3731: 58 --3730: 58 --3729: 59 --3728: 56 --3727: 57 --3726: 57 --3725: 58 --3724: 57 --3723: 58 --3722: 58 --3721: 59 --3720: 57 --3719: 58 --3718: 58 --3717: 59 --3716: 58 --3715: 59 --3714: 59 --3713: 60 --3712: 54 --3711: 55 --3710: 55 --3709: 56 --3708: 55 --3707: 56 --3706: 56 --3705: 57 --3704: 55 --3703: 56 --3702: 56 --3701: 57 --3700: 56 --3699: 57 --3698: 57 --3697: 58 --3696: 55 --3695: 56 --3694: 56 --3693: 57 --3692: 56 --3691: 57 --3690: 57 --3689: 58 --3688: 56 --3687: 57 --3686: 57 --3685: 58 --3684: 57 --3683: 58 --3682: 58 --3681: 59 --3680: 55 --3679: 56 --3678: 56 --3677: 57 --3676: 56 --3675: 57 --3674: 57 --3673: 58 --3672: 56 --3671: 57 --3670: 57 --3669: 58 --3668: 57 --3667: 58 --3666: 58 --3665: 59 --3664: 56 --3663: 57 --3662: 57 --3661: 58 --3660: 57 --3659: 58 --3658: 58 --3657: 59 --3656: 57 --3655: 58 --3654: 58 --3653: 59 --3652: 58 --3651: 59 --3650: 59 --3649: 60 --3648: 55 --3647: 56 --3646: 56 --3645: 57 --3644: 56 --3643: 57 --3642: 57 --3641: 58 --3640: 56 --3639: 57 --3638: 57 --3637: 58 --3636: 57 --3635: 58 --3634: 58 --3633: 59 --3632: 56 --3631: 57 --3630: 57 --3629: 58 --3628: 57 --3627: 58 --3626: 58 --3625: 59 --3624: 57 --3623: 58 --3622: 58 --3621: 59 --3620: 58 --3619: 59 --3618: 59 --3617: 60 --3616: 56 --3615: 57 --3614: 57 --3613: 58 --3612: 57 --3611: 58 --3610: 58 --3609: 59 --3608: 57 --3607: 58 --3606: 58 --3605: 59 --3604: 58 --3603: 59 --3602: 59 --3601: 60 --3600: 57 --3599: 58 --3598: 58 --3597: 59 --3596: 58 --3595: 59 --3594: 59 --3593: 60 --3592: 58 --3591: 59 --3590: 59 --3589: 60 --3588: 59 --3587: 60 --3586: 60 --3585: 61 --3584: 53 --3583: 54 --3582: 54 --3581: 55 --3580: 54 --3579: 55 --3578: 55 --3577: 56 --3576: 54 --3575: 55 --3574: 55 --3573: 56 --3572: 55 --3571: 56 --3570: 56 --3569: 57 --3568: 54 --3567: 55 --3566: 55 --3565: 56 --3564: 55 --3563: 56 --3562: 56 --3561: 57 --3560: 55 --3559: 56 --3558: 56 --3557: 57 --3556: 56 --3555: 57 --3554: 57 --3553: 58 --3552: 54 --3551: 55 --3550: 55 --3549: 56 --3548: 55 --3547: 56 --3546: 56 --3545: 57 --3544: 55 --3543: 56 --3542: 56 --3541: 57 --3540: 56 --3539: 57 --3538: 57 --3537: 58 --3536: 55 --3535: 56 --3534: 56 --3533: 57 --3532: 56 --3531: 57 --3530: 57 --3529: 58 --3528: 56 --3527: 57 --3526: 57 --3525: 58 --3524: 57 --3523: 58 --3522: 58 --3521: 59 --3520: 54 --3519: 55 --3518: 55 --3517: 56 --3516: 55 --3515: 56 --3514: 56 --3513: 57 --3512: 55 --3511: 56 --3510: 56 --3509: 57 --3508: 56 --3507: 57 --3506: 57 --3505: 58 --3504: 55 --3503: 56 --3502: 56 --3501: 57 --3500: 56 --3499: 57 --3498: 57 --3497: 58 --3496: 56 --3495: 57 --3494: 57 --3493: 58 --3492: 57 --3491: 58 --3490: 58 --3489: 59 --3488: 55 --3487: 56 --3486: 56 --3485: 57 --3484: 56 --3483: 57 --3482: 57 --3481: 58 --3480: 56 --3479: 57 --3478: 57 --3477: 58 --3476: 57 --3475: 58 --3474: 58 --3473: 59 --3472: 56 --3471: 57 --3470: 57 --3469: 58 --3468: 57 --3467: 58 --3466: 58 --3465: 59 --3464: 57 --3463: 58 --3462: 58 --3461: 59 --3460: 58 --3459: 59 --3458: 59 --3457: 60 --3456: 54 --3455: 55 --3454: 55 --3453: 56 --3452: 55 --3451: 56 --3450: 56 --3449: 57 --3448: 55 --3447: 56 --3446: 56 --3445: 57 --3444: 56 --3443: 57 --3442: 57 --3441: 58 --3440: 55 --3439: 56 --3438: 56 --3437: 57 --3436: 56 --3435: 57 --3434: 57 --3433: 58 --3432: 56 --3431: 57 --3430: 57 --3429: 58 --3428: 57 --3427: 58 --3426: 58 --3425: 59 --3424: 55 --3423: 56 --3422: 56 --3421: 57 --3420: 56 --3419: 57 --3418: 57 --3417: 58 --3416: 56 --3415: 57 --3414: 57 --3413: 58 --3412: 57 --3411: 58 --3410: 58 --3409: 59 --3408: 56 --3407: 57 --3406: 57 --3405: 58 --3404: 57 --3403: 58 --3402: 58 --3401: 59 --3400: 57 --3399: 58 --3398: 58 --3397: 59 --3396: 58 --3395: 59 --3394: 59 --3393: 60 --3392: 55 --3391: 56 --3390: 56 --3389: 57 --3388: 56 --3387: 57 --3386: 57 --3385: 58 --3384: 56 --3383: 57 --3382: 57 --3381: 58 --3380: 57 --3379: 58 --3378: 58 --3377: 59 --3376: 56 --3375: 57 --3374: 57 --3373: 58 --3372: 57 --3371: 58 --3370: 58 --3369: 59 --3368: 57 --3367: 58 --3366: 58 --3365: 59 --3364: 58 --3363: 59 --3362: 59 --3361: 60 --3360: 56 --3359: 57 --3358: 57 --3357: 58 --3356: 57 --3355: 58 --3354: 58 --3353: 59 --3352: 57 --3351: 58 --3350: 58 --3349: 59 --3348: 58 --3347: 59 --3346: 59 --3345: 60 --3344: 57 --3343: 58 --3342: 58 --3341: 59 --3340: 58 --3339: 59 --3338: 59 --3337: 60 --3336: 58 --3335: 59 --3334: 59 --3333: 60 --3332: 59 --3331: 60 --3330: 60 --3329: 61 --3328: 54 --3327: 55 --3326: 55 --3325: 56 --3324: 55 --3323: 56 --3322: 56 --3321: 57 --3320: 55 --3319: 56 --3318: 56 --3317: 57 --3316: 56 --3315: 57 --3314: 57 --3313: 58 --3312: 55 --3311: 56 --3310: 56 --3309: 57 --3308: 56 --3307: 57 --3306: 57 --3305: 58 --3304: 56 --3303: 57 --3302: 57 --3301: 58 --3300: 57 --3299: 58 --3298: 58 --3297: 59 --3296: 55 --3295: 56 --3294: 56 --3293: 57 --3292: 56 --3291: 57 --3290: 57 --3289: 58 --3288: 56 --3287: 57 --3286: 57 --3285: 58 --3284: 57 --3283: 58 --3282: 58 --3281: 59 --3280: 56 --3279: 57 --3278: 57 --3277: 58 --3276: 57 --3275: 58 --3274: 58 --3273: 59 --3272: 57 --3271: 58 --3270: 58 --3269: 59 --3268: 58 --3267: 59 --3266: 59 --3265: 60 --3264: 55 --3263: 56 --3262: 56 --3261: 57 --3260: 56 --3259: 57 --3258: 57 --3257: 58 --3256: 56 --3255: 57 --3254: 57 --3253: 58 --3252: 57 --3251: 58 --3250: 58 --3249: 59 --3248: 56 --3247: 57 --3246: 57 --3245: 58 --3244: 57 --3243: 58 --3242: 58 --3241: 59 --3240: 57 --3239: 58 --3238: 58 --3237: 59 --3236: 58 --3235: 59 --3234: 59 --3233: 60 --3232: 56 --3231: 57 --3230: 57 --3229: 58 --3228: 57 --3227: 58 --3226: 58 --3225: 59 --3224: 57 --3223: 58 --3222: 58 --3221: 59 --3220: 58 --3219: 59 --3218: 59 --3217: 60 --3216: 57 --3215: 58 --3214: 58 --3213: 59 --3212: 58 --3211: 59 --3210: 59 --3209: 60 --3208: 58 --3207: 59 --3206: 59 --3205: 60 --3204: 59 --3203: 60 --3202: 60 --3201: 61 --3200: 55 --3199: 56 --3198: 56 --3197: 57 --3196: 56 --3195: 57 --3194: 57 --3193: 58 --3192: 56 --3191: 57 --3190: 57 --3189: 58 --3188: 57 --3187: 58 --3186: 58 --3185: 59 --3184: 56 --3183: 57 --3182: 57 --3181: 58 --3180: 57 --3179: 58 --3178: 58 --3177: 59 --3176: 57 --3175: 58 --3174: 58 --3173: 59 --3172: 58 --3171: 59 --3170: 59 --3169: 60 --3168: 56 --3167: 57 --3166: 57 --3165: 58 --3164: 57 --3163: 58 --3162: 58 --3161: 59 --3160: 57 --3159: 58 --3158: 58 --3157: 59 --3156: 58 --3155: 59 --3154: 59 --3153: 60 --3152: 57 --3151: 58 --3150: 58 --3149: 59 --3148: 58 --3147: 59 --3146: 59 --3145: 60 --3144: 58 --3143: 59 --3142: 59 --3141: 60 --3140: 59 --3139: 60 --3138: 60 --3137: 61 --3136: 56 --3135: 57 --3134: 57 --3133: 58 --3132: 57 --3131: 58 --3130: 58 --3129: 59 --3128: 57 --3127: 58 --3126: 58 --3125: 59 --3124: 58 --3123: 59 --3122: 59 --3121: 60 --3120: 57 --3119: 58 --3118: 58 --3117: 59 --3116: 58 --3115: 59 --3114: 59 --3113: 60 --3112: 58 --3111: 59 --3110: 59 --3109: 60 --3108: 59 --3107: 60 --3106: 60 --3105: 61 --3104: 57 --3103: 58 --3102: 58 --3101: 59 --3100: 58 --3099: 59 --3098: 59 --3097: 60 --3096: 58 --3095: 59 --3094: 59 --3093: 60 --3092: 59 --3091: 60 --3090: 60 --3089: 61 --3088: 58 --3087: 59 --3086: 59 --3085: 60 --3084: 59 --3083: 60 --3082: 60 --3081: 61 --3080: 59 --3079: 60 --3078: 60 --3077: 61 --3076: 60 --3075: 61 --3074: 61 --3073: 62 --3072: 53 --3071: 54 --3070: 54 --3069: 55 --3068: 54 --3067: 55 --3066: 55 --3065: 56 --3064: 54 --3063: 55 --3062: 55 --3061: 56 --3060: 55 --3059: 56 --3058: 56 --3057: 57 --3056: 54 --3055: 55 --3054: 55 --3053: 56 --3052: 55 --3051: 56 --3050: 56 --3049: 57 --3048: 55 --3047: 56 --3046: 56 --3045: 57 --3044: 56 --3043: 57 --3042: 57 --3041: 58 --3040: 54 --3039: 55 --3038: 55 --3037: 56 --3036: 55 --3035: 56 --3034: 56 --3033: 57 --3032: 55 --3031: 56 --3030: 56 --3029: 57 --3028: 56 --3027: 57 --3026: 57 --3025: 58 --3024: 55 --3023: 56 --3022: 56 --3021: 57 --3020: 56 --3019: 57 --3018: 57 --3017: 58 --3016: 56 --3015: 57 --3014: 57 --3013: 58 --3012: 57 --3011: 58 --3010: 58 --3009: 59 --3008: 54 --3007: 55 --3006: 55 --3005: 56 --3004: 55 --3003: 56 --3002: 56 --3001: 57 --3000: 55 --2999: 56 --2998: 56 --2997: 57 --2996: 56 --2995: 57 --2994: 57 --2993: 58 --2992: 55 --2991: 56 --2990: 56 --2989: 57 --2988: 56 --2987: 57 --2986: 57 --2985: 58 --2984: 56 --2983: 57 --2982: 57 --2981: 58 --2980: 57 --2979: 58 --2978: 58 --2977: 59 --2976: 55 --2975: 56 --2974: 56 --2973: 57 --2972: 56 --2971: 57 --2970: 57 --2969: 58 --2968: 56 --2967: 57 --2966: 57 --2965: 58 --2964: 57 --2963: 58 --2962: 58 --2961: 59 --2960: 56 --2959: 57 --2958: 57 --2957: 58 --2956: 57 --2955: 58 --2954: 58 --2953: 59 --2952: 57 --2951: 58 --2950: 58 --2949: 59 --2948: 58 --2947: 59 --2946: 59 --2945: 60 --2944: 54 --2943: 55 --2942: 55 --2941: 56 --2940: 55 --2939: 56 --2938: 56 --2937: 57 --2936: 55 --2935: 56 --2934: 56 --2933: 57 --2932: 56 --2931: 57 --2930: 57 --2929: 58 --2928: 55 --2927: 56 --2926: 56 --2925: 57 --2924: 56 --2923: 57 --2922: 57 --2921: 58 --2920: 56 --2919: 57 --2918: 57 --2917: 58 --2916: 57 --2915: 58 --2914: 58 --2913: 59 --2912: 55 --2911: 56 --2910: 56 --2909: 57 --2908: 56 --2907: 57 --2906: 57 --2905: 58 --2904: 56 --2903: 57 --2902: 57 --2901: 58 --2900: 57 --2899: 58 --2898: 58 --2897: 59 --2896: 56 --2895: 57 --2894: 57 --2893: 58 --2892: 57 --2891: 58 --2890: 58 --2889: 59 --2888: 57 --2887: 58 --2886: 58 --2885: 59 --2884: 58 --2883: 59 --2882: 59 --2881: 60 --2880: 55 --2879: 56 --2878: 56 --2877: 57 --2876: 56 --2875: 57 --2874: 57 --2873: 58 --2872: 56 --2871: 57 --2870: 57 --2869: 58 --2868: 57 --2867: 58 --2866: 58 --2865: 59 --2864: 56 --2863: 57 --2862: 57 --2861: 58 --2860: 57 --2859: 58 --2858: 58 --2857: 59 --2856: 57 --2855: 58 --2854: 58 --2853: 59 --2852: 58 --2851: 59 --2850: 59 --2849: 60 --2848: 56 --2847: 57 --2846: 57 --2845: 58 --2844: 57 --2843: 58 --2842: 58 --2841: 59 --2840: 57 --2839: 58 --2838: 58 --2837: 59 --2836: 58 --2835: 59 --2834: 59 --2833: 60 --2832: 57 --2831: 58 --2830: 58 --2829: 59 --2828: 58 --2827: 59 --2826: 59 --2825: 60 --2824: 58 --2823: 59 --2822: 59 --2821: 60 --2820: 59 --2819: 60 --2818: 60 --2817: 61 --2816: 54 --2815: 55 --2814: 55 --2813: 56 --2812: 55 --2811: 56 --2810: 56 --2809: 57 --2808: 55 --2807: 56 --2806: 56 --2805: 57 --2804: 56 --2803: 57 --2802: 57 --2801: 58 --2800: 55 --2799: 56 --2798: 56 --2797: 57 --2796: 56 --2795: 57 --2794: 57 --2793: 58 --2792: 56 --2791: 57 --2790: 57 --2789: 58 --2788: 57 --2787: 58 --2786: 58 --2785: 59 --2784: 55 --2783: 56 --2782: 56 --2781: 57 --2780: 56 --2779: 57 --2778: 57 --2777: 58 --2776: 56 --2775: 57 --2774: 57 --2773: 58 --2772: 57 --2771: 58 --2770: 58 --2769: 59 --2768: 56 --2767: 57 --2766: 57 --2765: 58 --2764: 57 --2763: 58 --2762: 58 --2761: 59 --2760: 57 --2759: 58 --2758: 58 --2757: 59 --2756: 58 --2755: 59 --2754: 59 --2753: 60 --2752: 55 --2751: 56 --2750: 56 --2749: 57 --2748: 56 --2747: 57 --2746: 57 --2745: 58 --2744: 56 --2743: 57 --2742: 57 --2741: 58 --2740: 57 --2739: 58 --2738: 58 --2737: 59 --2736: 56 --2735: 57 --2734: 57 --2733: 58 --2732: 57 --2731: 58 --2730: 58 --2729: 59 --2728: 57 --2727: 58 --2726: 58 --2725: 59 --2724: 58 --2723: 59 --2722: 59 --2721: 60 --2720: 56 --2719: 57 --2718: 57 --2717: 58 --2716: 57 --2715: 58 --2714: 58 --2713: 59 --2712: 57 --2711: 58 --2710: 58 --2709: 59 --2708: 58 --2707: 59 --2706: 59 --2705: 60 --2704: 57 --2703: 58 --2702: 58 --2701: 59 --2700: 58 --2699: 59 --2698: 59 --2697: 60 --2696: 58 --2695: 59 --2694: 59 --2693: 60 --2692: 59 --2691: 60 --2690: 60 --2689: 61 --2688: 55 --2687: 56 --2686: 56 --2685: 57 --2684: 56 --2683: 57 --2682: 57 --2681: 58 --2680: 56 --2679: 57 --2678: 57 --2677: 58 --2676: 57 --2675: 58 --2674: 58 --2673: 59 --2672: 56 --2671: 57 --2670: 57 --2669: 58 --2668: 57 --2667: 58 --2666: 58 --2665: 59 --2664: 57 --2663: 58 --2662: 58 --2661: 59 --2660: 58 --2659: 59 --2658: 59 --2657: 60 --2656: 56 --2655: 57 --2654: 57 --2653: 58 --2652: 57 --2651: 58 --2650: 58 --2649: 59 --2648: 57 --2647: 58 --2646: 58 --2645: 59 --2644: 58 --2643: 59 --2642: 59 --2641: 60 --2640: 57 --2639: 58 --2638: 58 --2637: 59 --2636: 58 --2635: 59 --2634: 59 --2633: 60 --2632: 58 --2631: 59 --2630: 59 --2629: 60 --2628: 59 --2627: 60 --2626: 60 --2625: 61 --2624: 56 --2623: 57 --2622: 57 --2621: 58 --2620: 57 --2619: 58 --2618: 58 --2617: 59 --2616: 57 --2615: 58 --2614: 58 --2613: 59 --2612: 58 --2611: 59 --2610: 59 --2609: 60 --2608: 57 --2607: 58 --2606: 58 --2605: 59 --2604: 58 --2603: 59 --2602: 59 --2601: 60 --2600: 58 --2599: 59 --2598: 59 --2597: 60 --2596: 59 --2595: 60 --2594: 60 --2593: 61 --2592: 57 --2591: 58 --2590: 58 --2589: 59 --2588: 58 --2587: 59 --2586: 59 --2585: 60 --2584: 58 --2583: 59 --2582: 59 --2581: 60 --2580: 59 --2579: 60 --2578: 60 --2577: 61 --2576: 58 --2575: 59 --2574: 59 --2573: 60 --2572: 59 --2571: 60 --2570: 60 --2569: 61 --2568: 59 --2567: 60 --2566: 60 --2565: 61 --2564: 60 --2563: 61 --2562: 61 --2561: 62 --2560: 54 --2559: 55 --2558: 55 --2557: 56 --2556: 55 --2555: 56 --2554: 56 --2553: 57 --2552: 55 --2551: 56 --2550: 56 --2549: 57 --2548: 56 --2547: 57 --2546: 57 --2545: 58 --2544: 55 --2543: 56 --2542: 56 --2541: 57 --2540: 56 --2539: 57 --2538: 57 --2537: 58 --2536: 56 --2535: 57 --2534: 57 --2533: 58 --2532: 57 --2531: 58 --2530: 58 --2529: 59 --2528: 55 --2527: 56 --2526: 56 --2525: 57 --2524: 56 --2523: 57 --2522: 57 --2521: 58 --2520: 56 --2519: 57 --2518: 57 --2517: 58 --2516: 57 --2515: 58 --2514: 58 --2513: 59 --2512: 56 --2511: 57 --2510: 57 --2509: 58 --2508: 57 --2507: 58 --2506: 58 --2505: 59 --2504: 57 --2503: 58 --2502: 58 --2501: 59 --2500: 58 --2499: 59 --2498: 59 --2497: 60 --2496: 55 --2495: 56 --2494: 56 --2493: 57 --2492: 56 --2491: 57 --2490: 57 --2489: 58 --2488: 56 --2487: 57 --2486: 57 --2485: 58 --2484: 57 --2483: 58 --2482: 58 --2481: 59 --2480: 56 --2479: 57 --2478: 57 --2477: 58 --2476: 57 --2475: 58 --2474: 58 --2473: 59 --2472: 57 --2471: 58 --2470: 58 --2469: 59 --2468: 58 --2467: 59 --2466: 59 --2465: 60 --2464: 56 --2463: 57 --2462: 57 --2461: 58 --2460: 57 --2459: 58 --2458: 58 --2457: 59 --2456: 57 --2455: 58 --2454: 58 --2453: 59 --2452: 58 --2451: 59 --2450: 59 --2449: 60 --2448: 57 --2447: 58 --2446: 58 --2445: 59 --2444: 58 --2443: 59 --2442: 59 --2441: 60 --2440: 58 --2439: 59 --2438: 59 --2437: 60 --2436: 59 --2435: 60 --2434: 60 --2433: 61 --2432: 55 --2431: 56 --2430: 56 --2429: 57 --2428: 56 --2427: 57 --2426: 57 --2425: 58 --2424: 56 --2423: 57 --2422: 57 --2421: 58 --2420: 57 --2419: 58 --2418: 58 --2417: 59 --2416: 56 --2415: 57 --2414: 57 --2413: 58 --2412: 57 --2411: 58 --2410: 58 --2409: 59 --2408: 57 --2407: 58 --2406: 58 --2405: 59 --2404: 58 --2403: 59 --2402: 59 --2401: 60 --2400: 56 --2399: 57 --2398: 57 --2397: 58 --2396: 57 --2395: 58 --2394: 58 --2393: 59 --2392: 57 --2391: 58 --2390: 58 --2389: 59 --2388: 58 --2387: 59 --2386: 59 --2385: 60 --2384: 57 --2383: 58 --2382: 58 --2381: 59 --2380: 58 --2379: 59 --2378: 59 --2377: 60 --2376: 58 --2375: 59 --2374: 59 --2373: 60 --2372: 59 --2371: 60 --2370: 60 --2369: 61 --2368: 56 --2367: 57 --2366: 57 --2365: 58 --2364: 57 --2363: 58 --2362: 58 --2361: 59 --2360: 57 --2359: 58 --2358: 58 --2357: 59 --2356: 58 --2355: 59 --2354: 59 --2353: 60 --2352: 57 --2351: 58 --2350: 58 --2349: 59 --2348: 58 --2347: 59 --2346: 59 --2345: 60 --2344: 58 --2343: 59 --2342: 59 --2341: 60 --2340: 59 --2339: 60 --2338: 60 --2337: 61 --2336: 57 --2335: 58 --2334: 58 --2333: 59 --2332: 58 --2331: 59 --2330: 59 --2329: 60 --2328: 58 --2327: 59 --2326: 59 --2325: 60 --2324: 59 --2323: 60 --2322: 60 --2321: 61 --2320: 58 --2319: 59 --2318: 59 --2317: 60 --2316: 59 --2315: 60 --2314: 60 --2313: 61 --2312: 59 --2311: 60 --2310: 60 --2309: 61 --2308: 60 --2307: 61 --2306: 61 --2305: 62 --2304: 55 --2303: 56 --2302: 56 --2301: 57 --2300: 56 --2299: 57 --2298: 57 --2297: 58 --2296: 56 --2295: 57 --2294: 57 --2293: 58 --2292: 57 --2291: 58 --2290: 58 --2289: 59 --2288: 56 --2287: 57 --2286: 57 --2285: 58 --2284: 57 --2283: 58 --2282: 58 --2281: 59 --2280: 57 --2279: 58 --2278: 58 --2277: 59 --2276: 58 --2275: 59 --2274: 59 --2273: 60 --2272: 56 --2271: 57 --2270: 57 --2269: 58 --2268: 57 --2267: 58 --2266: 58 --2265: 59 --2264: 57 --2263: 58 --2262: 58 --2261: 59 --2260: 58 --2259: 59 --2258: 59 --2257: 60 --2256: 57 --2255: 58 --2254: 58 --2253: 59 --2252: 58 --2251: 59 --2250: 59 --2249: 60 --2248: 58 --2247: 59 --2246: 59 --2245: 60 --2244: 59 --2243: 60 --2242: 60 --2241: 61 --2240: 56 --2239: 57 --2238: 57 --2237: 58 --2236: 57 --2235: 58 --2234: 58 --2233: 59 --2232: 57 --2231: 58 --2230: 58 --2229: 59 --2228: 58 --2227: 59 --2226: 59 --2225: 60 --2224: 57 --2223: 58 --2222: 58 --2221: 59 --2220: 58 --2219: 59 --2218: 59 --2217: 60 --2216: 58 --2215: 59 --2214: 59 --2213: 60 --2212: 59 --2211: 60 --2210: 60 --2209: 61 --2208: 57 --2207: 58 --2206: 58 --2205: 59 --2204: 58 --2203: 59 --2202: 59 --2201: 60 --2200: 58 --2199: 59 --2198: 59 --2197: 60 --2196: 59 --2195: 60 --2194: 60 --2193: 61 --2192: 58 --2191: 59 --2190: 59 --2189: 60 --2188: 59 --2187: 60 --2186: 60 --2185: 61 --2184: 59 --2183: 60 --2182: 60 --2181: 61 --2180: 60 --2179: 61 --2178: 61 --2177: 62 --2176: 56 --2175: 57 --2174: 57 --2173: 58 --2172: 57 --2171: 58 --2170: 58 --2169: 59 --2168: 57 --2167: 58 --2166: 58 --2165: 59 --2164: 58 --2163: 59 --2162: 59 --2161: 60 --2160: 57 --2159: 58 --2158: 58 --2157: 59 --2156: 58 --2155: 59 --2154: 59 --2153: 60 --2152: 58 --2151: 59 --2150: 59 --2149: 60 --2148: 59 --2147: 60 --2146: 60 --2145: 61 --2144: 57 --2143: 58 --2142: 58 --2141: 59 --2140: 58 --2139: 59 --2138: 59 --2137: 60 --2136: 58 --2135: 59 --2134: 59 --2133: 60 --2132: 59 --2131: 60 --2130: 60 --2129: 61 --2128: 58 --2127: 59 --2126: 59 --2125: 60 --2124: 59 --2123: 60 --2122: 60 --2121: 61 --2120: 59 --2119: 60 --2118: 60 --2117: 61 --2116: 60 --2115: 61 --2114: 61 --2113: 62 --2112: 57 --2111: 58 --2110: 58 --2109: 59 --2108: 58 --2107: 59 --2106: 59 --2105: 60 --2104: 58 --2103: 59 --2102: 59 --2101: 60 --2100: 59 --2099: 60 --2098: 60 --2097: 61 --2096: 58 --2095: 59 --2094: 59 --2093: 60 --2092: 59 --2091: 60 --2090: 60 --2089: 61 --2088: 59 --2087: 60 --2086: 60 --2085: 61 --2084: 60 --2083: 61 --2082: 61 --2081: 62 --2080: 58 --2079: 59 --2078: 59 --2077: 60 --2076: 59 --2075: 60 --2074: 60 --2073: 61 --2072: 59 --2071: 60 --2070: 60 --2069: 61 --2068: 60 --2067: 61 --2066: 61 --2065: 62 --2064: 59 --2063: 60 --2062: 60 --2061: 61 --2060: 60 --2059: 61 --2058: 61 --2057: 62 --2056: 60 --2055: 61 --2054: 61 --2053: 62 --2052: 61 --2051: 62 --2050: 62 --2049: 63 --2048: 53 --2047: 54 --2046: 54 --2045: 55 --2044: 54 --2043: 55 --2042: 55 --2041: 56 --2040: 54 --2039: 55 --2038: 55 --2037: 56 --2036: 55 --2035: 56 --2034: 56 --2033: 57 --2032: 54 --2031: 55 --2030: 55 --2029: 56 --2028: 55 --2027: 56 --2026: 56 --2025: 57 --2024: 55 --2023: 56 --2022: 56 --2021: 57 --2020: 56 --2019: 57 --2018: 57 --2017: 58 --2016: 54 --2015: 55 --2014: 55 --2013: 56 --2012: 55 --2011: 56 --2010: 56 --2009: 57 --2008: 55 --2007: 56 --2006: 56 --2005: 57 --2004: 56 --2003: 57 --2002: 57 --2001: 58 --2000: 55 --1999: 56 --1998: 56 --1997: 57 --1996: 56 --1995: 57 --1994: 57 --1993: 58 --1992: 56 --1991: 57 --1990: 57 --1989: 58 --1988: 57 --1987: 58 --1986: 58 --1985: 59 --1984: 54 --1983: 55 --1982: 55 --1981: 56 --1980: 55 --1979: 56 --1978: 56 --1977: 57 --1976: 55 --1975: 56 --1974: 56 --1973: 57 --1972: 56 --1971: 57 --1970: 57 --1969: 58 --1968: 55 --1967: 56 --1966: 56 --1965: 57 --1964: 56 --1963: 57 --1962: 57 --1961: 58 --1960: 56 --1959: 57 --1958: 57 --1957: 58 --1956: 57 --1955: 58 --1954: 58 --1953: 59 --1952: 55 --1951: 56 --1950: 56 --1949: 57 --1948: 56 --1947: 57 --1946: 57 --1945: 58 --1944: 56 --1943: 57 --1942: 57 --1941: 58 --1940: 57 --1939: 58 --1938: 58 --1937: 59 --1936: 56 --1935: 57 --1934: 57 --1933: 58 --1932: 57 --1931: 58 --1930: 58 --1929: 59 --1928: 57 --1927: 58 --1926: 58 --1925: 59 --1924: 58 --1923: 59 --1922: 59 --1921: 60 --1920: 54 --1919: 55 --1918: 55 --1917: 56 --1916: 55 --1915: 56 --1914: 56 --1913: 57 --1912: 55 --1911: 56 --1910: 56 --1909: 57 --1908: 56 --1907: 57 --1906: 57 --1905: 58 --1904: 55 --1903: 56 --1902: 56 --1901: 57 --1900: 56 --1899: 57 --1898: 57 --1897: 58 --1896: 56 --1895: 57 --1894: 57 --1893: 58 --1892: 57 --1891: 58 --1890: 58 --1889: 59 --1888: 55 --1887: 56 --1886: 56 --1885: 57 --1884: 56 --1883: 57 --1882: 57 --1881: 58 --1880: 56 --1879: 57 --1878: 57 --1877: 58 --1876: 57 --1875: 58 --1874: 58 --1873: 59 --1872: 56 --1871: 57 --1870: 57 --1869: 58 --1868: 57 --1867: 58 --1866: 58 --1865: 59 --1864: 57 --1863: 58 --1862: 58 --1861: 59 --1860: 58 --1859: 59 --1858: 59 --1857: 60 --1856: 55 --1855: 56 --1854: 56 --1853: 57 --1852: 56 --1851: 57 --1850: 57 --1849: 58 --1848: 56 --1847: 57 --1846: 57 --1845: 58 --1844: 57 --1843: 58 --1842: 58 --1841: 59 --1840: 56 --1839: 57 --1838: 57 --1837: 58 --1836: 57 --1835: 58 --1834: 58 --1833: 59 --1832: 57 --1831: 58 --1830: 58 --1829: 59 --1828: 58 --1827: 59 --1826: 59 --1825: 60 --1824: 56 --1823: 57 --1822: 57 --1821: 58 --1820: 57 --1819: 58 --1818: 58 --1817: 59 --1816: 57 --1815: 58 --1814: 58 --1813: 59 --1812: 58 --1811: 59 --1810: 59 --1809: 60 --1808: 57 --1807: 58 --1806: 58 --1805: 59 --1804: 58 --1803: 59 --1802: 59 --1801: 60 --1800: 58 --1799: 59 --1798: 59 --1797: 60 --1796: 59 --1795: 60 --1794: 60 --1793: 61 --1792: 54 --1791: 55 --1790: 55 --1789: 56 --1788: 55 --1787: 56 --1786: 56 --1785: 57 --1784: 55 --1783: 56 --1782: 56 --1781: 57 --1780: 56 --1779: 57 --1778: 57 --1777: 58 --1776: 55 --1775: 56 --1774: 56 --1773: 57 --1772: 56 --1771: 57 --1770: 57 --1769: 58 --1768: 56 --1767: 57 --1766: 57 --1765: 58 --1764: 57 --1763: 58 --1762: 58 --1761: 59 --1760: 55 --1759: 56 --1758: 56 --1757: 57 --1756: 56 --1755: 57 --1754: 57 --1753: 58 --1752: 56 --1751: 57 --1750: 57 --1749: 58 --1748: 57 --1747: 58 --1746: 58 --1745: 59 --1744: 56 --1743: 57 --1742: 57 --1741: 58 --1740: 57 --1739: 58 --1738: 58 --1737: 59 --1736: 57 --1735: 58 --1734: 58 --1733: 59 --1732: 58 --1731: 59 --1730: 59 --1729: 60 --1728: 55 --1727: 56 --1726: 56 --1725: 57 --1724: 56 --1723: 57 --1722: 57 --1721: 58 --1720: 56 --1719: 57 --1718: 57 --1717: 58 --1716: 57 --1715: 58 --1714: 58 --1713: 59 --1712: 56 --1711: 57 --1710: 57 --1709: 58 --1708: 57 --1707: 58 --1706: 58 --1705: 59 --1704: 57 --1703: 58 --1702: 58 --1701: 59 --1700: 58 --1699: 59 --1698: 59 --1697: 60 --1696: 56 --1695: 57 --1694: 57 --1693: 58 --1692: 57 --1691: 58 --1690: 58 --1689: 59 --1688: 57 --1687: 58 --1686: 58 --1685: 59 --1684: 58 --1683: 59 --1682: 59 --1681: 60 --1680: 57 --1679: 58 --1678: 58 --1677: 59 --1676: 58 --1675: 59 --1674: 59 --1673: 60 --1672: 58 --1671: 59 --1670: 59 --1669: 60 --1668: 59 --1667: 60 --1666: 60 --1665: 61 --1664: 55 --1663: 56 --1662: 56 --1661: 57 --1660: 56 --1659: 57 --1658: 57 --1657: 58 --1656: 56 --1655: 57 --1654: 57 --1653: 58 --1652: 57 --1651: 58 --1650: 58 --1649: 59 --1648: 56 --1647: 57 --1646: 57 --1645: 58 --1644: 57 --1643: 58 --1642: 58 --1641: 59 --1640: 57 --1639: 58 --1638: 58 --1637: 59 --1636: 58 --1635: 59 --1634: 59 --1633: 60 --1632: 56 --1631: 57 --1630: 57 --1629: 58 --1628: 57 --1627: 58 --1626: 58 --1625: 59 --1624: 57 --1623: 58 --1622: 58 --1621: 59 --1620: 58 --1619: 59 --1618: 59 --1617: 60 --1616: 57 --1615: 58 --1614: 58 --1613: 59 --1612: 58 --1611: 59 --1610: 59 --1609: 60 --1608: 58 --1607: 59 --1606: 59 --1605: 60 --1604: 59 --1603: 60 --1602: 60 --1601: 61 --1600: 56 --1599: 57 --1598: 57 --1597: 58 --1596: 57 --1595: 58 --1594: 58 --1593: 59 --1592: 57 --1591: 58 --1590: 58 --1589: 59 --1588: 58 --1587: 59 --1586: 59 --1585: 60 --1584: 57 --1583: 58 --1582: 58 --1581: 59 --1580: 58 --1579: 59 --1578: 59 --1577: 60 --1576: 58 --1575: 59 --1574: 59 --1573: 60 --1572: 59 --1571: 60 --1570: 60 --1569: 61 --1568: 57 --1567: 58 --1566: 58 --1565: 59 --1564: 58 --1563: 59 --1562: 59 --1561: 60 --1560: 58 --1559: 59 --1558: 59 --1557: 60 --1556: 59 --1555: 60 --1554: 60 --1553: 61 --1552: 58 --1551: 59 --1550: 59 --1549: 60 --1548: 59 --1547: 60 --1546: 60 --1545: 61 --1544: 59 --1543: 60 --1542: 60 --1541: 61 --1540: 60 --1539: 61 --1538: 61 --1537: 62 --1536: 54 --1535: 55 --1534: 55 --1533: 56 --1532: 55 --1531: 56 --1530: 56 --1529: 57 --1528: 55 --1527: 56 --1526: 56 --1525: 57 --1524: 56 --1523: 57 --1522: 57 --1521: 58 --1520: 55 --1519: 56 --1518: 56 --1517: 57 --1516: 56 --1515: 57 --1514: 57 --1513: 58 --1512: 56 --1511: 57 --1510: 57 --1509: 58 --1508: 57 --1507: 58 --1506: 58 --1505: 59 --1504: 55 --1503: 56 --1502: 56 --1501: 57 --1500: 56 --1499: 57 --1498: 57 --1497: 58 --1496: 56 --1495: 57 --1494: 57 --1493: 58 --1492: 57 --1491: 58 --1490: 58 --1489: 59 --1488: 56 --1487: 57 --1486: 57 --1485: 58 --1484: 57 --1483: 58 --1482: 58 --1481: 59 --1480: 57 --1479: 58 --1478: 58 --1477: 59 --1476: 58 --1475: 59 --1474: 59 --1473: 60 --1472: 55 --1471: 56 --1470: 56 --1469: 57 --1468: 56 --1467: 57 --1466: 57 --1465: 58 --1464: 56 --1463: 57 --1462: 57 --1461: 58 --1460: 57 --1459: 58 --1458: 58 --1457: 59 --1456: 56 --1455: 57 --1454: 57 --1453: 58 --1452: 57 --1451: 58 --1450: 58 --1449: 59 --1448: 57 --1447: 58 --1446: 58 --1445: 59 --1444: 58 --1443: 59 --1442: 59 --1441: 60 --1440: 56 --1439: 57 --1438: 57 --1437: 58 --1436: 57 --1435: 58 --1434: 58 --1433: 59 --1432: 57 --1431: 58 --1430: 58 --1429: 59 --1428: 58 --1427: 59 --1426: 59 --1425: 60 --1424: 57 --1423: 58 --1422: 58 --1421: 59 --1420: 58 --1419: 59 --1418: 59 --1417: 60 --1416: 58 --1415: 59 --1414: 59 --1413: 60 --1412: 59 --1411: 60 --1410: 60 --1409: 61 --1408: 55 --1407: 56 --1406: 56 --1405: 57 --1404: 56 --1403: 57 --1402: 57 --1401: 58 --1400: 56 --1399: 57 --1398: 57 --1397: 58 --1396: 57 --1395: 58 --1394: 58 --1393: 59 --1392: 56 --1391: 57 --1390: 57 --1389: 58 --1388: 57 --1387: 58 --1386: 58 --1385: 59 --1384: 57 --1383: 58 --1382: 58 --1381: 59 --1380: 58 --1379: 59 --1378: 59 --1377: 60 --1376: 56 --1375: 57 --1374: 57 --1373: 58 --1372: 57 --1371: 58 --1370: 58 --1369: 59 --1368: 57 --1367: 58 --1366: 58 --1365: 59 --1364: 58 --1363: 59 --1362: 59 --1361: 60 --1360: 57 --1359: 58 --1358: 58 --1357: 59 --1356: 58 --1355: 59 --1354: 59 --1353: 60 --1352: 58 --1351: 59 --1350: 59 --1349: 60 --1348: 59 --1347: 60 --1346: 60 --1345: 61 --1344: 56 --1343: 57 --1342: 57 --1341: 58 --1340: 57 --1339: 58 --1338: 58 --1337: 59 --1336: 57 --1335: 58 --1334: 58 --1333: 59 --1332: 58 --1331: 59 --1330: 59 --1329: 60 --1328: 57 --1327: 58 --1326: 58 --1325: 59 --1324: 58 --1323: 59 --1322: 59 --1321: 60 --1320: 58 --1319: 59 --1318: 59 --1317: 60 --1316: 59 --1315: 60 --1314: 60 --1313: 61 --1312: 57 --1311: 58 --1310: 58 --1309: 59 --1308: 58 --1307: 59 --1306: 59 --1305: 60 --1304: 58 --1303: 59 --1302: 59 --1301: 60 --1300: 59 --1299: 60 --1298: 60 --1297: 61 --1296: 58 --1295: 59 --1294: 59 --1293: 60 --1292: 59 --1291: 60 --1290: 60 --1289: 61 --1288: 59 --1287: 60 --1286: 60 --1285: 61 --1284: 60 --1283: 61 --1282: 61 --1281: 62 --1280: 55 --1279: 56 --1278: 56 --1277: 57 --1276: 56 --1275: 57 --1274: 57 --1273: 58 --1272: 56 --1271: 57 --1270: 57 --1269: 58 --1268: 57 --1267: 58 --1266: 58 --1265: 59 --1264: 56 --1263: 57 --1262: 57 --1261: 58 --1260: 57 --1259: 58 --1258: 58 --1257: 59 --1256: 57 --1255: 58 --1254: 58 --1253: 59 --1252: 58 --1251: 59 --1250: 59 --1249: 60 --1248: 56 --1247: 57 --1246: 57 --1245: 58 --1244: 57 --1243: 58 --1242: 58 --1241: 59 --1240: 57 --1239: 58 --1238: 58 --1237: 59 --1236: 58 --1235: 59 --1234: 59 --1233: 60 --1232: 57 --1231: 58 --1230: 58 --1229: 59 --1228: 58 --1227: 59 --1226: 59 --1225: 60 --1224: 58 --1223: 59 --1222: 59 --1221: 60 --1220: 59 --1219: 60 --1218: 60 --1217: 61 --1216: 56 --1215: 57 --1214: 57 --1213: 58 --1212: 57 --1211: 58 --1210: 58 --1209: 59 --1208: 57 --1207: 58 --1206: 58 --1205: 59 --1204: 58 --1203: 59 --1202: 59 --1201: 60 --1200: 57 --1199: 58 --1198: 58 --1197: 59 --1196: 58 --1195: 59 --1194: 59 --1193: 60 --1192: 58 --1191: 59 --1190: 59 --1189: 60 --1188: 59 --1187: 60 --1186: 60 --1185: 61 --1184: 57 --1183: 58 --1182: 58 --1181: 59 --1180: 58 --1179: 59 --1178: 59 --1177: 60 --1176: 58 --1175: 59 --1174: 59 --1173: 60 --1172: 59 --1171: 60 --1170: 60 --1169: 61 --1168: 58 --1167: 59 --1166: 59 --1165: 60 --1164: 59 --1163: 60 --1162: 60 --1161: 61 --1160: 59 --1159: 60 --1158: 60 --1157: 61 --1156: 60 --1155: 61 --1154: 61 --1153: 62 --1152: 56 --1151: 57 --1150: 57 --1149: 58 --1148: 57 --1147: 58 --1146: 58 --1145: 59 --1144: 57 --1143: 58 --1142: 58 --1141: 59 --1140: 58 --1139: 59 --1138: 59 --1137: 60 --1136: 57 --1135: 58 --1134: 58 --1133: 59 --1132: 58 --1131: 59 --1130: 59 --1129: 60 --1128: 58 --1127: 59 --1126: 59 --1125: 60 --1124: 59 --1123: 60 --1122: 60 --1121: 61 --1120: 57 --1119: 58 --1118: 58 --1117: 59 --1116: 58 --1115: 59 --1114: 59 --1113: 60 --1112: 58 --1111: 59 --1110: 59 --1109: 60 --1108: 59 --1107: 60 --1106: 60 --1105: 61 --1104: 58 --1103: 59 --1102: 59 --1101: 60 --1100: 59 --1099: 60 --1098: 60 --1097: 61 --1096: 59 --1095: 60 --1094: 60 --1093: 61 --1092: 60 --1091: 61 --1090: 61 --1089: 62 --1088: 57 --1087: 58 --1086: 58 --1085: 59 --1084: 58 --1083: 59 --1082: 59 --1081: 60 --1080: 58 --1079: 59 --1078: 59 --1077: 60 --1076: 59 --1075: 60 --1074: 60 --1073: 61 --1072: 58 --1071: 59 --1070: 59 --1069: 60 --1068: 59 --1067: 60 --1066: 60 --1065: 61 --1064: 59 --1063: 60 --1062: 60 --1061: 61 --1060: 60 --1059: 61 --1058: 61 --1057: 62 --1056: 58 --1055: 59 --1054: 59 --1053: 60 --1052: 59 --1051: 60 --1050: 60 --1049: 61 --1048: 59 --1047: 60 --1046: 60 --1045: 61 --1044: 60 --1043: 61 --1042: 61 --1041: 62 --1040: 59 --1039: 60 --1038: 60 --1037: 61 --1036: 60 --1035: 61 --1034: 61 --1033: 62 --1032: 60 --1031: 61 --1030: 61 --1029: 62 --1028: 61 --1027: 62 --1026: 62 --1025: 63 --1024: 54 --1023: 55 --1022: 55 --1021: 56 --1020: 55 --1019: 56 --1018: 56 --1017: 57 --1016: 55 --1015: 56 --1014: 56 --1013: 57 --1012: 56 --1011: 57 --1010: 57 --1009: 58 --1008: 55 --1007: 56 --1006: 56 --1005: 57 --1004: 56 --1003: 57 --1002: 57 --1001: 58 --1000: 56 --999: 57 --998: 57 --997: 58 --996: 57 --995: 58 --994: 58 --993: 59 --992: 55 --991: 56 --990: 56 --989: 57 --988: 56 --987: 57 --986: 57 --985: 58 --984: 56 --983: 57 --982: 57 --981: 58 --980: 57 --979: 58 --978: 58 --977: 59 --976: 56 --975: 57 --974: 57 --973: 58 --972: 57 --971: 58 --970: 58 --969: 59 --968: 57 --967: 58 --966: 58 --965: 59 --964: 58 --963: 59 --962: 59 --961: 60 --960: 55 --959: 56 --958: 56 --957: 57 --956: 56 --955: 57 --954: 57 --953: 58 --952: 56 --951: 57 --950: 57 --949: 58 --948: 57 --947: 58 --946: 58 --945: 59 --944: 56 --943: 57 --942: 57 --941: 58 --940: 57 --939: 58 --938: 58 --937: 59 --936: 57 --935: 58 --934: 58 --933: 59 --932: 58 --931: 59 --930: 59 --929: 60 --928: 56 --927: 57 --926: 57 --925: 58 --924: 57 --923: 58 --922: 58 --921: 59 --920: 57 --919: 58 --918: 58 --917: 59 --916: 58 --915: 59 --914: 59 --913: 60 --912: 57 --911: 58 --910: 58 --909: 59 --908: 58 --907: 59 --906: 59 --905: 60 --904: 58 --903: 59 --902: 59 --901: 60 --900: 59 --899: 60 --898: 60 --897: 61 --896: 55 --895: 56 --894: 56 --893: 57 --892: 56 --891: 57 --890: 57 --889: 58 --888: 56 --887: 57 --886: 57 --885: 58 --884: 57 --883: 58 --882: 58 --881: 59 --880: 56 --879: 57 --878: 57 --877: 58 --876: 57 --875: 58 --874: 58 --873: 59 --872: 57 --871: 58 --870: 58 --869: 59 --868: 58 --867: 59 --866: 59 --865: 60 --864: 56 --863: 57 --862: 57 --861: 58 --860: 57 --859: 58 --858: 58 --857: 59 --856: 57 --855: 58 --854: 58 --853: 59 --852: 58 --851: 59 --850: 59 --849: 60 --848: 57 --847: 58 --846: 58 --845: 59 --844: 58 --843: 59 --842: 59 --841: 60 --840: 58 --839: 59 --838: 59 --837: 60 --836: 59 --835: 60 --834: 60 --833: 61 --832: 56 --831: 57 --830: 57 --829: 58 --828: 57 --827: 58 --826: 58 --825: 59 --824: 57 --823: 58 --822: 58 --821: 59 --820: 58 --819: 59 --818: 59 --817: 60 --816: 57 --815: 58 --814: 58 --813: 59 --812: 58 --811: 59 --810: 59 --809: 60 --808: 58 --807: 59 --806: 59 --805: 60 --804: 59 --803: 60 --802: 60 --801: 61 --800: 57 --799: 58 --798: 58 --797: 59 --796: 58 --795: 59 --794: 59 --793: 60 --792: 58 --791: 59 --790: 59 --789: 60 --788: 59 --787: 60 --786: 60 --785: 61 --784: 58 --783: 59 --782: 59 --781: 60 --780: 59 --779: 60 --778: 60 --777: 61 --776: 59 --775: 60 --774: 60 --773: 61 --772: 60 --771: 61 --770: 61 --769: 62 --768: 55 --767: 56 --766: 56 --765: 57 --764: 56 --763: 57 --762: 57 --761: 58 --760: 56 --759: 57 --758: 57 --757: 58 --756: 57 --755: 58 --754: 58 --753: 59 --752: 56 --751: 57 --750: 57 --749: 58 --748: 57 --747: 58 --746: 58 --745: 59 --744: 57 --743: 58 --742: 58 --741: 59 --740: 58 --739: 59 --738: 59 --737: 60 --736: 56 --735: 57 --734: 57 --733: 58 --732: 57 --731: 58 --730: 58 --729: 59 --728: 57 --727: 58 --726: 58 --725: 59 --724: 58 --723: 59 --722: 59 --721: 60 --720: 57 --719: 58 --718: 58 --717: 59 --716: 58 --715: 59 --714: 59 --713: 60 --712: 58 --711: 59 --710: 59 --709: 60 --708: 59 --707: 60 --706: 60 --705: 61 --704: 56 --703: 57 --702: 57 --701: 58 --700: 57 --699: 58 --698: 58 --697: 59 --696: 57 --695: 58 --694: 58 --693: 59 --692: 58 --691: 59 --690: 59 --689: 60 --688: 57 --687: 58 --686: 58 --685: 59 --684: 58 --683: 59 --682: 59 --681: 60 --680: 58 --679: 59 --678: 59 --677: 60 --676: 59 --675: 60 --674: 60 --673: 61 --672: 57 --671: 58 --670: 58 --669: 59 --668: 58 --667: 59 --666: 59 --665: 60 --664: 58 --663: 59 --662: 59 --661: 60 --660: 59 --659: 60 --658: 60 --657: 61 --656: 58 --655: 59 --654: 59 --653: 60 --652: 59 --651: 60 --650: 60 --649: 61 --648: 59 --647: 60 --646: 60 --645: 61 --644: 60 --643: 61 --642: 61 --641: 62 --640: 56 --639: 57 --638: 57 --637: 58 --636: 57 --635: 58 --634: 58 --633: 59 --632: 57 --631: 58 --630: 58 --629: 59 --628: 58 --627: 59 --626: 59 --625: 60 --624: 57 --623: 58 --622: 58 --621: 59 --620: 58 --619: 59 --618: 59 --617: 60 --616: 58 --615: 59 --614: 59 --613: 60 --612: 59 --611: 60 --610: 60 --609: 61 --608: 57 --607: 58 --606: 58 --605: 59 --604: 58 --603: 59 --602: 59 --601: 60 --600: 58 --599: 59 --598: 59 --597: 60 --596: 59 --595: 60 --594: 60 --593: 61 --592: 58 --591: 59 --590: 59 --589: 60 --588: 59 --587: 60 --586: 60 --585: 61 --584: 59 --583: 60 --582: 60 --581: 61 --580: 60 --579: 61 --578: 61 --577: 62 --576: 57 --575: 58 --574: 58 --573: 59 --572: 58 --571: 59 --570: 59 --569: 60 --568: 58 --567: 59 --566: 59 --565: 60 --564: 59 --563: 60 --562: 60 --561: 61 --560: 58 --559: 59 --558: 59 --557: 60 --556: 59 --555: 60 --554: 60 --553: 61 --552: 59 --551: 60 --550: 60 --549: 61 --548: 60 --547: 61 --546: 61 --545: 62 --544: 58 --543: 59 --542: 59 --541: 60 --540: 59 --539: 60 --538: 60 --537: 61 --536: 59 --535: 60 --534: 60 --533: 61 --532: 60 --531: 61 --530: 61 --529: 62 --528: 59 --527: 60 --526: 60 --525: 61 --524: 60 --523: 61 --522: 61 --521: 62 --520: 60 --519: 61 --518: 61 --517: 62 --516: 61 --515: 62 --514: 62 --513: 63 --512: 55 --511: 56 --510: 56 --509: 57 --508: 56 --507: 57 --506: 57 --505: 58 --504: 56 --503: 57 --502: 57 --501: 58 --500: 57 --499: 58 --498: 58 --497: 59 --496: 56 --495: 57 --494: 57 --493: 58 --492: 57 --491: 58 --490: 58 --489: 59 --488: 57 --487: 58 --486: 58 --485: 59 --484: 58 --483: 59 --482: 59 --481: 60 --480: 56 --479: 57 --478: 57 --477: 58 --476: 57 --475: 58 --474: 58 --473: 59 --472: 57 --471: 58 --470: 58 --469: 59 --468: 58 --467: 59 --466: 59 --465: 60 --464: 57 --463: 58 --462: 58 --461: 59 --460: 58 --459: 59 --458: 59 --457: 60 --456: 58 --455: 59 --454: 59 --453: 60 --452: 59 --451: 60 --450: 60 --449: 61 --448: 56 --447: 57 --446: 57 --445: 58 --444: 57 --443: 58 --442: 58 --441: 59 --440: 57 --439: 58 --438: 58 --437: 59 --436: 58 --435: 59 --434: 59 --433: 60 --432: 57 --431: 58 --430: 58 --429: 59 --428: 58 --427: 59 --426: 59 --425: 60 --424: 58 --423: 59 --422: 59 --421: 60 --420: 59 --419: 60 --418: 60 --417: 61 --416: 57 --415: 58 --414: 58 --413: 59 --412: 58 --411: 59 --410: 59 --409: 60 --408: 58 --407: 59 --406: 59 --405: 60 --404: 59 --403: 60 --402: 60 --401: 61 --400: 58 --399: 59 --398: 59 --397: 60 --396: 59 --395: 60 --394: 60 --393: 61 --392: 59 --391: 60 --390: 60 --389: 61 --388: 60 --387: 61 --386: 61 --385: 62 --384: 56 --383: 57 --382: 57 --381: 58 --380: 57 --379: 58 --378: 58 --377: 59 --376: 57 --375: 58 --374: 58 --373: 59 --372: 58 --371: 59 --370: 59 --369: 60 --368: 57 --367: 58 --366: 58 --365: 59 --364: 58 --363: 59 --362: 59 --361: 60 --360: 58 --359: 59 --358: 59 --357: 60 --356: 59 --355: 60 --354: 60 --353: 61 --352: 57 --351: 58 --350: 58 --349: 59 --348: 58 --347: 59 --346: 59 --345: 60 --344: 58 --343: 59 --342: 59 --341: 60 --340: 59 --339: 60 --338: 60 --337: 61 --336: 58 --335: 59 --334: 59 --333: 60 --332: 59 --331: 60 --330: 60 --329: 61 --328: 59 --327: 60 --326: 60 --325: 61 --324: 60 --323: 61 --322: 61 --321: 62 --320: 57 --319: 58 --318: 58 --317: 59 --316: 58 --315: 59 --314: 59 --313: 60 --312: 58 --311: 59 --310: 59 --309: 60 --308: 59 --307: 60 --306: 60 --305: 61 --304: 58 --303: 59 --302: 59 --301: 60 --300: 59 --299: 60 --298: 60 --297: 61 --296: 59 --295: 60 --294: 60 --293: 61 --292: 60 --291: 61 --290: 61 --289: 62 --288: 58 --287: 59 --286: 59 --285: 60 --284: 59 --283: 60 --282: 60 --281: 61 --280: 59 --279: 60 --278: 60 --277: 61 --276: 60 --275: 61 --274: 61 --273: 62 --272: 59 --271: 60 --270: 60 --269: 61 --268: 60 --267: 61 --266: 61 --265: 62 --264: 60 --263: 61 --262: 61 --261: 62 --260: 61 --259: 62 --258: 62 --257: 63 --256: 56 --255: 57 --254: 57 --253: 58 --252: 57 --251: 58 --250: 58 --249: 59 --248: 57 --247: 58 --246: 58 --245: 59 --244: 58 --243: 59 --242: 59 --241: 60 --240: 57 --239: 58 --238: 58 --237: 59 --236: 58 --235: 59 --234: 59 --233: 60 --232: 58 --231: 59 --230: 59 --229: 60 --228: 59 --227: 60 --226: 60 --225: 61 --224: 57 --223: 58 --222: 58 --221: 59 --220: 58 --219: 59 --218: 59 --217: 60 --216: 58 --215: 59 --214: 59 --213: 60 --212: 59 --211: 60 --210: 60 --209: 61 --208: 58 --207: 59 --206: 59 --205: 60 --204: 59 --203: 60 --202: 60 --201: 61 --200: 59 --199: 60 --198: 60 --197: 61 --196: 60 --195: 61 --194: 61 --193: 62 --192: 57 --191: 58 --190: 58 --189: 59 --188: 58 --187: 59 --186: 59 --185: 60 --184: 58 --183: 59 --182: 59 --181: 60 --180: 59 --179: 60 --178: 60 --177: 61 --176: 58 --175: 59 --174: 59 --173: 60 --172: 59 --171: 60 --170: 60 --169: 61 --168: 59 --167: 60 --166: 60 --165: 61 --164: 60 --163: 61 --162: 61 --161: 62 --160: 58 --159: 59 --158: 59 --157: 60 --156: 59 --155: 60 --154: 60 --153: 61 --152: 59 --151: 60 --150: 60 --149: 61 --148: 60 --147: 61 --146: 61 --145: 62 --144: 59 --143: 60 --142: 60 --141: 61 --140: 60 --139: 61 --138: 61 --137: 62 --136: 60 --135: 61 --134: 61 --133: 62 --132: 61 --131: 62 --130: 62 --129: 63 --128: 57 --127: 58 --126: 58 --125: 59 --124: 58 --123: 59 --122: 59 --121: 60 --120: 58 --119: 59 --118: 59 --117: 60 --116: 59 --115: 60 --114: 60 --113: 61 --112: 58 --111: 59 --110: 59 --109: 60 --108: 59 --107: 60 --106: 60 --105: 61 --104: 59 --103: 60 --102: 60 --101: 61 --100: 60 --99: 61 --98: 61 --97: 62 --96: 58 --95: 59 --94: 59 --93: 60 --92: 59 --91: 60 --90: 60 --89: 61 --88: 59 --87: 60 --86: 60 --85: 61 --84: 60 --83: 61 --82: 61 --81: 62 --80: 59 --79: 60 --78: 60 --77: 61 --76: 60 --75: 61 --74: 61 --73: 62 --72: 60 --71: 61 --70: 61 --69: 62 --68: 61 --67: 62 --66: 62 --65: 63 --64: 58 --63: 59 --62: 59 --61: 60 --60: 59 --59: 60 --58: 60 --57: 61 --56: 59 --55: 60 --54: 60 --53: 61 --52: 60 --51: 61 --50: 61 --49: 62 --48: 59 --47: 60 --46: 60 --45: 61 --44: 60 --43: 61 --42: 61 --41: 62 --40: 60 --39: 61 --38: 61 --37: 62 --36: 61 --35: 62 --34: 62 --33: 63 --32: 59 --31: 60 --30: 60 --29: 61 --28: 60 --27: 61 --26: 61 --25: 62 --24: 60 --23: 61 --22: 61 --21: 62 --20: 61 --19: 62 --18: 62 --17: 63 --16: 60 --15: 61 --14: 61 --13: 62 --12: 61 --11: 62 --10: 62 --9: 63 --8: 61 --7: 62 --6: 62 --5: 63 --4: 62 --3: 63 --2: 63 --1: 64 -0: 0 -1: 1 -2: 1 -3: 2 -4: 1 -5: 2 -6: 2 -7: 3 -8: 1 -9: 2 -10: 2 -11: 3 -12: 2 -13: 3 -14: 3 -15: 4 -16: 1 -17: 2 -18: 2 -19: 3 -20: 2 -21: 3 -22: 3 -23: 4 -24: 2 -25: 3 -26: 3 -27: 4 -28: 3 -29: 4 -30: 4 -31: 5 -32: 1 -33: 2 -34: 2 -35: 3 -36: 2 -37: 3 -38: 3 -39: 4 -40: 2 -41: 3 -42: 3 -43: 4 -44: 3 -45: 4 -46: 4 -47: 5 -48: 2 -49: 3 -50: 3 -51: 4 -52: 3 -53: 4 -54: 4 -55: 5 -56: 3 -57: 4 -58: 4 -59: 5 -60: 4 -61: 5 -62: 5 -63: 6 -64: 1 -65: 2 -66: 2 -67: 3 -68: 2 -69: 3 -70: 3 -71: 4 -72: 2 -73: 3 -74: 3 -75: 4 -76: 3 -77: 4 -78: 4 -79: 5 -80: 2 -81: 3 -82: 3 -83: 4 -84: 3 -85: 4 -86: 4 -87: 5 -88: 3 -89: 4 -90: 4 -91: 5 -92: 4 -93: 5 -94: 5 -95: 6 -96: 2 -97: 3 -98: 3 -99: 4 -100: 3 -101: 4 -102: 4 -103: 5 -104: 3 -105: 4 -106: 4 -107: 5 -108: 4 -109: 5 -110: 5 -111: 6 -112: 3 -113: 4 -114: 4 -115: 5 -116: 4 -117: 5 -118: 5 -119: 6 -120: 4 -121: 5 -122: 5 -123: 6 -124: 5 -125: 6 -126: 6 -127: 7 -128: 1 -129: 2 -130: 2 -131: 3 -132: 2 -133: 3 -134: 3 -135: 4 -136: 2 -137: 3 -138: 3 -139: 4 -140: 3 -141: 4 -142: 4 -143: 5 -144: 2 -145: 3 -146: 3 -147: 4 -148: 3 -149: 4 -150: 4 -151: 5 -152: 3 -153: 4 -154: 4 -155: 5 -156: 4 -157: 5 -158: 5 -159: 6 -160: 2 -161: 3 -162: 3 -163: 4 -164: 3 -165: 4 -166: 4 -167: 5 -168: 3 -169: 4 -170: 4 -171: 5 -172: 4 -173: 5 -174: 5 -175: 6 -176: 3 -177: 4 -178: 4 -179: 5 -180: 4 -181: 5 -182: 5 -183: 6 -184: 4 -185: 5 -186: 5 -187: 6 -188: 5 -189: 6 -190: 6 -191: 7 -192: 2 -193: 3 -194: 3 -195: 4 -196: 3 -197: 4 -198: 4 -199: 5 -200: 3 -201: 4 -202: 4 -203: 5 -204: 4 -205: 5 -206: 5 -207: 6 -208: 3 -209: 4 -210: 4 -211: 5 -212: 4 -213: 5 -214: 5 -215: 6 -216: 4 -217: 5 -218: 5 -219: 6 -220: 5 -221: 6 -222: 6 -223: 7 -224: 3 -225: 4 -226: 4 -227: 5 -228: 4 -229: 5 -230: 5 -231: 6 -232: 4 -233: 5 -234: 5 -235: 6 -236: 5 -237: 6 -238: 6 -239: 7 -240: 4 -241: 5 -242: 5 -243: 6 -244: 5 -245: 6 -246: 6 -247: 7 -248: 5 -249: 6 -250: 6 -251: 7 -252: 6 -253: 7 -254: 7 -255: 8 -256: 1 -257: 2 -258: 2 -259: 3 -260: 2 -261: 3 -262: 3 -263: 4 -264: 2 -265: 3 -266: 3 -267: 4 -268: 3 -269: 4 -270: 4 -271: 5 -272: 2 -273: 3 -274: 3 -275: 4 -276: 3 -277: 4 -278: 4 -279: 5 -280: 3 -281: 4 -282: 4 -283: 5 -284: 4 -285: 5 -286: 5 -287: 6 -288: 2 -289: 3 -290: 3 -291: 4 -292: 3 -293: 4 -294: 4 -295: 5 -296: 3 -297: 4 -298: 4 -299: 5 -300: 4 -301: 5 -302: 5 -303: 6 -304: 3 -305: 4 -306: 4 -307: 5 -308: 4 -309: 5 -310: 5 -311: 6 -312: 4 -313: 5 -314: 5 -315: 6 -316: 5 -317: 6 -318: 6 -319: 7 -320: 2 -321: 3 -322: 3 -323: 4 -324: 3 -325: 4 -326: 4 -327: 5 -328: 3 -329: 4 -330: 4 -331: 5 -332: 4 -333: 5 -334: 5 -335: 6 -336: 3 -337: 4 -338: 4 -339: 5 -340: 4 -341: 5 -342: 5 -343: 6 -344: 4 -345: 5 -346: 5 -347: 6 -348: 5 -349: 6 -350: 6 -351: 7 -352: 3 -353: 4 -354: 4 -355: 5 -356: 4 -357: 5 -358: 5 -359: 6 -360: 4 -361: 5 -362: 5 -363: 6 -364: 5 -365: 6 -366: 6 -367: 7 -368: 4 -369: 5 -370: 5 -371: 6 -372: 5 -373: 6 -374: 6 -375: 7 -376: 5 -377: 6 -378: 6 -379: 7 -380: 6 -381: 7 -382: 7 -383: 8 -384: 2 -385: 3 -386: 3 -387: 4 -388: 3 -389: 4 -390: 4 -391: 5 -392: 3 -393: 4 -394: 4 -395: 5 -396: 4 -397: 5 -398: 5 -399: 6 -400: 3 -401: 4 -402: 4 -403: 5 -404: 4 -405: 5 -406: 5 -407: 6 -408: 4 -409: 5 -410: 5 -411: 6 -412: 5 -413: 6 -414: 6 -415: 7 -416: 3 -417: 4 -418: 4 -419: 5 -420: 4 -421: 5 -422: 5 -423: 6 -424: 4 -425: 5 -426: 5 -427: 6 -428: 5 -429: 6 -430: 6 -431: 7 -432: 4 -433: 5 -434: 5 -435: 6 -436: 5 -437: 6 -438: 6 -439: 7 -440: 5 -441: 6 -442: 6 -443: 7 -444: 6 -445: 7 -446: 7 -447: 8 -448: 3 -449: 4 -450: 4 -451: 5 -452: 4 -453: 5 -454: 5 -455: 6 -456: 4 -457: 5 -458: 5 -459: 6 -460: 5 -461: 6 -462: 6 -463: 7 -464: 4 -465: 5 -466: 5 -467: 6 -468: 5 -469: 6 -470: 6 -471: 7 -472: 5 -473: 6 -474: 6 -475: 7 -476: 6 -477: 7 -478: 7 -479: 8 -480: 4 -481: 5 -482: 5 -483: 6 -484: 5 -485: 6 -486: 6 -487: 7 -488: 5 -489: 6 -490: 6 -491: 7 -492: 6 -493: 7 -494: 7 -495: 8 -496: 5 -497: 6 -498: 6 -499: 7 -500: 6 -501: 7 -502: 7 -503: 8 -504: 6 -505: 7 -506: 7 -507: 8 -508: 7 -509: 8 -510: 8 -511: 9 -512: 1 -513: 2 -514: 2 -515: 3 -516: 2 -517: 3 -518: 3 -519: 4 -520: 2 -521: 3 -522: 3 -523: 4 -524: 3 -525: 4 -526: 4 -527: 5 -528: 2 -529: 3 -530: 3 -531: 4 -532: 3 -533: 4 -534: 4 -535: 5 -536: 3 -537: 4 -538: 4 -539: 5 -540: 4 -541: 5 -542: 5 -543: 6 -544: 2 -545: 3 -546: 3 -547: 4 -548: 3 -549: 4 -550: 4 -551: 5 -552: 3 -553: 4 -554: 4 -555: 5 -556: 4 -557: 5 -558: 5 -559: 6 -560: 3 -561: 4 -562: 4 -563: 5 -564: 4 -565: 5 -566: 5 -567: 6 -568: 4 -569: 5 -570: 5 -571: 6 -572: 5 -573: 6 -574: 6 -575: 7 -576: 2 -577: 3 -578: 3 -579: 4 -580: 3 -581: 4 -582: 4 -583: 5 -584: 3 -585: 4 -586: 4 -587: 5 -588: 4 -589: 5 -590: 5 -591: 6 -592: 3 -593: 4 -594: 4 -595: 5 -596: 4 -597: 5 -598: 5 -599: 6 -600: 4 -601: 5 -602: 5 -603: 6 -604: 5 -605: 6 -606: 6 -607: 7 -608: 3 -609: 4 -610: 4 -611: 5 -612: 4 -613: 5 -614: 5 -615: 6 -616: 4 -617: 5 -618: 5 -619: 6 -620: 5 -621: 6 -622: 6 -623: 7 -624: 4 -625: 5 -626: 5 -627: 6 -628: 5 -629: 6 -630: 6 -631: 7 -632: 5 -633: 6 -634: 6 -635: 7 -636: 6 -637: 7 -638: 7 -639: 8 -640: 2 -641: 3 -642: 3 -643: 4 -644: 3 -645: 4 -646: 4 -647: 5 -648: 3 -649: 4 -650: 4 -651: 5 -652: 4 -653: 5 -654: 5 -655: 6 -656: 3 -657: 4 -658: 4 -659: 5 -660: 4 -661: 5 -662: 5 -663: 6 -664: 4 -665: 5 -666: 5 -667: 6 -668: 5 -669: 6 -670: 6 -671: 7 -672: 3 -673: 4 -674: 4 -675: 5 -676: 4 -677: 5 -678: 5 -679: 6 -680: 4 -681: 5 -682: 5 -683: 6 -684: 5 -685: 6 -686: 6 -687: 7 -688: 4 -689: 5 -690: 5 -691: 6 -692: 5 -693: 6 -694: 6 -695: 7 -696: 5 -697: 6 -698: 6 -699: 7 -700: 6 -701: 7 -702: 7 -703: 8 -704: 3 -705: 4 -706: 4 -707: 5 -708: 4 -709: 5 -710: 5 -711: 6 -712: 4 -713: 5 -714: 5 -715: 6 -716: 5 -717: 6 -718: 6 -719: 7 -720: 4 -721: 5 -722: 5 -723: 6 -724: 5 -725: 6 -726: 6 -727: 7 -728: 5 -729: 6 -730: 6 -731: 7 -732: 6 -733: 7 -734: 7 -735: 8 -736: 4 -737: 5 -738: 5 -739: 6 -740: 5 -741: 6 -742: 6 -743: 7 -744: 5 -745: 6 -746: 6 -747: 7 -748: 6 -749: 7 -750: 7 -751: 8 -752: 5 -753: 6 -754: 6 -755: 7 -756: 6 -757: 7 -758: 7 -759: 8 -760: 6 -761: 7 -762: 7 -763: 8 -764: 7 -765: 8 -766: 8 -767: 9 -768: 2 -769: 3 -770: 3 -771: 4 -772: 3 -773: 4 -774: 4 -775: 5 -776: 3 -777: 4 -778: 4 -779: 5 -780: 4 -781: 5 -782: 5 -783: 6 -784: 3 -785: 4 -786: 4 -787: 5 -788: 4 -789: 5 -790: 5 -791: 6 -792: 4 -793: 5 -794: 5 -795: 6 -796: 5 -797: 6 -798: 6 -799: 7 -800: 3 -801: 4 -802: 4 -803: 5 -804: 4 -805: 5 -806: 5 -807: 6 -808: 4 -809: 5 -810: 5 -811: 6 -812: 5 -813: 6 -814: 6 -815: 7 -816: 4 -817: 5 -818: 5 -819: 6 -820: 5 -821: 6 -822: 6 -823: 7 -824: 5 -825: 6 -826: 6 -827: 7 -828: 6 -829: 7 -830: 7 -831: 8 -832: 3 -833: 4 -834: 4 -835: 5 -836: 4 -837: 5 -838: 5 -839: 6 -840: 4 -841: 5 -842: 5 -843: 6 -844: 5 -845: 6 -846: 6 -847: 7 -848: 4 -849: 5 -850: 5 -851: 6 -852: 5 -853: 6 -854: 6 -855: 7 -856: 5 -857: 6 -858: 6 -859: 7 -860: 6 -861: 7 -862: 7 -863: 8 -864: 4 -865: 5 -866: 5 -867: 6 -868: 5 -869: 6 -870: 6 -871: 7 -872: 5 -873: 6 -874: 6 -875: 7 -876: 6 -877: 7 -878: 7 -879: 8 -880: 5 -881: 6 -882: 6 -883: 7 -884: 6 -885: 7 -886: 7 -887: 8 -888: 6 -889: 7 -890: 7 -891: 8 -892: 7 -893: 8 -894: 8 -895: 9 -896: 3 -897: 4 -898: 4 -899: 5 -900: 4 -901: 5 -902: 5 -903: 6 -904: 4 -905: 5 -906: 5 -907: 6 -908: 5 -909: 6 -910: 6 -911: 7 -912: 4 -913: 5 -914: 5 -915: 6 -916: 5 -917: 6 -918: 6 -919: 7 -920: 5 -921: 6 -922: 6 -923: 7 -924: 6 -925: 7 -926: 7 -927: 8 -928: 4 -929: 5 -930: 5 -931: 6 -932: 5 -933: 6 -934: 6 -935: 7 -936: 5 -937: 6 -938: 6 -939: 7 -940: 6 -941: 7 -942: 7 -943: 8 -944: 5 -945: 6 -946: 6 -947: 7 -948: 6 -949: 7 -950: 7 -951: 8 -952: 6 -953: 7 -954: 7 -955: 8 -956: 7 -957: 8 -958: 8 -959: 9 -960: 4 -961: 5 -962: 5 -963: 6 -964: 5 -965: 6 -966: 6 -967: 7 -968: 5 -969: 6 -970: 6 -971: 7 -972: 6 -973: 7 -974: 7 -975: 8 -976: 5 -977: 6 -978: 6 -979: 7 -980: 6 -981: 7 -982: 7 -983: 8 -984: 6 -985: 7 -986: 7 -987: 8 -988: 7 -989: 8 -990: 8 -991: 9 -992: 5 -993: 6 -994: 6 -995: 7 -996: 6 -997: 7 -998: 7 -999: 8 -1000: 6 -1001: 7 -1002: 7 -1003: 8 -1004: 7 -1005: 8 -1006: 8 -1007: 9 -1008: 6 -1009: 7 -1010: 7 -1011: 8 -1012: 7 -1013: 8 -1014: 8 -1015: 9 -1016: 7 -1017: 8 -1018: 8 -1019: 9 -1020: 8 -1021: 9 -1022: 9 -1023: 10 -1024: 1 -1025: 2 -1026: 2 -1027: 3 -1028: 2 -1029: 3 -1030: 3 -1031: 4 -1032: 2 -1033: 3 -1034: 3 -1035: 4 -1036: 3 -1037: 4 -1038: 4 -1039: 5 -1040: 2 -1041: 3 -1042: 3 -1043: 4 -1044: 3 -1045: 4 -1046: 4 -1047: 5 -1048: 3 -1049: 4 -1050: 4 -1051: 5 -1052: 4 -1053: 5 -1054: 5 -1055: 6 -1056: 2 -1057: 3 -1058: 3 -1059: 4 -1060: 3 -1061: 4 -1062: 4 -1063: 5 -1064: 3 -1065: 4 -1066: 4 -1067: 5 -1068: 4 -1069: 5 -1070: 5 -1071: 6 -1072: 3 -1073: 4 -1074: 4 -1075: 5 -1076: 4 -1077: 5 -1078: 5 -1079: 6 -1080: 4 -1081: 5 -1082: 5 -1083: 6 -1084: 5 -1085: 6 -1086: 6 -1087: 7 -1088: 2 -1089: 3 -1090: 3 -1091: 4 -1092: 3 -1093: 4 -1094: 4 -1095: 5 -1096: 3 -1097: 4 -1098: 4 -1099: 5 -1100: 4 -1101: 5 -1102: 5 -1103: 6 -1104: 3 -1105: 4 -1106: 4 -1107: 5 -1108: 4 -1109: 5 -1110: 5 -1111: 6 -1112: 4 -1113: 5 -1114: 5 -1115: 6 -1116: 5 -1117: 6 -1118: 6 -1119: 7 -1120: 3 -1121: 4 -1122: 4 -1123: 5 -1124: 4 -1125: 5 -1126: 5 -1127: 6 -1128: 4 -1129: 5 -1130: 5 -1131: 6 -1132: 5 -1133: 6 -1134: 6 -1135: 7 -1136: 4 -1137: 5 -1138: 5 -1139: 6 -1140: 5 -1141: 6 -1142: 6 -1143: 7 -1144: 5 -1145: 6 -1146: 6 -1147: 7 -1148: 6 -1149: 7 -1150: 7 -1151: 8 -1152: 2 -1153: 3 -1154: 3 -1155: 4 -1156: 3 -1157: 4 -1158: 4 -1159: 5 -1160: 3 -1161: 4 -1162: 4 -1163: 5 -1164: 4 -1165: 5 -1166: 5 -1167: 6 -1168: 3 -1169: 4 -1170: 4 -1171: 5 -1172: 4 -1173: 5 -1174: 5 -1175: 6 -1176: 4 -1177: 5 -1178: 5 -1179: 6 -1180: 5 -1181: 6 -1182: 6 -1183: 7 -1184: 3 -1185: 4 -1186: 4 -1187: 5 -1188: 4 -1189: 5 -1190: 5 -1191: 6 -1192: 4 -1193: 5 -1194: 5 -1195: 6 -1196: 5 -1197: 6 -1198: 6 -1199: 7 -1200: 4 -1201: 5 -1202: 5 -1203: 6 -1204: 5 -1205: 6 -1206: 6 -1207: 7 -1208: 5 -1209: 6 -1210: 6 -1211: 7 -1212: 6 -1213: 7 -1214: 7 -1215: 8 -1216: 3 -1217: 4 -1218: 4 -1219: 5 -1220: 4 -1221: 5 -1222: 5 -1223: 6 -1224: 4 -1225: 5 -1226: 5 -1227: 6 -1228: 5 -1229: 6 -1230: 6 -1231: 7 -1232: 4 -1233: 5 -1234: 5 -1235: 6 -1236: 5 -1237: 6 -1238: 6 -1239: 7 -1240: 5 -1241: 6 -1242: 6 -1243: 7 -1244: 6 -1245: 7 -1246: 7 -1247: 8 -1248: 4 -1249: 5 -1250: 5 -1251: 6 -1252: 5 -1253: 6 -1254: 6 -1255: 7 -1256: 5 -1257: 6 -1258: 6 -1259: 7 -1260: 6 -1261: 7 -1262: 7 -1263: 8 -1264: 5 -1265: 6 -1266: 6 -1267: 7 -1268: 6 -1269: 7 -1270: 7 -1271: 8 -1272: 6 -1273: 7 -1274: 7 -1275: 8 -1276: 7 -1277: 8 -1278: 8 -1279: 9 -1280: 2 -1281: 3 -1282: 3 -1283: 4 -1284: 3 -1285: 4 -1286: 4 -1287: 5 -1288: 3 -1289: 4 -1290: 4 -1291: 5 -1292: 4 -1293: 5 -1294: 5 -1295: 6 -1296: 3 -1297: 4 -1298: 4 -1299: 5 -1300: 4 -1301: 5 -1302: 5 -1303: 6 -1304: 4 -1305: 5 -1306: 5 -1307: 6 -1308: 5 -1309: 6 -1310: 6 -1311: 7 -1312: 3 -1313: 4 -1314: 4 -1315: 5 -1316: 4 -1317: 5 -1318: 5 -1319: 6 -1320: 4 -1321: 5 -1322: 5 -1323: 6 -1324: 5 -1325: 6 -1326: 6 -1327: 7 -1328: 4 -1329: 5 -1330: 5 -1331: 6 -1332: 5 -1333: 6 -1334: 6 -1335: 7 -1336: 5 -1337: 6 -1338: 6 -1339: 7 -1340: 6 -1341: 7 -1342: 7 -1343: 8 -1344: 3 -1345: 4 -1346: 4 -1347: 5 -1348: 4 -1349: 5 -1350: 5 -1351: 6 -1352: 4 -1353: 5 -1354: 5 -1355: 6 -1356: 5 -1357: 6 -1358: 6 -1359: 7 -1360: 4 -1361: 5 -1362: 5 -1363: 6 -1364: 5 -1365: 6 -1366: 6 -1367: 7 -1368: 5 -1369: 6 -1370: 6 -1371: 7 -1372: 6 -1373: 7 -1374: 7 -1375: 8 -1376: 4 -1377: 5 -1378: 5 -1379: 6 -1380: 5 -1381: 6 -1382: 6 -1383: 7 -1384: 5 -1385: 6 -1386: 6 -1387: 7 -1388: 6 -1389: 7 -1390: 7 -1391: 8 -1392: 5 -1393: 6 -1394: 6 -1395: 7 -1396: 6 -1397: 7 -1398: 7 -1399: 8 -1400: 6 -1401: 7 -1402: 7 -1403: 8 -1404: 7 -1405: 8 -1406: 8 -1407: 9 -1408: 3 -1409: 4 -1410: 4 -1411: 5 -1412: 4 -1413: 5 -1414: 5 -1415: 6 -1416: 4 -1417: 5 -1418: 5 -1419: 6 -1420: 5 -1421: 6 -1422: 6 -1423: 7 -1424: 4 -1425: 5 -1426: 5 -1427: 6 -1428: 5 -1429: 6 -1430: 6 -1431: 7 -1432: 5 -1433: 6 -1434: 6 -1435: 7 -1436: 6 -1437: 7 -1438: 7 -1439: 8 -1440: 4 -1441: 5 -1442: 5 -1443: 6 -1444: 5 -1445: 6 -1446: 6 -1447: 7 -1448: 5 -1449: 6 -1450: 6 -1451: 7 -1452: 6 -1453: 7 -1454: 7 -1455: 8 -1456: 5 -1457: 6 -1458: 6 -1459: 7 -1460: 6 -1461: 7 -1462: 7 -1463: 8 -1464: 6 -1465: 7 -1466: 7 -1467: 8 -1468: 7 -1469: 8 -1470: 8 -1471: 9 -1472: 4 -1473: 5 -1474: 5 -1475: 6 -1476: 5 -1477: 6 -1478: 6 -1479: 7 -1480: 5 -1481: 6 -1482: 6 -1483: 7 -1484: 6 -1485: 7 -1486: 7 -1487: 8 -1488: 5 -1489: 6 -1490: 6 -1491: 7 -1492: 6 -1493: 7 -1494: 7 -1495: 8 -1496: 6 -1497: 7 -1498: 7 -1499: 8 -1500: 7 -1501: 8 -1502: 8 -1503: 9 -1504: 5 -1505: 6 -1506: 6 -1507: 7 -1508: 6 -1509: 7 -1510: 7 -1511: 8 -1512: 6 -1513: 7 -1514: 7 -1515: 8 -1516: 7 -1517: 8 -1518: 8 -1519: 9 -1520: 6 -1521: 7 -1522: 7 -1523: 8 -1524: 7 -1525: 8 -1526: 8 -1527: 9 -1528: 7 -1529: 8 -1530: 8 -1531: 9 -1532: 8 -1533: 9 -1534: 9 -1535: 10 -1536: 2 -1537: 3 -1538: 3 -1539: 4 -1540: 3 -1541: 4 -1542: 4 -1543: 5 -1544: 3 -1545: 4 -1546: 4 -1547: 5 -1548: 4 -1549: 5 -1550: 5 -1551: 6 -1552: 3 -1553: 4 -1554: 4 -1555: 5 -1556: 4 -1557: 5 -1558: 5 -1559: 6 -1560: 4 -1561: 5 -1562: 5 -1563: 6 -1564: 5 -1565: 6 -1566: 6 -1567: 7 -1568: 3 -1569: 4 -1570: 4 -1571: 5 -1572: 4 -1573: 5 -1574: 5 -1575: 6 -1576: 4 -1577: 5 -1578: 5 -1579: 6 -1580: 5 -1581: 6 -1582: 6 -1583: 7 -1584: 4 -1585: 5 -1586: 5 -1587: 6 -1588: 5 -1589: 6 -1590: 6 -1591: 7 -1592: 5 -1593: 6 -1594: 6 -1595: 7 -1596: 6 -1597: 7 -1598: 7 -1599: 8 -1600: 3 -1601: 4 -1602: 4 -1603: 5 -1604: 4 -1605: 5 -1606: 5 -1607: 6 -1608: 4 -1609: 5 -1610: 5 -1611: 6 -1612: 5 -1613: 6 -1614: 6 -1615: 7 -1616: 4 -1617: 5 -1618: 5 -1619: 6 -1620: 5 -1621: 6 -1622: 6 -1623: 7 -1624: 5 -1625: 6 -1626: 6 -1627: 7 -1628: 6 -1629: 7 -1630: 7 -1631: 8 -1632: 4 -1633: 5 -1634: 5 -1635: 6 -1636: 5 -1637: 6 -1638: 6 -1639: 7 -1640: 5 -1641: 6 -1642: 6 -1643: 7 -1644: 6 -1645: 7 -1646: 7 -1647: 8 -1648: 5 -1649: 6 -1650: 6 -1651: 7 -1652: 6 -1653: 7 -1654: 7 -1655: 8 -1656: 6 -1657: 7 -1658: 7 -1659: 8 -1660: 7 -1661: 8 -1662: 8 -1663: 9 -1664: 3 -1665: 4 -1666: 4 -1667: 5 -1668: 4 -1669: 5 -1670: 5 -1671: 6 -1672: 4 -1673: 5 -1674: 5 -1675: 6 -1676: 5 -1677: 6 -1678: 6 -1679: 7 -1680: 4 -1681: 5 -1682: 5 -1683: 6 -1684: 5 -1685: 6 -1686: 6 -1687: 7 -1688: 5 -1689: 6 -1690: 6 -1691: 7 -1692: 6 -1693: 7 -1694: 7 -1695: 8 -1696: 4 -1697: 5 -1698: 5 -1699: 6 -1700: 5 -1701: 6 -1702: 6 -1703: 7 -1704: 5 -1705: 6 -1706: 6 -1707: 7 -1708: 6 -1709: 7 -1710: 7 -1711: 8 -1712: 5 -1713: 6 -1714: 6 -1715: 7 -1716: 6 -1717: 7 -1718: 7 -1719: 8 -1720: 6 -1721: 7 -1722: 7 -1723: 8 -1724: 7 -1725: 8 -1726: 8 -1727: 9 -1728: 4 -1729: 5 -1730: 5 -1731: 6 -1732: 5 -1733: 6 -1734: 6 -1735: 7 -1736: 5 -1737: 6 -1738: 6 -1739: 7 -1740: 6 -1741: 7 -1742: 7 -1743: 8 -1744: 5 -1745: 6 -1746: 6 -1747: 7 -1748: 6 -1749: 7 -1750: 7 -1751: 8 -1752: 6 -1753: 7 -1754: 7 -1755: 8 -1756: 7 -1757: 8 -1758: 8 -1759: 9 -1760: 5 -1761: 6 -1762: 6 -1763: 7 -1764: 6 -1765: 7 -1766: 7 -1767: 8 -1768: 6 -1769: 7 -1770: 7 -1771: 8 -1772: 7 -1773: 8 -1774: 8 -1775: 9 -1776: 6 -1777: 7 -1778: 7 -1779: 8 -1780: 7 -1781: 8 -1782: 8 -1783: 9 -1784: 7 -1785: 8 -1786: 8 -1787: 9 -1788: 8 -1789: 9 -1790: 9 -1791: 10 -1792: 3 -1793: 4 -1794: 4 -1795: 5 -1796: 4 -1797: 5 -1798: 5 -1799: 6 -1800: 4 -1801: 5 -1802: 5 -1803: 6 -1804: 5 -1805: 6 -1806: 6 -1807: 7 -1808: 4 -1809: 5 -1810: 5 -1811: 6 -1812: 5 -1813: 6 -1814: 6 -1815: 7 -1816: 5 -1817: 6 -1818: 6 -1819: 7 -1820: 6 -1821: 7 -1822: 7 -1823: 8 -1824: 4 -1825: 5 -1826: 5 -1827: 6 -1828: 5 -1829: 6 -1830: 6 -1831: 7 -1832: 5 -1833: 6 -1834: 6 -1835: 7 -1836: 6 -1837: 7 -1838: 7 -1839: 8 -1840: 5 -1841: 6 -1842: 6 -1843: 7 -1844: 6 -1845: 7 -1846: 7 -1847: 8 -1848: 6 -1849: 7 -1850: 7 -1851: 8 -1852: 7 -1853: 8 -1854: 8 -1855: 9 -1856: 4 -1857: 5 -1858: 5 -1859: 6 -1860: 5 -1861: 6 -1862: 6 -1863: 7 -1864: 5 -1865: 6 -1866: 6 -1867: 7 -1868: 6 -1869: 7 -1870: 7 -1871: 8 -1872: 5 -1873: 6 -1874: 6 -1875: 7 -1876: 6 -1877: 7 -1878: 7 -1879: 8 -1880: 6 -1881: 7 -1882: 7 -1883: 8 -1884: 7 -1885: 8 -1886: 8 -1887: 9 -1888: 5 -1889: 6 -1890: 6 -1891: 7 -1892: 6 -1893: 7 -1894: 7 -1895: 8 -1896: 6 -1897: 7 -1898: 7 -1899: 8 -1900: 7 -1901: 8 -1902: 8 -1903: 9 -1904: 6 -1905: 7 -1906: 7 -1907: 8 -1908: 7 -1909: 8 -1910: 8 -1911: 9 -1912: 7 -1913: 8 -1914: 8 -1915: 9 -1916: 8 -1917: 9 -1918: 9 -1919: 10 -1920: 4 -1921: 5 -1922: 5 -1923: 6 -1924: 5 -1925: 6 -1926: 6 -1927: 7 -1928: 5 -1929: 6 -1930: 6 -1931: 7 -1932: 6 -1933: 7 -1934: 7 -1935: 8 -1936: 5 -1937: 6 -1938: 6 -1939: 7 -1940: 6 -1941: 7 -1942: 7 -1943: 8 -1944: 6 -1945: 7 -1946: 7 -1947: 8 -1948: 7 -1949: 8 -1950: 8 -1951: 9 -1952: 5 -1953: 6 -1954: 6 -1955: 7 -1956: 6 -1957: 7 -1958: 7 -1959: 8 -1960: 6 -1961: 7 -1962: 7 -1963: 8 -1964: 7 -1965: 8 -1966: 8 -1967: 9 -1968: 6 -1969: 7 -1970: 7 -1971: 8 -1972: 7 -1973: 8 -1974: 8 -1975: 9 -1976: 7 -1977: 8 -1978: 8 -1979: 9 -1980: 8 -1981: 9 -1982: 9 -1983: 10 -1984: 5 -1985: 6 -1986: 6 -1987: 7 -1988: 6 -1989: 7 -1990: 7 -1991: 8 -1992: 6 -1993: 7 -1994: 7 -1995: 8 -1996: 7 -1997: 8 -1998: 8 -1999: 9 -2000: 6 -2001: 7 -2002: 7 -2003: 8 -2004: 7 -2005: 8 -2006: 8 -2007: 9 -2008: 7 -2009: 8 -2010: 8 -2011: 9 -2012: 8 -2013: 9 -2014: 9 -2015: 10 -2016: 6 -2017: 7 -2018: 7 -2019: 8 -2020: 7 -2021: 8 -2022: 8 -2023: 9 -2024: 7 -2025: 8 -2026: 8 -2027: 9 -2028: 8 -2029: 9 -2030: 9 -2031: 10 -2032: 7 -2033: 8 -2034: 8 -2035: 9 -2036: 8 -2037: 9 -2038: 9 -2039: 10 -2040: 8 -2041: 9 -2042: 9 -2043: 10 -2044: 9 -2045: 10 -2046: 10 -2047: 11 -2048: 1 -2049: 2 -2050: 2 -2051: 3 -2052: 2 -2053: 3 -2054: 3 -2055: 4 -2056: 2 -2057: 3 -2058: 3 -2059: 4 -2060: 3 -2061: 4 -2062: 4 -2063: 5 -2064: 2 -2065: 3 -2066: 3 -2067: 4 -2068: 3 -2069: 4 -2070: 4 -2071: 5 -2072: 3 -2073: 4 -2074: 4 -2075: 5 -2076: 4 -2077: 5 -2078: 5 -2079: 6 -2080: 2 -2081: 3 -2082: 3 -2083: 4 -2084: 3 -2085: 4 -2086: 4 -2087: 5 -2088: 3 -2089: 4 -2090: 4 -2091: 5 -2092: 4 -2093: 5 -2094: 5 -2095: 6 -2096: 3 -2097: 4 -2098: 4 -2099: 5 -2100: 4 -2101: 5 -2102: 5 -2103: 6 -2104: 4 -2105: 5 -2106: 5 -2107: 6 -2108: 5 -2109: 6 -2110: 6 -2111: 7 -2112: 2 -2113: 3 -2114: 3 -2115: 4 -2116: 3 -2117: 4 -2118: 4 -2119: 5 -2120: 3 -2121: 4 -2122: 4 -2123: 5 -2124: 4 -2125: 5 -2126: 5 -2127: 6 -2128: 3 -2129: 4 -2130: 4 -2131: 5 -2132: 4 -2133: 5 -2134: 5 -2135: 6 -2136: 4 -2137: 5 -2138: 5 -2139: 6 -2140: 5 -2141: 6 -2142: 6 -2143: 7 -2144: 3 -2145: 4 -2146: 4 -2147: 5 -2148: 4 -2149: 5 -2150: 5 -2151: 6 -2152: 4 -2153: 5 -2154: 5 -2155: 6 -2156: 5 -2157: 6 -2158: 6 -2159: 7 -2160: 4 -2161: 5 -2162: 5 -2163: 6 -2164: 5 -2165: 6 -2166: 6 -2167: 7 -2168: 5 -2169: 6 -2170: 6 -2171: 7 -2172: 6 -2173: 7 -2174: 7 -2175: 8 -2176: 2 -2177: 3 -2178: 3 -2179: 4 -2180: 3 -2181: 4 -2182: 4 -2183: 5 -2184: 3 -2185: 4 -2186: 4 -2187: 5 -2188: 4 -2189: 5 -2190: 5 -2191: 6 -2192: 3 -2193: 4 -2194: 4 -2195: 5 -2196: 4 -2197: 5 -2198: 5 -2199: 6 -2200: 4 -2201: 5 -2202: 5 -2203: 6 -2204: 5 -2205: 6 -2206: 6 -2207: 7 -2208: 3 -2209: 4 -2210: 4 -2211: 5 -2212: 4 -2213: 5 -2214: 5 -2215: 6 -2216: 4 -2217: 5 -2218: 5 -2219: 6 -2220: 5 -2221: 6 -2222: 6 -2223: 7 -2224: 4 -2225: 5 -2226: 5 -2227: 6 -2228: 5 -2229: 6 -2230: 6 -2231: 7 -2232: 5 -2233: 6 -2234: 6 -2235: 7 -2236: 6 -2237: 7 -2238: 7 -2239: 8 -2240: 3 -2241: 4 -2242: 4 -2243: 5 -2244: 4 -2245: 5 -2246: 5 -2247: 6 -2248: 4 -2249: 5 -2250: 5 -2251: 6 -2252: 5 -2253: 6 -2254: 6 -2255: 7 -2256: 4 -2257: 5 -2258: 5 -2259: 6 -2260: 5 -2261: 6 -2262: 6 -2263: 7 -2264: 5 -2265: 6 -2266: 6 -2267: 7 -2268: 6 -2269: 7 -2270: 7 -2271: 8 -2272: 4 -2273: 5 -2274: 5 -2275: 6 -2276: 5 -2277: 6 -2278: 6 -2279: 7 -2280: 5 -2281: 6 -2282: 6 -2283: 7 -2284: 6 -2285: 7 -2286: 7 -2287: 8 -2288: 5 -2289: 6 -2290: 6 -2291: 7 -2292: 6 -2293: 7 -2294: 7 -2295: 8 -2296: 6 -2297: 7 -2298: 7 -2299: 8 -2300: 7 -2301: 8 -2302: 8 -2303: 9 -2304: 2 -2305: 3 -2306: 3 -2307: 4 -2308: 3 -2309: 4 -2310: 4 -2311: 5 -2312: 3 -2313: 4 -2314: 4 -2315: 5 -2316: 4 -2317: 5 -2318: 5 -2319: 6 -2320: 3 -2321: 4 -2322: 4 -2323: 5 -2324: 4 -2325: 5 -2326: 5 -2327: 6 -2328: 4 -2329: 5 -2330: 5 -2331: 6 -2332: 5 -2333: 6 -2334: 6 -2335: 7 -2336: 3 -2337: 4 -2338: 4 -2339: 5 -2340: 4 -2341: 5 -2342: 5 -2343: 6 -2344: 4 -2345: 5 -2346: 5 -2347: 6 -2348: 5 -2349: 6 -2350: 6 -2351: 7 -2352: 4 -2353: 5 -2354: 5 -2355: 6 -2356: 5 -2357: 6 -2358: 6 -2359: 7 -2360: 5 -2361: 6 -2362: 6 -2363: 7 -2364: 6 -2365: 7 -2366: 7 -2367: 8 -2368: 3 -2369: 4 -2370: 4 -2371: 5 -2372: 4 -2373: 5 -2374: 5 -2375: 6 -2376: 4 -2377: 5 -2378: 5 -2379: 6 -2380: 5 -2381: 6 -2382: 6 -2383: 7 -2384: 4 -2385: 5 -2386: 5 -2387: 6 -2388: 5 -2389: 6 -2390: 6 -2391: 7 -2392: 5 -2393: 6 -2394: 6 -2395: 7 -2396: 6 -2397: 7 -2398: 7 -2399: 8 -2400: 4 -2401: 5 -2402: 5 -2403: 6 -2404: 5 -2405: 6 -2406: 6 -2407: 7 -2408: 5 -2409: 6 -2410: 6 -2411: 7 -2412: 6 -2413: 7 -2414: 7 -2415: 8 -2416: 5 -2417: 6 -2418: 6 -2419: 7 -2420: 6 -2421: 7 -2422: 7 -2423: 8 -2424: 6 -2425: 7 -2426: 7 -2427: 8 -2428: 7 -2429: 8 -2430: 8 -2431: 9 -2432: 3 -2433: 4 -2434: 4 -2435: 5 -2436: 4 -2437: 5 -2438: 5 -2439: 6 -2440: 4 -2441: 5 -2442: 5 -2443: 6 -2444: 5 -2445: 6 -2446: 6 -2447: 7 -2448: 4 -2449: 5 -2450: 5 -2451: 6 -2452: 5 -2453: 6 -2454: 6 -2455: 7 -2456: 5 -2457: 6 -2458: 6 -2459: 7 -2460: 6 -2461: 7 -2462: 7 -2463: 8 -2464: 4 -2465: 5 -2466: 5 -2467: 6 -2468: 5 -2469: 6 -2470: 6 -2471: 7 -2472: 5 -2473: 6 -2474: 6 -2475: 7 -2476: 6 -2477: 7 -2478: 7 -2479: 8 -2480: 5 -2481: 6 -2482: 6 -2483: 7 -2484: 6 -2485: 7 -2486: 7 -2487: 8 -2488: 6 -2489: 7 -2490: 7 -2491: 8 -2492: 7 -2493: 8 -2494: 8 -2495: 9 -2496: 4 -2497: 5 -2498: 5 -2499: 6 -2500: 5 -2501: 6 -2502: 6 -2503: 7 -2504: 5 -2505: 6 -2506: 6 -2507: 7 -2508: 6 -2509: 7 -2510: 7 -2511: 8 -2512: 5 -2513: 6 -2514: 6 -2515: 7 -2516: 6 -2517: 7 -2518: 7 -2519: 8 -2520: 6 -2521: 7 -2522: 7 -2523: 8 -2524: 7 -2525: 8 -2526: 8 -2527: 9 -2528: 5 -2529: 6 -2530: 6 -2531: 7 -2532: 6 -2533: 7 -2534: 7 -2535: 8 -2536: 6 -2537: 7 -2538: 7 -2539: 8 -2540: 7 -2541: 8 -2542: 8 -2543: 9 -2544: 6 -2545: 7 -2546: 7 -2547: 8 -2548: 7 -2549: 8 -2550: 8 -2551: 9 -2552: 7 -2553: 8 -2554: 8 -2555: 9 -2556: 8 -2557: 9 -2558: 9 -2559: 10 -2560: 2 -2561: 3 -2562: 3 -2563: 4 -2564: 3 -2565: 4 -2566: 4 -2567: 5 -2568: 3 -2569: 4 -2570: 4 -2571: 5 -2572: 4 -2573: 5 -2574: 5 -2575: 6 -2576: 3 -2577: 4 -2578: 4 -2579: 5 -2580: 4 -2581: 5 -2582: 5 -2583: 6 -2584: 4 -2585: 5 -2586: 5 -2587: 6 -2588: 5 -2589: 6 -2590: 6 -2591: 7 -2592: 3 -2593: 4 -2594: 4 -2595: 5 -2596: 4 -2597: 5 -2598: 5 -2599: 6 -2600: 4 -2601: 5 -2602: 5 -2603: 6 -2604: 5 -2605: 6 -2606: 6 -2607: 7 -2608: 4 -2609: 5 -2610: 5 -2611: 6 -2612: 5 -2613: 6 -2614: 6 -2615: 7 -2616: 5 -2617: 6 -2618: 6 -2619: 7 -2620: 6 -2621: 7 -2622: 7 -2623: 8 -2624: 3 -2625: 4 -2626: 4 -2627: 5 -2628: 4 -2629: 5 -2630: 5 -2631: 6 -2632: 4 -2633: 5 -2634: 5 -2635: 6 -2636: 5 -2637: 6 -2638: 6 -2639: 7 -2640: 4 -2641: 5 -2642: 5 -2643: 6 -2644: 5 -2645: 6 -2646: 6 -2647: 7 -2648: 5 -2649: 6 -2650: 6 -2651: 7 -2652: 6 -2653: 7 -2654: 7 -2655: 8 -2656: 4 -2657: 5 -2658: 5 -2659: 6 -2660: 5 -2661: 6 -2662: 6 -2663: 7 -2664: 5 -2665: 6 -2666: 6 -2667: 7 -2668: 6 -2669: 7 -2670: 7 -2671: 8 -2672: 5 -2673: 6 -2674: 6 -2675: 7 -2676: 6 -2677: 7 -2678: 7 -2679: 8 -2680: 6 -2681: 7 -2682: 7 -2683: 8 -2684: 7 -2685: 8 -2686: 8 -2687: 9 -2688: 3 -2689: 4 -2690: 4 -2691: 5 -2692: 4 -2693: 5 -2694: 5 -2695: 6 -2696: 4 -2697: 5 -2698: 5 -2699: 6 -2700: 5 -2701: 6 -2702: 6 -2703: 7 -2704: 4 -2705: 5 -2706: 5 -2707: 6 -2708: 5 -2709: 6 -2710: 6 -2711: 7 -2712: 5 -2713: 6 -2714: 6 -2715: 7 -2716: 6 -2717: 7 -2718: 7 -2719: 8 -2720: 4 -2721: 5 -2722: 5 -2723: 6 -2724: 5 -2725: 6 -2726: 6 -2727: 7 -2728: 5 -2729: 6 -2730: 6 -2731: 7 -2732: 6 -2733: 7 -2734: 7 -2735: 8 -2736: 5 -2737: 6 -2738: 6 -2739: 7 -2740: 6 -2741: 7 -2742: 7 -2743: 8 -2744: 6 -2745: 7 -2746: 7 -2747: 8 -2748: 7 -2749: 8 -2750: 8 -2751: 9 -2752: 4 -2753: 5 -2754: 5 -2755: 6 -2756: 5 -2757: 6 -2758: 6 -2759: 7 -2760: 5 -2761: 6 -2762: 6 -2763: 7 -2764: 6 -2765: 7 -2766: 7 -2767: 8 -2768: 5 -2769: 6 -2770: 6 -2771: 7 -2772: 6 -2773: 7 -2774: 7 -2775: 8 -2776: 6 -2777: 7 -2778: 7 -2779: 8 -2780: 7 -2781: 8 -2782: 8 -2783: 9 -2784: 5 -2785: 6 -2786: 6 -2787: 7 -2788: 6 -2789: 7 -2790: 7 -2791: 8 -2792: 6 -2793: 7 -2794: 7 -2795: 8 -2796: 7 -2797: 8 -2798: 8 -2799: 9 -2800: 6 -2801: 7 -2802: 7 -2803: 8 -2804: 7 -2805: 8 -2806: 8 -2807: 9 -2808: 7 -2809: 8 -2810: 8 -2811: 9 -2812: 8 -2813: 9 -2814: 9 -2815: 10 -2816: 3 -2817: 4 -2818: 4 -2819: 5 -2820: 4 -2821: 5 -2822: 5 -2823: 6 -2824: 4 -2825: 5 -2826: 5 -2827: 6 -2828: 5 -2829: 6 -2830: 6 -2831: 7 -2832: 4 -2833: 5 -2834: 5 -2835: 6 -2836: 5 -2837: 6 -2838: 6 -2839: 7 -2840: 5 -2841: 6 -2842: 6 -2843: 7 -2844: 6 -2845: 7 -2846: 7 -2847: 8 -2848: 4 -2849: 5 -2850: 5 -2851: 6 -2852: 5 -2853: 6 -2854: 6 -2855: 7 -2856: 5 -2857: 6 -2858: 6 -2859: 7 -2860: 6 -2861: 7 -2862: 7 -2863: 8 -2864: 5 -2865: 6 -2866: 6 -2867: 7 -2868: 6 -2869: 7 -2870: 7 -2871: 8 -2872: 6 -2873: 7 -2874: 7 -2875: 8 -2876: 7 -2877: 8 -2878: 8 -2879: 9 -2880: 4 -2881: 5 -2882: 5 -2883: 6 -2884: 5 -2885: 6 -2886: 6 -2887: 7 -2888: 5 -2889: 6 -2890: 6 -2891: 7 -2892: 6 -2893: 7 -2894: 7 -2895: 8 -2896: 5 -2897: 6 -2898: 6 -2899: 7 -2900: 6 -2901: 7 -2902: 7 -2903: 8 -2904: 6 -2905: 7 -2906: 7 -2907: 8 -2908: 7 -2909: 8 -2910: 8 -2911: 9 -2912: 5 -2913: 6 -2914: 6 -2915: 7 -2916: 6 -2917: 7 -2918: 7 -2919: 8 -2920: 6 -2921: 7 -2922: 7 -2923: 8 -2924: 7 -2925: 8 -2926: 8 -2927: 9 -2928: 6 -2929: 7 -2930: 7 -2931: 8 -2932: 7 -2933: 8 -2934: 8 -2935: 9 -2936: 7 -2937: 8 -2938: 8 -2939: 9 -2940: 8 -2941: 9 -2942: 9 -2943: 10 -2944: 4 -2945: 5 -2946: 5 -2947: 6 -2948: 5 -2949: 6 -2950: 6 -2951: 7 -2952: 5 -2953: 6 -2954: 6 -2955: 7 -2956: 6 -2957: 7 -2958: 7 -2959: 8 -2960: 5 -2961: 6 -2962: 6 -2963: 7 -2964: 6 -2965: 7 -2966: 7 -2967: 8 -2968: 6 -2969: 7 -2970: 7 -2971: 8 -2972: 7 -2973: 8 -2974: 8 -2975: 9 -2976: 5 -2977: 6 -2978: 6 -2979: 7 -2980: 6 -2981: 7 -2982: 7 -2983: 8 -2984: 6 -2985: 7 -2986: 7 -2987: 8 -2988: 7 -2989: 8 -2990: 8 -2991: 9 -2992: 6 -2993: 7 -2994: 7 -2995: 8 -2996: 7 -2997: 8 -2998: 8 -2999: 9 -3000: 7 -3001: 8 -3002: 8 -3003: 9 -3004: 8 -3005: 9 -3006: 9 -3007: 10 -3008: 5 -3009: 6 -3010: 6 -3011: 7 -3012: 6 -3013: 7 -3014: 7 -3015: 8 -3016: 6 -3017: 7 -3018: 7 -3019: 8 -3020: 7 -3021: 8 -3022: 8 -3023: 9 -3024: 6 -3025: 7 -3026: 7 -3027: 8 -3028: 7 -3029: 8 -3030: 8 -3031: 9 -3032: 7 -3033: 8 -3034: 8 -3035: 9 -3036: 8 -3037: 9 -3038: 9 -3039: 10 -3040: 6 -3041: 7 -3042: 7 -3043: 8 -3044: 7 -3045: 8 -3046: 8 -3047: 9 -3048: 7 -3049: 8 -3050: 8 -3051: 9 -3052: 8 -3053: 9 -3054: 9 -3055: 10 -3056: 7 -3057: 8 -3058: 8 -3059: 9 -3060: 8 -3061: 9 -3062: 9 -3063: 10 -3064: 8 -3065: 9 -3066: 9 -3067: 10 -3068: 9 -3069: 10 -3070: 10 -3071: 11 -3072: 2 -3073: 3 -3074: 3 -3075: 4 -3076: 3 -3077: 4 -3078: 4 -3079: 5 -3080: 3 -3081: 4 -3082: 4 -3083: 5 -3084: 4 -3085: 5 -3086: 5 -3087: 6 -3088: 3 -3089: 4 -3090: 4 -3091: 5 -3092: 4 -3093: 5 -3094: 5 -3095: 6 -3096: 4 -3097: 5 -3098: 5 -3099: 6 -3100: 5 -3101: 6 -3102: 6 -3103: 7 -3104: 3 -3105: 4 -3106: 4 -3107: 5 -3108: 4 -3109: 5 -3110: 5 -3111: 6 -3112: 4 -3113: 5 -3114: 5 -3115: 6 -3116: 5 -3117: 6 -3118: 6 -3119: 7 -3120: 4 -3121: 5 -3122: 5 -3123: 6 -3124: 5 -3125: 6 -3126: 6 -3127: 7 -3128: 5 -3129: 6 -3130: 6 -3131: 7 -3132: 6 -3133: 7 -3134: 7 -3135: 8 -3136: 3 -3137: 4 -3138: 4 -3139: 5 -3140: 4 -3141: 5 -3142: 5 -3143: 6 -3144: 4 -3145: 5 -3146: 5 -3147: 6 -3148: 5 -3149: 6 -3150: 6 -3151: 7 -3152: 4 -3153: 5 -3154: 5 -3155: 6 -3156: 5 -3157: 6 -3158: 6 -3159: 7 -3160: 5 -3161: 6 -3162: 6 -3163: 7 -3164: 6 -3165: 7 -3166: 7 -3167: 8 -3168: 4 -3169: 5 -3170: 5 -3171: 6 -3172: 5 -3173: 6 -3174: 6 -3175: 7 -3176: 5 -3177: 6 -3178: 6 -3179: 7 -3180: 6 -3181: 7 -3182: 7 -3183: 8 -3184: 5 -3185: 6 -3186: 6 -3187: 7 -3188: 6 -3189: 7 -3190: 7 -3191: 8 -3192: 6 -3193: 7 -3194: 7 -3195: 8 -3196: 7 -3197: 8 -3198: 8 -3199: 9 -3200: 3 -3201: 4 -3202: 4 -3203: 5 -3204: 4 -3205: 5 -3206: 5 -3207: 6 -3208: 4 -3209: 5 -3210: 5 -3211: 6 -3212: 5 -3213: 6 -3214: 6 -3215: 7 -3216: 4 -3217: 5 -3218: 5 -3219: 6 -3220: 5 -3221: 6 -3222: 6 -3223: 7 -3224: 5 -3225: 6 -3226: 6 -3227: 7 -3228: 6 -3229: 7 -3230: 7 -3231: 8 -3232: 4 -3233: 5 -3234: 5 -3235: 6 -3236: 5 -3237: 6 -3238: 6 -3239: 7 -3240: 5 -3241: 6 -3242: 6 -3243: 7 -3244: 6 -3245: 7 -3246: 7 -3247: 8 -3248: 5 -3249: 6 -3250: 6 -3251: 7 -3252: 6 -3253: 7 -3254: 7 -3255: 8 -3256: 6 -3257: 7 -3258: 7 -3259: 8 -3260: 7 -3261: 8 -3262: 8 -3263: 9 -3264: 4 -3265: 5 -3266: 5 -3267: 6 -3268: 5 -3269: 6 -3270: 6 -3271: 7 -3272: 5 -3273: 6 -3274: 6 -3275: 7 -3276: 6 -3277: 7 -3278: 7 -3279: 8 -3280: 5 -3281: 6 -3282: 6 -3283: 7 -3284: 6 -3285: 7 -3286: 7 -3287: 8 -3288: 6 -3289: 7 -3290: 7 -3291: 8 -3292: 7 -3293: 8 -3294: 8 -3295: 9 -3296: 5 -3297: 6 -3298: 6 -3299: 7 -3300: 6 -3301: 7 -3302: 7 -3303: 8 -3304: 6 -3305: 7 -3306: 7 -3307: 8 -3308: 7 -3309: 8 -3310: 8 -3311: 9 -3312: 6 -3313: 7 -3314: 7 -3315: 8 -3316: 7 -3317: 8 -3318: 8 -3319: 9 -3320: 7 -3321: 8 -3322: 8 -3323: 9 -3324: 8 -3325: 9 -3326: 9 -3327: 10 -3328: 3 -3329: 4 -3330: 4 -3331: 5 -3332: 4 -3333: 5 -3334: 5 -3335: 6 -3336: 4 -3337: 5 -3338: 5 -3339: 6 -3340: 5 -3341: 6 -3342: 6 -3343: 7 -3344: 4 -3345: 5 -3346: 5 -3347: 6 -3348: 5 -3349: 6 -3350: 6 -3351: 7 -3352: 5 -3353: 6 -3354: 6 -3355: 7 -3356: 6 -3357: 7 -3358: 7 -3359: 8 -3360: 4 -3361: 5 -3362: 5 -3363: 6 -3364: 5 -3365: 6 -3366: 6 -3367: 7 -3368: 5 -3369: 6 -3370: 6 -3371: 7 -3372: 6 -3373: 7 -3374: 7 -3375: 8 -3376: 5 -3377: 6 -3378: 6 -3379: 7 -3380: 6 -3381: 7 -3382: 7 -3383: 8 -3384: 6 -3385: 7 -3386: 7 -3387: 8 -3388: 7 -3389: 8 -3390: 8 -3391: 9 -3392: 4 -3393: 5 -3394: 5 -3395: 6 -3396: 5 -3397: 6 -3398: 6 -3399: 7 -3400: 5 -3401: 6 -3402: 6 -3403: 7 -3404: 6 -3405: 7 -3406: 7 -3407: 8 -3408: 5 -3409: 6 -3410: 6 -3411: 7 -3412: 6 -3413: 7 -3414: 7 -3415: 8 -3416: 6 -3417: 7 -3418: 7 -3419: 8 -3420: 7 -3421: 8 -3422: 8 -3423: 9 -3424: 5 -3425: 6 -3426: 6 -3427: 7 -3428: 6 -3429: 7 -3430: 7 -3431: 8 -3432: 6 -3433: 7 -3434: 7 -3435: 8 -3436: 7 -3437: 8 -3438: 8 -3439: 9 -3440: 6 -3441: 7 -3442: 7 -3443: 8 -3444: 7 -3445: 8 -3446: 8 -3447: 9 -3448: 7 -3449: 8 -3450: 8 -3451: 9 -3452: 8 -3453: 9 -3454: 9 -3455: 10 -3456: 4 -3457: 5 -3458: 5 -3459: 6 -3460: 5 -3461: 6 -3462: 6 -3463: 7 -3464: 5 -3465: 6 -3466: 6 -3467: 7 -3468: 6 -3469: 7 -3470: 7 -3471: 8 -3472: 5 -3473: 6 -3474: 6 -3475: 7 -3476: 6 -3477: 7 -3478: 7 -3479: 8 -3480: 6 -3481: 7 -3482: 7 -3483: 8 -3484: 7 -3485: 8 -3486: 8 -3487: 9 -3488: 5 -3489: 6 -3490: 6 -3491: 7 -3492: 6 -3493: 7 -3494: 7 -3495: 8 -3496: 6 -3497: 7 -3498: 7 -3499: 8 -3500: 7 -3501: 8 -3502: 8 -3503: 9 -3504: 6 -3505: 7 -3506: 7 -3507: 8 -3508: 7 -3509: 8 -3510: 8 -3511: 9 -3512: 7 -3513: 8 -3514: 8 -3515: 9 -3516: 8 -3517: 9 -3518: 9 -3519: 10 -3520: 5 -3521: 6 -3522: 6 -3523: 7 -3524: 6 -3525: 7 -3526: 7 -3527: 8 -3528: 6 -3529: 7 -3530: 7 -3531: 8 -3532: 7 -3533: 8 -3534: 8 -3535: 9 -3536: 6 -3537: 7 -3538: 7 -3539: 8 -3540: 7 -3541: 8 -3542: 8 -3543: 9 -3544: 7 -3545: 8 -3546: 8 -3547: 9 -3548: 8 -3549: 9 -3550: 9 -3551: 10 -3552: 6 -3553: 7 -3554: 7 -3555: 8 -3556: 7 -3557: 8 -3558: 8 -3559: 9 -3560: 7 -3561: 8 -3562: 8 -3563: 9 -3564: 8 -3565: 9 -3566: 9 -3567: 10 -3568: 7 -3569: 8 -3570: 8 -3571: 9 -3572: 8 -3573: 9 -3574: 9 -3575: 10 -3576: 8 -3577: 9 -3578: 9 -3579: 10 -3580: 9 -3581: 10 -3582: 10 -3583: 11 -3584: 3 -3585: 4 -3586: 4 -3587: 5 -3588: 4 -3589: 5 -3590: 5 -3591: 6 -3592: 4 -3593: 5 -3594: 5 -3595: 6 -3596: 5 -3597: 6 -3598: 6 -3599: 7 -3600: 4 -3601: 5 -3602: 5 -3603: 6 -3604: 5 -3605: 6 -3606: 6 -3607: 7 -3608: 5 -3609: 6 -3610: 6 -3611: 7 -3612: 6 -3613: 7 -3614: 7 -3615: 8 -3616: 4 -3617: 5 -3618: 5 -3619: 6 -3620: 5 -3621: 6 -3622: 6 -3623: 7 -3624: 5 -3625: 6 -3626: 6 -3627: 7 -3628: 6 -3629: 7 -3630: 7 -3631: 8 -3632: 5 -3633: 6 -3634: 6 -3635: 7 -3636: 6 -3637: 7 -3638: 7 -3639: 8 -3640: 6 -3641: 7 -3642: 7 -3643: 8 -3644: 7 -3645: 8 -3646: 8 -3647: 9 -3648: 4 -3649: 5 -3650: 5 -3651: 6 -3652: 5 -3653: 6 -3654: 6 -3655: 7 -3656: 5 -3657: 6 -3658: 6 -3659: 7 -3660: 6 -3661: 7 -3662: 7 -3663: 8 -3664: 5 -3665: 6 -3666: 6 -3667: 7 -3668: 6 -3669: 7 -3670: 7 -3671: 8 -3672: 6 -3673: 7 -3674: 7 -3675: 8 -3676: 7 -3677: 8 -3678: 8 -3679: 9 -3680: 5 -3681: 6 -3682: 6 -3683: 7 -3684: 6 -3685: 7 -3686: 7 -3687: 8 -3688: 6 -3689: 7 -3690: 7 -3691: 8 -3692: 7 -3693: 8 -3694: 8 -3695: 9 -3696: 6 -3697: 7 -3698: 7 -3699: 8 -3700: 7 -3701: 8 -3702: 8 -3703: 9 -3704: 7 -3705: 8 -3706: 8 -3707: 9 -3708: 8 -3709: 9 -3710: 9 -3711: 10 -3712: 4 -3713: 5 -3714: 5 -3715: 6 -3716: 5 -3717: 6 -3718: 6 -3719: 7 -3720: 5 -3721: 6 -3722: 6 -3723: 7 -3724: 6 -3725: 7 -3726: 7 -3727: 8 -3728: 5 -3729: 6 -3730: 6 -3731: 7 -3732: 6 -3733: 7 -3734: 7 -3735: 8 -3736: 6 -3737: 7 -3738: 7 -3739: 8 -3740: 7 -3741: 8 -3742: 8 -3743: 9 -3744: 5 -3745: 6 -3746: 6 -3747: 7 -3748: 6 -3749: 7 -3750: 7 -3751: 8 -3752: 6 -3753: 7 -3754: 7 -3755: 8 -3756: 7 -3757: 8 -3758: 8 -3759: 9 -3760: 6 -3761: 7 -3762: 7 -3763: 8 -3764: 7 -3765: 8 -3766: 8 -3767: 9 -3768: 7 -3769: 8 -3770: 8 -3771: 9 -3772: 8 -3773: 9 -3774: 9 -3775: 10 -3776: 5 -3777: 6 -3778: 6 -3779: 7 -3780: 6 -3781: 7 -3782: 7 -3783: 8 -3784: 6 -3785: 7 -3786: 7 -3787: 8 -3788: 7 -3789: 8 -3790: 8 -3791: 9 -3792: 6 -3793: 7 -3794: 7 -3795: 8 -3796: 7 -3797: 8 -3798: 8 -3799: 9 -3800: 7 -3801: 8 -3802: 8 -3803: 9 -3804: 8 -3805: 9 -3806: 9 -3807: 10 -3808: 6 -3809: 7 -3810: 7 -3811: 8 -3812: 7 -3813: 8 -3814: 8 -3815: 9 -3816: 7 -3817: 8 -3818: 8 -3819: 9 -3820: 8 -3821: 9 -3822: 9 -3823: 10 -3824: 7 -3825: 8 -3826: 8 -3827: 9 -3828: 8 -3829: 9 -3830: 9 -3831: 10 -3832: 8 -3833: 9 -3834: 9 -3835: 10 -3836: 9 -3837: 10 -3838: 10 -3839: 11 -3840: 4 -3841: 5 -3842: 5 -3843: 6 -3844: 5 -3845: 6 -3846: 6 -3847: 7 -3848: 5 -3849: 6 -3850: 6 -3851: 7 -3852: 6 -3853: 7 -3854: 7 -3855: 8 -3856: 5 -3857: 6 -3858: 6 -3859: 7 -3860: 6 -3861: 7 -3862: 7 -3863: 8 -3864: 6 -3865: 7 -3866: 7 -3867: 8 -3868: 7 -3869: 8 -3870: 8 -3871: 9 -3872: 5 -3873: 6 -3874: 6 -3875: 7 -3876: 6 -3877: 7 -3878: 7 -3879: 8 -3880: 6 -3881: 7 -3882: 7 -3883: 8 -3884: 7 -3885: 8 -3886: 8 -3887: 9 -3888: 6 -3889: 7 -3890: 7 -3891: 8 -3892: 7 -3893: 8 -3894: 8 -3895: 9 -3896: 7 -3897: 8 -3898: 8 -3899: 9 -3900: 8 -3901: 9 -3902: 9 -3903: 10 -3904: 5 -3905: 6 -3906: 6 -3907: 7 -3908: 6 -3909: 7 -3910: 7 -3911: 8 -3912: 6 -3913: 7 -3914: 7 -3915: 8 -3916: 7 -3917: 8 -3918: 8 -3919: 9 -3920: 6 -3921: 7 -3922: 7 -3923: 8 -3924: 7 -3925: 8 -3926: 8 -3927: 9 -3928: 7 -3929: 8 -3930: 8 -3931: 9 -3932: 8 -3933: 9 -3934: 9 -3935: 10 -3936: 6 -3937: 7 -3938: 7 -3939: 8 -3940: 7 -3941: 8 -3942: 8 -3943: 9 -3944: 7 -3945: 8 -3946: 8 -3947: 9 -3948: 8 -3949: 9 -3950: 9 -3951: 10 -3952: 7 -3953: 8 -3954: 8 -3955: 9 -3956: 8 -3957: 9 -3958: 9 -3959: 10 -3960: 8 -3961: 9 -3962: 9 -3963: 10 -3964: 9 -3965: 10 -3966: 10 -3967: 11 -3968: 5 -3969: 6 -3970: 6 -3971: 7 -3972: 6 -3973: 7 -3974: 7 -3975: 8 -3976: 6 -3977: 7 -3978: 7 -3979: 8 -3980: 7 -3981: 8 -3982: 8 -3983: 9 -3984: 6 -3985: 7 -3986: 7 -3987: 8 -3988: 7 -3989: 8 -3990: 8 -3991: 9 -3992: 7 -3993: 8 -3994: 8 -3995: 9 -3996: 8 -3997: 9 -3998: 9 -3999: 10 -4000: 6 -4001: 7 -4002: 7 -4003: 8 -4004: 7 -4005: 8 -4006: 8 -4007: 9 -4008: 7 -4009: 8 -4010: 8 -4011: 9 -4012: 8 -4013: 9 -4014: 9 -4015: 10 -4016: 7 -4017: 8 -4018: 8 -4019: 9 -4020: 8 -4021: 9 -4022: 9 -4023: 10 -4024: 8 -4025: 9 -4026: 9 -4027: 10 -4028: 9 -4029: 10 -4030: 10 -4031: 11 -4032: 6 -4033: 7 -4034: 7 -4035: 8 -4036: 7 -4037: 8 -4038: 8 -4039: 9 -4040: 7 -4041: 8 -4042: 8 -4043: 9 -4044: 8 -4045: 9 -4046: 9 -4047: 10 -4048: 7 -4049: 8 -4050: 8 -4051: 9 -4052: 8 -4053: 9 -4054: 9 -4055: 10 -4056: 8 -4057: 9 -4058: 9 -4059: 10 -4060: 9 -4061: 10 -4062: 10 -4063: 11 -4064: 7 -4065: 8 -4066: 8 -4067: 9 -4068: 8 -4069: 9 -4070: 9 -4071: 10 -4072: 8 -4073: 9 -4074: 9 -4075: 10 -4076: 9 -4077: 10 -4078: 10 -4079: 11 -4080: 8 -4081: 9 -4082: 9 -4083: 10 -4084: 9 -4085: 10 -4086: 10 -4087: 11 -4088: 9 -4089: 10 -4090: 10 -4091: 11 -4092: 10 -4093: 11 -4094: 11 -4095: 12 diff --git a/regress/sys/arch/sparc64/emul-popc/simm/simm13.c b/regress/sys/arch/sparc64/emul-popc/simm/simm13.c new file mode 100644 index 00000000000..4ec75642a81 --- /dev/null +++ b/regress/sys/arch/sparc64/emul-popc/simm/simm13.c @@ -0,0 +1,91 @@ +/* $OpenBSD: simm13.c,v 1.1 2003/08/19 05:25:14 jason Exp $ */ + +/* + * Copyright (c) 2003 Jason L. Wright (jason@thought.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/types.h> +#include <sys/mman.h> +#include <machine/instr.h> +#include <err.h> +#include <stdio.h> + +#define SIGN_EXT13(v) (((int64_t)(v) << 51) >> 51) + +void +gen_simm(u_int32_t *p, int imm) +{ + /* + * generate the following asm, and flush the pipeline + * retl + * popc imm, %o0 + */ + p[0] = I_JMPLri(I_G0, I_O7, 8); + p[1] = _I_OP3_R_RI(I_O0, IOP3_POPC, I_G0, imm); +} + +int +testit(void *v) +{ + int (*func)(void) = v; + + return ((*func)()); +} + +int64_t +c_popc(int64_t v) +{ + int64_t bit, r; + + for (bit = 1, r = 0; bit; bit <<= 1) + if (v & bit) + r++; + return (r); +} + +int +main() +{ + void *v; + int i, a, c; + int r = 0; + + v = mmap(NULL, 2 * sizeof(union instr), PROT_WRITE|PROT_EXEC|PROT_READ, + MAP_ANON, -1, 0); + if (v == MAP_FAILED) + err(1, "mmap"); + + for (i = -4096; i <= 4095; i++) { + gen_simm(v, i); + c = c_popc(SIGN_EXT13(i)); + a = testit(v); + if (c != a) { + printf("BAD: %d: asm %d, c %d\n", i, a, c); + r = 1; + } + } + + return (r); +} |